我正在学习MySQL,并尝试使用LOAD DATA子句。当我使用它时,如下所示:
LOAD DATA INFILE "text.txt" INTO table mytable;
我得到了以下错误:
MySQL服务器正在使用——secure-file-priv选项运行,所以它不能执行这条语句
如何解决这个错误?
我已经检查了关于相同错误信息的另一个问题,但仍然找不到解决方案。
我使用的是MySQL 5.6
我正在学习MySQL,并尝试使用LOAD DATA子句。当我使用它时,如下所示:
LOAD DATA INFILE "text.txt" INTO table mytable;
我得到了以下错误:
MySQL服务器正在使用——secure-file-priv选项运行,所以它不能执行这条语句
如何解决这个错误?
我已经检查了关于相同错误信息的另一个问题,但仍然找不到解决方案。
我使用的是MySQL 5.6
当前回答
对于mysql 8.0版本,你可以这样做:
mysql.server stop
mysql.server start --secure-file-priv=''
这招在Mac High Sierra很管用。
其他回答
我用命令中的LOCAL选项解决了这个问题:
LOAD DATA LOCAL INFILE "text.txt" INTO TABLE mytable;
你可以在这里找到更多信息。
上的客户端程序读取文件 客户端主机和发送到服务器。该文件可以作为一个完整的 路径名称,以指定其确切位置。如果给出一个相对路径 名称时,名称将相对于所在的目录进行解释 客户端程序启动。
在Linux中,你必须编辑my.cnf文件
/etc/mysql/my.cnf
修改26行号参数,如下所示:
secure-file-priv= <your data path directory like /home/user/data>
然后重新启动MySQL并重试。
在码头工人 你必须在docker-compose或手动添加命令中将my.cnf文件与my.cnf文件挂载到容器中:
volumes:
- ./persistent:/var/lib/mysql
- ./conf/my.cnf:/etc/mysql/my.cnf
接下来,在你的主机中修改/conf/my.cnf,并像上面的方法一样配置secure-file-priv参数,此外,你必须在mysql容器中挂载你的数据,并为secure-file-priv参数设置路径,重新启动你的服务,最后,你可以加载你的数据。
你可以用这个命令检查你的配置:
SHOW VARIABLES LIKE "secure_file_priv";
在macOS Catalina上,我按照以下步骤设置secure_file_priv
1.停止MySQL服务
sudo /usr/local/mysql/support-files/mysql.server stop
2.重新启动MYSQL分配——secure_file_priv系统变量
sudo /usr/local/mysql/support-files/mysql.server start --secure-file-priv=YOUR_FILE_DIRECTORY
注意:添加空值修复了我的问题,MYSQL将导出数据到目录/usr/local/ MYSQL /data/ your_db_table /EXPORT_FILE
sudo /usr/local/mysql/support-files/mysql.server start --secure-file-priv=
谢谢
对我有用的是:
Put your file inside of the folder specified in secure-file-priv. To find that type: mysql> show variables like "secure_file_priv"; Check if you have local_infile = 1. Do that typing: mysql> show variables like "local_infile"; If you get: +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | OFF | +---------------+-------+ Then set it to one typing: mysql> set global local_infile = 1; Specify the full path for your file. In my case: mysql> load data infile "C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/file.txt" into table test;
我在windows 10上遇到了这个问题。为了解决这个问题,我做了以下工作。
在windows搜索(左下角)中,我输入了“powershell”。 右键单击powershell并以管理员身份运行。 导航到服务器bin文件。(C:\Program Files\MySQL\MySQL Server 5.6\bin); 键入。/ mysqld “输入”
服务器按预期启动。