匯入1G的資料,但是在怎麼都匯入不了,用命令列就可以輕鬆搞定了。用mysql source命令可以匯入比較大的檔案。
| 代碼如下 |
複製代碼 |
mysql>use dbtest; mysql>set names utf8; mysql>source D:/www/sql/back.sql; |
通過source命令匯入多個檔案,可以建立一個sou.sql檔案,裡面存放下面的命令
例如:
| 代碼如下 |
複製代碼 |
source d:/a1.sql; source d:/a2.sql;
|
當你運行
這樣就可以在一個source命令裡面匯入多個sql檔案了。
但這樣會有一個問題,如果有一100個這樣的檔案我們一個個去寫命令肯定很麻煩,下面我百度搜尋到一個解決辦法
| 代碼如下 |
複製代碼 |
建立一個all.sql vim all.sql 在裡面寫入: source 1.sql source 2.sql ...... source 53.sql source 54.sql 然後只要 mysql> source 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 |