最近一个项目中使用的使用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