mysqldump: Got error: 1290及secure-file-priv option 解决方法

综合技术 2017-08-13

今天有个网友问,在用mysqldump备份时候遇到1290的错误

下面是是我模拟他的报错信息

[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala

Warning: Using a password on the command line interface can be insecure.

mysqldump: Got error: 1290: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement when executing 'SELECT INTO OUTFILE'

可以很清楚地从提示看到是因为mysql服务启用了--secure-file-priv,所以才无法执行。

那么--secure-file-priv又是什么东东,应该如何解决才能是它可以备份呢?

--secure-file-priv=name :

Limit LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE() to files within specified directory

可以看到secure-file-priv参数是用来限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()传到哪个指定目录的。

当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出

当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

查看数据库当前该参数的值

root@localhost:mysql.sock 00:14:52 [(none)]>show global variables like '%secure%';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| secure_auth | ON |

| secure_file_priv | NULL |

+------------------+-------+

2 rows in set (0.00 sec)

清楚地看到secure_file_priv 的值是NULL,说明此时限制导入导出的

所以应该改变该参数

可是查看了mysql.cnf中居然没有对这个参数进行设定,就说明这个参数默认便是null

所以再mysql.cnf中的[mysqld]加入secure_file_priv =

再重启mysql服务

然后再查一下此时参数的值

root@localhost:mysql.sock 00:28:30 [(none)]>show global variables like '%secure%';

+------------------+-------+

| Variable_name | Value |

+------------------+-------+

| secure_auth | ON |

| secure_file_priv | |

+------------------+-------+

2 rows in set (0.00 sec)

已经是我们要的结果

开始进行导出

[root@potato Desktop]# mysqldump -uroot -proot -S /tmp/mysql.sock --tab=/data/mysql/mytest_3306/data/backup lala

Warning: Using a password on the command line interface can be insecure.

可以看到成功了

使用mysqldump进行MariaDB 的备份 http://www.linuxidc.com/Linux/2015-07/120294.htm

使用mysqldump导出数据库 http://www.linuxidc.com/Linux/2014-10/108192.htm

基于mysqldump快速搭建从库 http://www.linuxidc.com/Linux/2015-04/116170.htm

恢复mysqldump创建的备份集 http://www.linuxidc.com/Linux/2015-02/113631.htm

使用mysqldump命令行工具创建逻辑备份 http://www.linuxidc.com/Linux/2015-02/113629.htm

mysqldump实现数据库逻辑备份 http://www.linuxidc.com/Linux/2015-08/121551.htm


本文永久更新链接地址

http://www.linuxidc.com/Linux/2017-08/146186.htm

Linux公社

责编内容by:Linux公社 (源链)。感谢您的支持!

您可能感兴趣的

MySQL备份/还原工具使用:mysqldump,source 数据库还原: mysql -h localhost -u root -p123456 www
让mysqldump变成并发导出导入的魔法 取名mypumpkin,是python封装的一个让mysqldump以多线程的方式导出库表,再以mysql命令多线程导入新库,用于成倍加快导出,特别是导入的速...
Mysqldump Through a HTTP Request with Golang So, in aprevious post I explained how one can backup all databases on a server,...
FAQ系列 | 纳尼,mysqldump导出的数据居然少了40万?... 0、导读 用mysqldump备份数据时,加上 -w 条件选项过滤部分数据,发现导出结果比实际少了40万,什么情况? 本文约1500字,阅读时间约5分钟...
Ignore “views” in the mysql db backup ... How to take the mysql database backup using gem each tim...