我正在学习MySQL,并尝试使用LOAD DATA子句。当我使用它时,如下所示:

LOAD DATA INFILE "text.txt" INTO table mytable;

我得到了以下错误:

MySQL服务器正在使用——secure-file-priv选项运行,所以它不能执行这条语句

如何解决这个错误?

我已经检查了关于相同错误信息的另一个问题,但仍然找不到解决方案。

我使用的是MySQL 5.6


当前回答

我在“secure-file-priv”上也遇到了同样的问题。在.ini文件中注释不起作用,在'secure-file-priv'指定的目录中移动文件也不起作用。

最后,正如dbc建议的那样,使'secure-file-priv'等于一个空字符串就可以工作了。所以如果有人在尝试了上面的答案后被困住了,希望这样做会有所帮助。

其他回答

如果文件是本地的,请在命令中使用local

LOAD DATA LOCAL INFILE "text.txt" INTO table mytable;

无需更改任何配置文件..

使用@vhu发布的命令查找secure_file_priv的值:SHOW VARIABLES LIKE "secure_file_priv" 定义查询的完整路径,例如:select * from table into outfile 'secure_file_priv_PATH/OUTPUT-FILE'…剩下的问题

这适用于我的mysql-shell在ubuntu 18.04 LTS mysql 5.7.29

对于运行MySQL 5.6.23的MacOS Mojave,我在写文件时遇到了这个问题,但没有加载它们。(以前版本的Mac OS没有)。由于这个问题的大多数答案都是针对其他系统的,我想我应该发布my.cnf文件来解决这个问题(以及一个套接字问题),以防它对其他Mac用户有帮助。这是/etc/my.cnf

[client]
default-character-set=utf8

[mysqld]
character-set-server=utf8
secure-file-priv = ""
skip-external-locking

(国际化与问题无关。)

没有其他要求。只需要关闭MySQL服务器,然后在首选项中再次打开(我们说的是Mac)。

我在windows 10上遇到了这个问题。为了解决这个问题,我做了以下工作。

在windows搜索(左下角)中,我输入了“powershell”。 右键单击powershell并以管理员身份运行。 导航到服务器bin文件。(C:\Program Files\MySQL\MySQL Server 5.6\bin); 键入。/ mysqld “输入”

服务器按预期启动。

我在“secure-file-priv”上也遇到了同样的问题。在.ini文件中注释不起作用,在'secure-file-priv'指定的目录中移动文件也不起作用。

最后,正如dbc建议的那样,使'secure-file-priv'等于一个空字符串就可以工作了。所以如果有人在尝试了上面的答案后被困住了,希望这样做会有所帮助。