我有MySQL數據庫版本5.1.36,隨WAMP安裝。我在Windows XP SP3上將它用於開發目的,並且它有一些數據,它是西里爾文,並且所有這些表/列的排序規則設置爲utf8_general_ci
。MySQL UTF8 Windows導出 - Linux導入
現在是時候把這個數據庫遷移到Debian Lenny上的僞生產環境了。這裏的MySQL版本是5.0.51a。
我試過如下:
- 我導出的數據DATABSE從的phpmyadmin在Windows和保存在
.sql
文件是UTF8。 - 然後,我通過WinSCP將它傳遞給Linux機器(包括默認和二進制傳輸設置)。
- 我通過命令行創建的數據庫:
mysqladmin -u root -p create nbs
最後,我試圖創建表並填寫數據:
mysql -u root -p --default-character-set=utf8 nbs < NBS_utf8_1.sql
然而,這就是我得到的錯誤,如:
錯誤1064(42000)在行1:您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法附近使用手冊「我»¿ CREATE TABLE IF NOT EXISTS
`history_members` ( `id`
INT(11)NOT NULL AUTO_」在行1把
事情搞砸了編碼,我想......但不知道如何以及在哪裏。我想我在SO上讀到類似的問題,即文本傳輸的二進制模式只會將換行符CRLF更改爲LF(不知道這是否正確...)。我在這裏錯過了什麼?
謝謝。
但看來轉儲文件包含了一些多餘的字符。這是一個文本文件,所以二進制模式不應該用於上傳。 –
是的,當我在PuTTY控制檯中用'more'顯示它時,首先看到的就是'胡扯。我不知道它是如何到達那裏的,但是當我用文本模式轉移它時,它消失了。 – Less
但是,這並沒有解決問題,因爲編碼再次搞砸了...... – Less