Mac MySQL 8.0.12 --secure-file-priv问题解决方案 数据导入导出相关设置 ERROR 1290 (HY000)

时间:2024-03-15 09:51:51

这学期刚学数据库要用到MySQL,我在导入数据时遇到了如下报错:
ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement.
几经探索,终于解决了这一问题。

首先,这个问题简单来说就是MySQL设置了一个变量secure-file-priv来配置默认导入导出数据的位置。
可以通过命令来查看这一变量的值:
show variables like "%secu%";
可以看到我这里的变量值是"",或者说什么也没有。这是我已经设置完的情况。
Mac MySQL 8.0.12 --secure-file-priv问题解决方案 数据导入导出相关设置 ERROR 1290 (HY000)
而如果没有设置的话,这里的变量值会是NULL
那么要怎么设置这一变量呢?
我用的Mac,windows应该也差不多。
首先在访达中,按组合键shift+command+g进入这一路径:/usr/local/etc
然后查看该文件夹中是否有文件my.cnf
Mac MySQL 8.0.12 --secure-file-priv问题解决方案 数据导入导出相关设置 ERROR 1290 (HY000)
如果没有的话,可以进入/usr/local/mysql-8.0.12-macos10.13-x86_64/support-files中找这个文件my-default.cnf
Mac MySQL 8.0.12 --secure-file-priv问题解决方案 数据导入导出相关设置 ERROR 1290 (HY000)
把它复制粘贴到刚才那个文件夹并改名为my.cnf
然后用文本编辑器打开它,然后在[mysqld]下将secure-file-priv设置为secure-file-priv = "",若没有则自行添加。保存。
别的教程到这就结束了,我当初一开始也是只是做到这里,但是依旧会报和一开始一样的错,查询secure-file-priv的变量值也依旧是NULL

设置Configuration File!

我的MySQL版本是8.0.12,我没有用过别的版本所以不知道其他版本是否有这一选项。
上面只是写好了文件,但是在MySQL的设置中还没有指向它,所以我们需要如下操作才能让my.cnf起作用。
系统偏好设置 -> MySQL -> Configuration中,将Configuration File打上勾并且设置文件路径为刚才修改的my.cnf的路径。
Mac MySQL 8.0.12 --secure-file-priv问题解决方案 数据导入导出相关设置 ERROR 1290 (HY000)
重启MySQL。
再查看secure-file-priv的值,应该就可以啦!

默认路径

好多博客都说将secure-file-priv设置为secure-file-priv = "",就可以是任意路径,但我不知道是不是版本的原因,即使是这样设置,MySQL读取文件还是有一个默认路径的,如果你要读取数据,还是要把文件放到对应路径下。
我的路径是/usr/local/mysql-8.0.12-macos10.13-x86_64/data/(database名)
如果不确定的话,可以通过报错来查看默认路径。