标签:mysqlimport load data infile secure_file_priv
一、问题描述
数据文件 a.txt 导入mysql表中。
1、第一个问题
# mysqlimport -uabc -p‘123‘ -h db1 -P 3306 DB a.txt ERROR 1045 (28000): Access denied for user ‘root‘@‘db1‘ (using password: YES), when using table:
在排除密码和格式填写错误之后,查看mysql.user表 ,确认是否有File权限。
确认之后确实没有File权限。更新mysql.user表的File权限为‘Y‘,刷新权限。
> flush privileges;
2、第二个问题
重新执行导入命令
# mysqlimport -uabc -p‘123‘ -h db1 -P 3306 DB a.txt mysqlimport: Error: 1290, The MySQL server is running with the --secure-file-priv option so it cannot execute this statement, when using table:
--使用load data infile 也报相同错误。
查看--secure-file-priv参数
> show global variables like ‘secure_file_priv‘; +------------------+-----------+ | Variable_name | Value | +------------------+-----------+ | secure_file_priv | /dev/null | +------------------+-----------+
此参数不是动态参数。需要添加配置文件,重启服务才可以生效。
1)不限制导入导出
# cat /etc/my.cnf [mysqld] secure_file_priv
2)限制在特定目录下
# cat /etc/my.cnf [mysqld] secure_file_priv = /tmp
--只允许/tmp目录下的数据文件可以导入,其他目录下的文件没有权限导入。
因为我们使用的是腾讯云的mysql数据库,这个参数不能修改,但是我们又必须有导入导出的功能,所以我们只能自建实例,自己做限制。
本文出自 “11570138” 博客,请务必保留此出处http://11580138.blog.51cto.com/11570138/1931925
标签:mysqlimport load data infile secure_file_priv
原文地址:http://11580138.blog.51cto.com/11570138/1931925