我正在学习MySQL,并尝试使用LOAD DATA子句。当我使用它时,如下:
LOAD DATA INFILE "text.txt" INTO table mytable;我得到了以下错误:
MySQL服务器运行时使用-secure-file-priv选项,因此无法执行此语句。
如何处理此错误?
我已经查过关于同一错误消息的另一个问题了,但还是找不到解决办法。
我正在使用MySQL 5.6
发布于 2015-09-23 10:51:00
它按预期工作了。您的MySQL服务器已使用-安全-档案-priv选项启动,该选项限制可以使用LOAD DATA INFILE加载文件的目录。
使用SHOW VARIABLES LIKE "secure_file_priv";查看已配置的目录。
你有两个选择:
secure-file-priv指定的目录。secure-file-priv。这必须从启动中删除,并且不能动态修改。为此,请检查MySQL启动参数(取决于平台)和my.ini。发布于 2016-11-16 10:54:18
我使用命令中的LOCAL选项解决了这个问题:
LOAD DATA LOCAL INFILE "text.txt" INTO TABLE mytable;你可以找到更多的信息,这里。
如果指定了本地文件,则由客户端主机上的客户端程序读取文件并发送到服务器。文件可以作为一个完整的路径名来指定它的确切位置。如果指定为相对路径名,则该名称将相对于启动客户端程序的目录进行解释。
发布于 2016-11-04 09:49:45
在Ubuntu 14和Mysql 5.5.53上,这个设置在默认情况下似乎是启用的。要禁用它,需要将secure-file-priv = ""添加到mysqld配置组下的my.cnf文件中。例:-
[mysqld]
secure-file-priv = ""https://stackoverflow.com/questions/32737478
复制相似问题