1 . https://www.cnblogs.com/gaogaoxingxing/p/6066533.html
导入1G的数据,但是在怎么都导入不了,用命令行就可以轻松搞定了。用mysql source命令可以导入比较大的文件。
代码如下 | 复制代码 |
mysql>use dbtest; |
通过source命令导入多个文件,可以新建一个sou.sql文件,里面存放下面的命令
例如:
代码如下 | 复制代码 |
source d:/a1.sql; source d:/a2.sql; |
当你运行
这样就可以在一个source命令里面导入多个sql文件了。
但这样会有一个问题,如果有一100个这样的文件我们一个个去写命令肯定很麻烦,下面我百度搜索到一个解决办法
代码如下 | 复制代码 |
新建一个all.sql |
另一种大文件导入解决办法,这个是用服务器管理权限的用户了
mysql source 命令导入大的sql
在mysql的安装目录下 找到 my.ini文件 加入以下代码:
代码如下 | 复制代码 |
interactive_timeout = 120 wait_timeout = 120 max_allowed_packet = 32M |
小例子
mytest_emp_dept.sql文件,内容如下:
代码如下 | 复制代码 |
CREATE TABLE emp(eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(20) NOT NULL, esex VARCHAR(10), deptid INT NOT NULL); CREATE TABLE dept(deptid INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(20) NOT NULL,daddress VARCHAR(200)); INSERT INTO emp(ename,esex,deptid) VALUES('chris','M',1),('edge','M',1),('kelly','W',2),('maryse','W',2); INSERT INTO dept(dname,daddress) VALUES('development','beijing'),('accounting','shanghai'); SELECT ename,esex,dname,daddress FROM emp,dept WHERE emp.deptid=dept.deptid ORDER BY ename; |
导入sql的命令行如下:
代码如下 | 复制代码 |
source "路径名"+/mytest_emp_dept.sql |
大概流程:
建立一个 t.sql 文件文件里面的数据是这样的:
INSERT INTO e_tuike_goods
VALUES (1, 342, 23, 446, 0.0500, 'upload/100000/4/flash/20160428204722643.jpg', '宝贝的价格宝贝的价格宝贝的价格宝', 1466579549, '0000-0-0 00:00:00', 1, NULL, NULL, 0);
INSERT INTO e_tuike_goods
VALUES (2, 342, 32, 215, 0.0500, 'upload/100000/4/flash/20160516184123387.jpg', '非卖品,拍了也不发货', 1466579549, '0000-0-0 00:00:00', 1, NULL, NULL, 0);
这样的。
写完后下面开始导入数据:
开始导入数据语句: LOAD DATA INFILE 'd:/t.sql' INTO TABLE e_tuike_goods FIELDS TERMINATED BY ',';
这里必须要用 “FIELDS TERMINATED BY ',' ”这段语句
否则出现其他数据为空的情况
后面也可以添加语句的指定格式 utf8 什么的