您已經建立了一個 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中文網其他相關文章!