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