ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

今天在学习MySQL时候,想要将文本文件的数据导入到数据库中,却发现一直报错,换了导入文本的路径也还是同样的错误,错误显示ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement。

然后在网上找解决办法,找的方法在Linux 下也不怎么好用,最后找到了解决Linux下MySQL文件导入出错的方法

出错的原因是因为在MySQL 5.7.6版本之后,导入文件只能在secure_file_priv指定的文件夹下(也有原因是因为权限不够)

方法一:

我们可以用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;

下面两个方法主要针对windows下MySQL,Linux下MySQL的my.ini文件不好找

方法二:

修改MySQL安装路径下的my.ini,在末尾添加“secure-file-priv=路径名”这一行,重启mysql

将要通过load data infile的文件放在上面所定义的路径下进行操作即可

方法三:

    1. 停了mysql的服务。
    2. 在类似的这个位置C:\ProgramData\MySQL\MySQL Server 5.6\my.ini, 找到INI文件。复制一份作为备份。
    3. 编辑此文件。将里面的类似的一行 secure-file-priv="C:/ProgramData/MySQL/MySQL Server 5.6/Uploads" 删除。
    4. 启动mysql服务。

在做mysql 大批量导出数据的时候,所遇到的问题如下:

mysql 默认对导出的目录有权限限制,也就是说使用命令行进行导出的时候,需要指定目录进行操作;

解决方法:

1. 查询mysql 的secure_file_priv 值配置的是什么,使用命令行: show global variables like ‘%secure%‘;

(我这里的配置是 secure_file_priv = /var/lib/mysql-files/)

2. 使用 into outfile 开始导出:(因为secure_file_priv配置的关系,所以必须导出到  /var/lib/mysql-files/目录下)

select * from table_name where a = ‘test‘
into outfile ‘/var/lib/mysql-files/test.txt‘  FIELDS TERMINATED BY ‘,‘ OPTIONALLY ENCLOSED BY ‘"‘ LINES TERMINATED BY ‘\n‘;

3.所用的几个关键字:

FIELDS TERMINATED BY  ‘,‘  OPTIONALLY ENCLOSED BY  ‘ " ‘  LINES TERMINATED BY ‘\n‘;

(因为导出的数据会出现一些乱码或者特殊字符,所以使用以上关键字进行转义)

原文地址:https://www.cnblogs.com/chinaops/p/9465139.html

时间: 2024-10-13 03:04:26

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement的相关文章

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statemen

转自:http://www.cnblogs.com/iosdev/archive/2013/07/15/3190431.html mysql 配置文件目录:/etc/my.cnf root 密码为空的时候配置文件中下面这句: skip-grant-tables GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY '123' WITH GRANT OPTION; 执行这句时候错误: ERROR 1290 (HY000): The MySQL server is

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe

在Mysql集群中创建用户时.出现如下错误! mysql> create user 'testuse'@'localhost' identified by '111111'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 解决办法: 在命令行输入:mysql> flush privileges;

mysql 导出数据到文件数据异常 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 首先输入下面下面命令查看 show global variables like '%secure%'; 查询secure_file_priv 我的当时为null所以要修改: 修改方法:

转发 可设置skip_name_resolve参数 会出现 ERROR 2005 (HY000): Unknown MySQL server host _mysql ...

https://www.cnblogs.com/ivictor/p/5311607.html 该阻止会一直生效,直到采取以下操作: 1. mysql> flush hosts; 2. # mysqladmin flush-hosts 3. truncate table performance_schema.host_cache; 4. 或者等待该记录从host cache中被挤掉. 如果要禁止DNS解析,可设置skip_name_resolve参数,这样,mysql.user表中基于主机名的授权

mysql ERROR 1290 (HY000):

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot exe 在Mysql集群中创建用户时.出现如下错误! mysql> create user 'testuse'@'localhost' identified by '111111';ERROR 1290 (HY000): The MySQL server is running with the --ski

MySQL关于ERROR 1290 (HY000)报错

一个问题纠结很久,反复确认语法问题.但是后来网上搜了一下,茅塞顿开.特此总结一下. mysql> grant select,insert,update,delete on *.* to 'root'@'%'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement mysql> flush privileges;

mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement解决方法

Mysql关系型数据库管理系统 MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司.MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 本文为大家讲解的是mysql错误:The MySQL server is running with the --skip-grant-tables option so it cannot

ERROR 1290 (HY000)

mysql> grant all on cactidb.* to [email protected]'localhost' identified by '123'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 解决措施: mysql> flush privileges; Query OK, 0 row

Mysql数据库从本地导出 服务器上导入时报 ERROR 2005 HY000 Unknown MySQL ser

今天在做数据恢复的时候,发现本地通过mysqldump导出的数据,在服务器上通过source导入数据的时候,在导入的一部份数据的时候,就会报这样的错误: ERROR 2005 (HY000): Unknown MySQL server host 'mysql' 然后就退出mysql的登陆. 1.刚开始以为是数据不完整,又双本地导出一份,再重新还是这样的结果: 2.又怀疑是不是两边创建的数据库编码是不是不同,一看都是是UTF8: 3.有人说是不是MYSQL两边的版本不一致,高版本导出的数据,在低版