mysql - 用于在 MySQL 中插入值的 Bash 脚本

标签 mysql sql linux bash scripting

我想制作一个连接到我的 MySQL 服务器并从 txt 文件中插入一些值的 bash 脚本。 我已经写下来了:

#!/bin/bash
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;

但我收到以下错误:

ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1

我想错误出在我的 txt 文件中,但我已经尝试了很多变体,但仍然没有成功的希望。

我的 txt 文件如下所示:

10.16.54.29 00:f8:e5:33:22:3f marsara

最佳答案

试试这个:

#!/bin/bash
inputfile="test.txt"
cat $inputfile | while read ip mac server; do
    echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('$ip', '$mac', '$server');"
done | mysql -uroot -ptest test;

通过这种方式,您可以流式传输文件读取以及 mysql 命令和执行。

关于mysql - 用于在 MySQL 中插入值的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46171693/

相关文章:

sql - 强制 Oracle 在远程数据库站点上处理递归 CTE(可能使用 DRIVING_SITE 提示)

linux - crt* 文件在链接中的作用是什么?

linux - 我可以在 bash 中设置特定数字而不是序列吗?

java - 像 Windows 一样的 Linux 上的想法键盘映射

MySQL 查询获取特定日期的行

php - $_Session 没有收集所有用户信息?

MySQL LIKE 使用 % 符号形式连接

mysql - 处理错误超时已过期。在 vs 2005 中达到最大池大小连接

MySQL 加入同一张表

mysql - SQL如何统计相同专业的人数