对于那些正在寻找使 LOAD DATA LOCAL INFILE 像我一样工作的答案的人来说,这可能会有用。这招对我很管用,所以就这样吧。按照链接中的步骤将 percona安装为 mysql 服务器和客户端。在安装过程中会提示输入密码,所以提供一个您将记住的密码,并在以后使用。一旦安装完成,重新启动系统,通过到 terminal键入 mysql -u root -p然后输入密码来测试服务器是否已经启动并运行。现在尝试运行命令 LOAD DATA LOCAL INFILE。.希望有用:)
这对我来说有点奇怪,从一天到下一天,这个脚本一直在工作,因为天刚刚停止工作。没有更新版本的 mysql 或任何类型的升级,但我得到了相同的错误,所以我给最后一次尝试的 CSV 文件,并注意到结束行使用 n 而不是预期的(根据我的脚本) r n,所以我保存它与正确的 EOL 和运行的脚本没有任何麻烦。
我觉得 MySQL 告诉我这个 MySQL 版本不允许使用这个命令有点奇怪,因为原因完全不同。
我的工作命令是这样的:
LOAD DATA LOCAL INFILE 'file-name' IGNORE INTO TABLE table-name CHARACTER SET latin1 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES.
LOAD DATA INFILE 'D:\\Work\\TableRecords.csv' INTO TABLE tbl1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (col1,col2);
然后:
mysql -uroot -pStr0ngP@ss -Ddatabasename -e "source D:\Work\LoadTableName.sql"
# /var/log/mysql/mysql.err
2022-04-08T14:45:06.532132Z 0 [Warning] [MY-000076] [Server] option 'local_infile': boolean value '1;' was not recognized. Set to OFF.