mysqldump Got error 1290
在用mysqldump备份时候遇到1290的错误
[mysql@localhost ~]$ mysqldump -uroot -p1234 --tab=/mysqldata/tmp query_rewrite
mysqldump: [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,所以才无法执行。这个选项或系统变量用被来限制通过load data和select … into outfile语句和load_file()函数所执行导入和导出操作的数据量。
secure_file_priv有以下设置:
.如果为空,变量不生效。没有安全设置。
.如果设置为一个目录名,服务器对导入和导出操作只对这个目录中的文件生效,但目录必须存在,服务器不会创建目录。
.如果设置NULL,服务器禁止导入和导出操作。
查看数据库当前设置:
mysql> show global variables like ‘%secur%’;
±-------------------------±------+
| Variable_name | Value |
±-------------------------±------+
| require_secure_transport | OFF |
| secure_auth | ON |
| secure_file_priv | NULL |
±-------------------------±------+
3 rows in set (0.01 sec)
看到secure_file_priv当前设置为NULL,说明限制导入和导出操作。
查看配置文件my.cnf发现没有设置secure_file_priv参数,那么这个参数默认应该是为NULL。
[mysql@localhost mysql]$ cat my.cnf
[mysqld]
basedir=/mysqlsoft/mysql
datadir=/mysqldata/mysql
bind-address=*
user=mysql
port=3306
log-error=/mysqldata/mysql/mysql.err
pid-file=/mysqldata/mysql/mysqld.pid
socket = /mysqlsoft/mysql/mysql.sock
character-set-server=utf8mb4
default-storage-engine=INNODB
explicit_defaults_for_timestamp = true
innodb_flush_method=O_DIRECT
binlog_format = mixed
log-bin=/mysqldata/mysql/binlog
max_binlog_size = 100m
binlog_cache_size = 4m
server-id=1
修改配置文件my.cnf参加secure_file_priv=
[mysql@localhost mysql]$ vi my.cnf
…
secure-file-priv=
重启mysql数据库
[root@localhost ~]# service mysqld restart
Shutting down MySQL… SUCCESS!
Starting MySQL… SUCCESS!
再次检查secure_file_priv参数设置
mysql> show global variables like ‘%secur%’;
±-------------------------±------+
| Variable_name | Value |
±-------------------------±------+
| require_secure_transport | OFF |
| secure_auth | ON |
| secure_file_priv | |
±-------------------------±------+
3 rows in set (0.00 sec)
再执行导出操作成功
[mysql@localhost ~]$ mysqldump -uroot -p1234 --tab=/mysqldata/tmp mysql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
- 点赞
- 收藏
- 关注作者
评论(0)