MySQL无法使用load data local infile导入数据

问题描述:
MySQL使用load data local infile导入数据报错:

mysql> load data local infile '/path/file' into table tablename;
ERROR 1148 (42000): The used command is not allowed with this MySQL version

问题原因:
这种情况的原因是为了安全起见,MYSQL默认不允许客户端从本地载入文件。客户端local_infile默认关闭,因此需要打开导入外部数据的权限。

解决方法一:

  • 查看是否有导入外部数据的权限:
mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | OFF   |
+---------------+-------+
  • 打开导入外部数据的权限
mysql> set global local_infile = 'ON';
mysql> show global variables like 'local_infile';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile  | ON    |
+---------------+-------+
  • 然后再进行数据导入
mysql> load data local infile '/path/file' into table tablename;
ERROR 1148 (42000): The used command is not allowed with this MySQL version
  • 如果仍然报错,就退出mysql使用cmd执行如下命令登录:
mysql> mysql --local-infile=1 -u root -p
  • 登陆成功后执行导入数据的命令就可以了:
mysql> load data local infile '/path/file' into table tablename;

解决方法二:
将数据文件放在".\ProgramData\MySQL\MySQL Server 8.0\Uploads"路径下,然后执行如下命令即可:

mysql> load data infile '/path/file' into table tablename;
发布了95 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/kejiayuan0806/article/details/103170790