win10系统上批量将CSV导入MYSQL
2018-06-18 00:30:42来源:未知 阅读 ()
先简单放一下用到的:
MYSQL : 5.6版本
python3
powershell。
将csv导入mysql,主要就是用mysql的load data功能实现,其他前辈也都讲得很清楚了,这里简单列一下语句(注意enclosed只有一个双引号,此外‘忽略’那里,rows表示的是列,lines表示的是行,这里略去首行):
load data local infile 'filepath' into table tablename fields terminated ',' enclosed by '"' lines terminated by '\n' ignore 1 lines:
local关键字声明是从客户端传来服务器,即使文件在本地也可以用,就是速度会慢一些。而如果文件在本地且不用local关键字,那么需要把文件放在Mysql的Data文件夹下,查看Mysql的data文件夹:
show variables like 'datadir'
然后就是批量的实现了,由于掉了好几次坑,所以我用了两种办法来实现,一个用python3,另一个用Powershell的脚本
不知道为什么windows上的MySQLdb支持不了python3(Linux的可以),于是换了pymysql,用了local关键字导入了第一批数据,没有问题,就是速度比较慢,感觉每秒1M多吧。
++++++++++++++++++++++++++++++++++十几天后再来记录掉的另一个坑++++++++++++++++++++++++++++++++++++++++++++++
如果你的文件是放在另一台电脑上,这时用【local】,除了设置【local-infile】=1/on之外,还需要在pymysql连接语句里加上【local-infile=True】,不然mysql还会报错EORRO1148。语句即:
con = pymysql.connect(host='', port=, user='', passwd='', db='', local_infile=True)
++++++++++++++++++++++++++++++++++被自己蠢哭的分割线+++++++++++++++++++++++++++++++++++++++++++++++++++++++
为了提高速度,就想去掉LOCAL,于是把第二批数据拷贝到了data文件夹下,结果不知道是数据的问题还是mysql的问题,出现数据类型不匹配报错:
1366 : incorrect decimal value: '' for column 'column_name' in row 1
但神奇的是我的数据文件里并没有空值......而且如果不用python,而是直接用mysql执行sql语句,数据能顺利导入。于是菜鸟我以为是pymysql出了什么问题,就计划用别的方法,搜索了一下想用脚本,刚好windows上有powershell,感觉上手还挺方便,就用了它。
最早的时候,想直接用命令行方式:mysql -uuser -ppwd -e"SQL", 但这种方式里-e后接的sql不能是变量,即使是两个字符串拼接起来也不行。所以只好用其他方法,查询到可以用.net框架连接操作mysql,于是就按http://www.xuebuyuan.com/441945.html里的方法(原谅我没加上链接,但不知道为什么一加编辑页面就崩溃),不过由于我个人只需要创建表和插入数据的操作,并不需要获取数据,所以构建好command后,用
$command.ExecuteNonQuery();
直接执行即可。
然而悲催的是,在顺利load了十来个数据文件后,它又报错了!还是原来的错误1366!
这下我是真得想不出原因会在哪里了,只好按最早查到的解决方案,将mysql的配置文件my.ini里的sql-mode
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
改成
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
然后数据就顺利导入了。
然而我还是不知道前面为什么会报错,而且有时报错有时正常?如果有大佬看到这篇文章并愿意解答的话,非常感谢!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:MySQL多表
- MySQL出现1067错误号 2020-02-27
- windows系统中mysql自动备份的方法 2020-02-26
- MySQL的默认密码的修改方法 2019-10-25
- 使用 Shell 在多服务器上批量操作 2019-09-23
- mySQL中如何使用replace 2019-09-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash