问题背景
我想将txt文件中的数据导入到数据库中,但是出现报错:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
问题原因
出现这个问题的原因是mysql的secure_file_priv这个选项没有开启,或者这个选择了特定的文件路径,只有在这个路径下的文件才能导入导出mysql。
解决方式
首先在mysql环境下使用show variables like "secure_file_priv";
查看一下这个变量的参数:
我这里这个参数的值是null,说明mysql中就没有设置secure_file_priv这个选项。如果这个参数是个特定的文件路径,就说明文件只有在这个路径下才能将它导入导出到mysql。参数secure_file_priv的值及含义如下:
secure_file_priv值 | 含义 |
---|---|
NULL | 禁止文件的导入导出 |
‘’ | (空字符串)允许所有文件的导入导出 |
一个特定的路径地址 | 只有该路径地址下的文件可以导入导出到mysql |
现在我们来设置一下这个选项。找到mysql安装包下的my.ini文件:
使用文本编辑器打开这个文件,然后在[mysqld]这个选项下加入变量声明:
secure_file_priv=''
注意,是在[mysqld]这个选项下面加入上面的声明。加入完成的my.ini文件内容如下:
然后我们需要重启一下mysql服务:
右击我的电脑,选择【管理】选项:
进入到管理页面后选择【服务与应用】下的服务,找到mysql,关闭一下mysql再打开一下mysql就相当于重启它了。
重启mysql之后我们再次打开mysql,输入show variables like 'secure_file_priv';
就可以看到:
这个选项的值不是null了,这个表示secure_file_priv的值为空。
然后现在就可以导入导出数据了。