加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

普通数据文件导入mysql出现问题如何化解

发布时间:2023-08-18 15:24:50 所属栏目:MySql教程 来源:
导读:下文内容主要给大家带来普通数据文件导入mysql出现问题如何处理,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
下文内容主要给大家带来普通数据文件导入mysql出现问题如何处理,这里所讲到的知识,与书籍略有不同,都是亿速云专业技术人员在与用户接触过程中,总结出来的,具有一定的经验分享价值,希望给广大读者带来帮助。
 
一、问题描述
 
    数据文件 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;
 
普通数据文件导入mysql出现问题如何处理
 
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数据库,这个参数不能修改,但是我们又必须有导入导出的功能,所以我们只能自建实例,自己做限制。
 
3、第三个问题
 
# mysqlimport -r --host="db1" --port="3306" --user="abc" --password="123"  --fields-terminated-by="\t" --lines-terminated-by="\n" --columns="a,b,c,d" DB "/tmp/a.txt"
 
mysqlimport: Error: 13, Can't get stat of '/data/codebase/a.txt' (Errcode: 2 "No such file or directory"), when using table: a
 
    默认是找mysql库所在云服务器的/tmp目录下的文件,而不是执行命令的机器。
 
    加 --local 参数,表示指定的导入文件是执行命令的机器。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章