您已经创建了一个 Bash 脚本,旨在连接到 MySQL 服务器并从文本文件插入数据。但是,您在执行脚本时遇到了错误,具体为:
ERROR 1136 (21S01) at line 1: Column count doesn't match value count at row 1
问题在于命令的结构:
echo "INSERT INTO test (IP,MAC,SERVER) VALUES ('cat test.txt');" | mysql -uroot -ptest test;
此命令本质上尝试插入test.txt 文件的全部内容作为单个值放入测试表中。由于您的测试表有三列(IP、MAC、SERVER),这会导致值的数量 (1) 和列的数量 (3) 不匹配。
要解决此问题,您将需要修改 Bash 脚本,将文本文件的每一行视为要插入数据库的一组单独的值。这是脚本的修订版本:
#!/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 命令,可以确保文本文件中的每一行都作为数据库中的不同行正确插入。
以上是从 Bash 脚本将数据插入 MySQL 时如何修复'列计数与值计数不匹配”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!