我有一个 PHP 脚本调用 MySQL 的 LOAD DATA INFILE
从 CSV 文件加载数据。但是,在生产服务器上,我遇到了以下错误:
Access denied for user ... (using password: yes)
作为一种快速的解决方法,我将命令更改为 LOAD DATA LOCAL INFILE
,它起作用了。但是,同一命令在客户端服务器上失败并显示以下消息:
The used command is not allowed with this MySQL version
我假设这与服务器变量有关:local_infile = off
如所述here .
请提出一个不涉及更改服务器设置的解决方法。请注意,安装在同一台服务器上的 phpMyAdmin 实用程序似乎接受 CSV 文件,但我不确定它是否使用 LOAD DATA (LOCAL) INFILE
。
最佳答案
遇到了和root一样的问题,让我愣了一下
可能是您使用编译设置的服务器设置有问题
测试用同一个用户登录到控制台并尝试加载数据命令
如果出现同样的错误,尝试关闭控制台并运行
mysql -u USER -p --local-infile=1 DATABASE
现在尝试再次运行加载数据命令
如果它有效,那么您将需要使用命令行选项重新启动 mysqld 或使用配置选项重新安装
引用资料(引用资料适用于 5.0,但适用于 5.5):
http://dev.mysql.com/doc/refman/5.0/en/load-data-local.html
http://dev.mysql.com/doc/refman/5.0/en/mysql-command-options.html#option_mysql_local-infile
关于mysql - LOAD DATA LOCAL INFILE 给出错误 The used command is not allowed with this MySQL version,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21180458/