mysql无法导出数据,出现ERROR 1290
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
参考技术Acmd登录mysql;show variables like '%secure%';查看 secure-file-priv 当前的值是什么,出现这种错误有可能是值是NULL或者某个默认路径,找到mysql的安装路径修改my.ini,改为secure-file-priv="" 版本不一样my.ini的路径不一样,5.7的需要在ProgramData文件夹下的MySQL中;ProgramData可能在C盘被隐藏了,打开隐藏即可
这样就行了
注释掉之后,添加一个secure-file-priv="/",然后重启,就可以了。
因为你如果单单注释掉,在命令行输入show varibles like '%secure%';你就会发现,这个属性现在是NULL,证明所有文件夹都没有权限。
添加了"/"就可以直接导入到C盘根目录了本回答被提问者和网友采纳 参考技术C 我们可以通过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下的) 参考技术D 解决方法如下 以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)追问
答非所问
MYSQL导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
MYSQL导入数据出现The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
方法一:
这个原因其实很简单,是因为在安装MySQL的时候限制了导入与导出的目录权限
只能在规定的目录下才能导入
我们需要通过下面命令查看 secure-file-priv 当前的值是什么
show variables like \'%secure%\';
我们可以看到value的值为/var/lib/mysql-files/
那么我们把导入的路径改为上面的值就可以了
方法二:
如果觉得这样太麻烦,那么我们就需要改配置文件,
可以参考:http://blog.csdn.net/lyhvoyage/article/details/50521440
我改完之后觉得,原来的位置挺好,以后可能有需要再弄吧。
---恢复内容结束---
以上是关于mysql无法导出数据,出现ERROR 1290的主要内容,如果未能解决你的问题,请参考以下文章
MYSQL导入数据出现ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it
rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290