2012-10-10 15 views
0

有一個文件1.sql有:字符組合不能從文件恢復到MySQL

DROP TABLE IF EXISTS `tbl`; 
CREATE TABLE `tbl` (
    `row` varchar(100) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

INSERT INTO `tbl` VALUES ('—\''); 

,當我在phpMyAdmin運行該SQL工作正常。

但是,當我從CMD運行:

mysql -u root -p dtbs < 1.sql 

失敗

ERROR 1064 (42000) at line 6: 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 ''鈥擻'')' at line 1 

如果您在—\'改變什麼,它的工作原理。如果你在\'之間加上字母,它可以工作:—d\'

—\'有什麼特別之處?爲什麼我不能在cmd文件中使用它(windos7-64)。它是我嘗試恢復的轉儲的一部分。

+0

你可以嘗試在''cmd'型1.sql'? –

+0

'INSERT INTO TBL VALUES( '鈥攄\'');'編碼問題 – Qiao

回答

0

嘗試在cmd運行命令chcp 850你運行你的代碼之前。

,這使使用正確的編碼1.sql文件加載。

+0

OK,這是工作 – Qiao

+0

'型1.sql'仍然混亂,但MySQL的沒有錯誤恢復轉儲。 – Qiao

0

--default-character-set=utf8

做到了。

mysql -u root -p --default-character-set=utf8 dtbs < 1.sql