最近一個項目中使用的使用mysql導入sql腳本時間出現錯誤
MySQL導入腳本命令
mysql -u username -p dbname < dbsql.sql
幾次嘗試沒有成功,由於對Linux下命令行不是很熟悉,嘗試使用phpMyAdmin來救急吧,安裝完後運行SQL腳本出現以下錯誤:
ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8′ at line 11
問Google後以為是版本中默認語言樣式不一樣導致的錯誤,於是把代碼改為了
ENGINE=InnoDB COLLATE=’utf8_general_ci’
phpMyAdmin運行SQL後仍然出錯誤,不過這次SQL運行到一個表的Create Table位置退出的,再對比這個表SQL與其它表SQL發現了 USING BTREE,這時我的反應是十有八九是它導致的了。於是把這個表前後的SQL分別運行,沒錯!!這也證明了之前的想法。接下來就容易辦了,查找 USING BTREE mysql,你會看到很多這樣的例子,mysql 5.14版本之前不認識 USING BTREE。解決辦法有兩個:
1、直接刪除 USING BTREE
2、導出腳本時開啟兼容性 mysqldump –compatible=mysql40
以下幾個關於USING BTREE 的鏈接
USING BTREE mysql
http://stackoverflow.com/questions/3767753/mysql-error-using-btree
關於USING BTREE Bug http://bugs.mysql.com/bug.php?id=25162
本文來源:http://www.radys.cn/archives/733.html