几M的sql文件(或更小)
直接生成sql文件导入,生成方法可以自己写给函数,或者利用excel拼接 看这里 。
通过java、python之类的编程语言导入会很慢的。
如果是N个小文件:
- 可以先创建一个all.sql,里面放:
source a.sql
source b.sql - 直接在mysql里
source all.sql
修改可导入的sql文件大小限制:
默认sql文件大小上限是2M,这里修改:(先保存一份my.cnf.old)
找到/etc/my.cnf,添加
interactive_timeout = 120
wait_timeout = 120
max_allowed_packet = 32M
然后重启服务
service mysqld restart
几G的sql文件
首先找一下这个路径在哪里。
所以把要导入的文件放入该文件夹下再带上路径即可。
mysql> load data infile "/var/lib/mysql-files/XXX.txt" into table XX fields terminated by "\t" lines teerminated by "\n" (列名们));
Query OK, 2922672 rows affected (2 min 11.21 sec)
Records: 2922672 Deleted: 0 Skipped: 0 Warnings: 0
如果说中间有错误,它会终止,回滚,所以要记录错误的行数,手动插入看看。