背景:希望将某个txt文件中的数据全部导入MySQL中某个已经被建好的数据库中。
本文记录了可能会遇见的多种问题,给出了作者本人的解决方案。
未选择数据库
直接输入这句命令(下文简称导入数据命令):
LOAD DATA LOCAL INFILE 'txt文件名.txt' INTO TABLE TableName(你希望导入的数据库中的某个表的名称) LINES TERMINATED BY '\r\n';
可能会出现这个报错:
ERROR 1046 (3D000): No database selected
这就是没有选中数据库,只需要选中数据库即可
USE 数据库名;
未打开加载本地文件选项
如果这时候再次输入导入数据命令,可能会出现这句报错:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
这是因为你没有打开加载本地文件选项
输入
show variables like 'local_infile';
即可观察是否打开,下图为未打开状态
想要打开只需要输入这句命令
set global local_infile='on';
再次观察是否打开
没有启用加载本地数据文件
再次输入导入数据命令,可能会出现这句报错
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.
这次是因为没有启用加载本地数据文件的功能,需要打开Windows命令行(Win+R+cmd)输入这行命令
mysql -u root -p --local-infile=1
这个命令的含义是要使用用户名 "root" 连接到 MySQL 服务器,并且启用客户端加载本地数据文件的功能。(相当于重启MySQL)
未添加环境变量
但是这时候可能还会出现另一个报错
这可能代表着系统无法找到MySQL客户端程序,也就是说又可能MySQL客户端的路径没有被正确添加到系统的环境变量中。
解决方法当然就是手动把路径添加到环境变量里
(本人为Win11系统)
1.在Windows下面的搜索栏搜索“查看系统高级设置”,打开,会出现这个界面。点击被红框款选的“环境变量”,进入下一个界面。
2.按照序号标注的顺序,找到Path,点击编辑,进入下一个界面
3.按照序号点击新增MySQL的环境变量
其中MySQL的环境变量在安装路径的bin,我的是C:/Program Files/MySQL/MySQL Server 8.0/bin
4.新建好之后点三次确定,退出刚刚打开的页面
mysql -u root -p --local-infile=1
成功导入
重启命令行页面,再次输入,重新登陆MySQL
此时已经启用加载本地数据文件,输入导入数据命令
大功告成,数据导入成功。
希望能对大家有所帮助。