當使用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直接數據導入導出