mysql无法导出数据,出现ERROR 1290

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.将my.ini里的seruce-file-priv条目注释掉之后,还是出现同一个错误。

你目前可以如下方法:

进入控制面板->服务管理,找到Mysql服务,右键修改属性,改为自启动,以后再重启就没有问题了(除此外还有第三方软件不能禁用mysql的开机启动);
每次登录前,在命令行中,用命令启动:net start mysql

我们可以用show variables like '%secure%';命令显示文件目录


这样将导入文件放在 /var/lib/mysql-files/文件夹下,之后再从这里导入就可以了

导出文件时候,也是将 文件导出到这个文件夹里。

load data infile '/var/lib/mysql-files/part.csv' into table PART fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';

如果显示ERROR 1261 (01000): Row 1 doesn't contain data for all columns

这个错误,是因为数据行不匹配,默认不能有空,用下列命令解决set sql_modul = 0;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-12

cmd登录mysql;show variables like '%secure%';查看 secure-file-priv 当前的值是什么,出现这种错误有可能是值是NULL或者某个默认路径,找到mysql的安装路径修改my.ini,改为secure-file-priv=""  版本不一样my.ini的路径不一样,5.7的需要在ProgramData文件夹下的MySQL中;ProgramData可能在C盘被隐藏了,打开隐藏即可

这样就行了

第2个回答  2017-08-28
我去,问题过去半年了,解决了吗
注释掉之后,添加一个secure-file-priv="/",然后重启,就可以了。
因为你如果单单注释掉,在命令行输入show varibles like '%secure%';你就会发现,这个属性现在是NULL,证明所有文件夹都没有权限。
添加了"/"就可以直接导入到C盘根目录了本回答被提问者和网友采纳
第3个回答  2017-08-21
我们可以通过secure_file_priv 来完成对导入|导出的限制
secure_file_priv
1、限制mysqld 不允许导入 | 导出
mysqld --secure_file_prive=null
2、限制mysqld 的导入 | 导出 只能发生在/tmp/目录下
mysqld --secure_file_priv=/tmp/
3、不对mysqld 的导入 | 导出做限制
cat /etc/my.cnf
[mysqld]
secure_file_priv
(这个方法是linux下的)
第4个回答  2017-01-20
解决方法如下 以select .... into file
为例
<1> select ..... into outfile '/tmp/target.txt'
<2>使用数据库目录

select ..... into outfile
'/var/lib/mysql/target.txt'
root:@localhost[mytest]>select * from me into
outfile '/var/lib/mysql/target.txt' ;
Query OK, 3 rows affected (0.00
sec)
<3> 使用默认目录
root:@localhost[mytest]>select * from me into
outfile 'target.txt';
Query OK, 3 rows affected (0.00 sec)追问

答非所问

相似回答