文章總結了在mysql導入數據庫時出現錯誤#1064 You have an error in your SQL syntax提示,我們這和數據庫沒什么關系大多是sql語句問題,或是數據庫版本不兼容的問題.
當使用SQLyog導出dedecms的數據庫為xxx.sql文件時,會報幾個錯誤:
錯誤1064年在線21:您有一個錯誤在您的SQL句法,檢查手工t帽子對應于您的MySQL服務器版本為正確的句法,用途近‘DEFAULT CHARSET=utf8在線.
第一是,USING BTREE 錯誤,You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE,UNIQUE KEY `pkey` (`pkey`) USING BTREE.
解決辦法:代碼如下:
UNIQUE KEY `pkey` (“pkey“) USING BTREE,修改為
UNIQUE KEY `pkey` USING BTREE (“pkey“).
即把USING BTREE 放到索引字段前面即可.
第二,dedecms的一些字段跟mysql系統保留字段沖突,而SQLyog導出的數據sql文件的sql語句insert中的字段有沒有加符號“`”,所以會沖突.
在phpmyadmin內選擇某個數據庫,瀏覽其table列表,可以看到table的collation(整理)信息。例如A數據庫table的collation信息為gbk_chinese_ci,那么在導出數據庫成sql腳本前,在phpmyadmin首頁language(語言)一欄選擇“中文-Chinese simplified”,千萬不要選擇“中文-Chinese simplified-gb2312”,否則導出的sql文件中中文會出現亂碼現象。這句話絕對是關鍵,我就是按照這樣做的然后就OK了。
同理,table的collation信息為gb2312_chinese_ci,那么在導出數據庫成sql腳本前,在phpmyadmin首頁 language(語言)一欄選擇“中文-Chinese simplified-gb2312”,這樣導出的sql腳本中文不會出現亂碼。
當導入上述導出的sql腳本時,進入phpmyadmin首頁,能夠看到“MySQL 字符集”信息,例如“UTF-8 Unicode (utf8)”,那么在導入上述導出的sql腳本時,“文件的字符集”選擇“utf8”.
如果是dedecms可直接使用dededms直接數據導入導出.
新聞熱點
疑難解答