单个或多个txt文件导入mysql数据库
·
文章目录
一、单个txt文件导入到数据库
这里以简单的用户表为例展开:
如下图所示,要导入的txt文件:xs1.txt ,字段以“|”隔开。
并且在xs文件夹下包含多个xs?.txt文件
1.1 创建库与表
创建test数据库并建立user表(字段包含:id 、username、grade)
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL,
`username` varchar(50) COLLATE utf8_bin NOT NULL,
`grade` int(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
1.2 执行sql命令导入数据
sql语句:
mysql -uroot -p
use test;
load data infile 'E:/xs/xs1.txt' into table user fields terminated by'|' lines terminated by'\n';
二、文件夹内多个txt文件导入到数据库
为了大批量导入txt文件,需要编辑可执行脚本执行多条导入语句实现。windows使用.bat脚本,Linux则使用.sh脚本。
2.1 使用python制作sql语句文件
python代码如下(create_sql.py):
import glob
writeFile = open('E:/user_sql.txt','w')
writeFile.write('use test;\n')
for filename in glob.glob(r'E:/xs/*.txt'):
writeFile.write('load data infile '+ '"'+filename.replace('\\','/')+'"'+' into table user fields terminated by'+'"'+'|'+'"'+' lines terminated by'+'"'+r'\n'+'"'+ ';\n')
writeFile.close()
print('sql语句创建完毕,写入文件成功!')
这样就将xs文件夹下的所有要导入的txt文件,制作成sql语句放在user_sql.txt中,内容大致如下:
use test;
load data infile "E:/xs/xs1.txt"into table user fields terminated by"|" lines terminated by"\n";
load data infile "E:/xs/xs2.txt"into table user fields terminated by"|" lines terminated by"\n";
load data infile "E:/xs/xs3.txt"into table user fields terminated by"|" lines terminated by"\n";
……
2.2 制作可执行脚本
excute_sql.bat如下:
mysql -uroot -ppassword < E:/user_sql.txt
pause
创建好后双击运行后,就完成将文件夹内所有txt文件数据导入mysql中。
三、遇到问题
报错:
Error: The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
解决方法
- 关闭MySQL80服务
- 找到my.ini文件(默认安装C:\ProgramData\MySQL\MySQL Server 8.0下)
- 添加配置

将红框内的文件路径修改待上传文件的文件夹路径(文章中是修改为E:/) - 重新启动MySQL80服务
更多推荐



所有评论(0)