2013-03-02 141 views
0

我遇到了類似的問題,因爲這裏有一個屬於下面的問題。但是找到的解決方法對我來說沒有選擇。當發出一個特殊字符時,Mysql行導入停止

Euro symbol breaks mysql insertion process

我遷移的朋友一些數據,我有沒有到服務器或mysql外殼的方式訪問,我不得不進口多個數據庫。

兩臺服務器都有phpMyAdmin(source:3.4.10.1deb1,destination:3.5.3),但如果我導出並導入一個sql文件(轉儲仍然可以),那麼只要特殊字符即將被插入,導致絃斷。

我已經查看過,所有表都utf8_general_ci源和目標,轉儲具有/*!40101 SET NAMES utf8 */;

下面是變量,但其他然後,會話和全球彈起我看到有eighter沒有區別。任何想法什麼是錯的,以及如何(以及如果)我可以用有限的特權修復它?

Source: 
character set client utf8  
(Global value) latin1 
character set connection utf8  
(Global value) latin1 
character set database latin1 
character set filesystem binary 
character set results utf8 
(Global value) latin1 
character set server latin1 
character set system utf8 

Destination: 
character set client latin1 
(Sessionvariables) utf8  
character set connection latin1 
(Sessionvariables) utf8  
character set database latin1 
character set filesystem binary 
character set results latin1 
(Sessionvariables) utf8  
character set server latin1 
character set system utf8  
+0

怎麼樣phpmyadmin <-> mysql連接?該進程的每個階段必須是utf8 – 2013-03-02 15:20:45

+0

是不是字符集客戶端? (如果沒有,我在哪裏可以找到它?) – Neograph734 2013-03-02 15:23:11

+0

如果我直接在phpMyAdmin中輸入轉儲的內容 - >它確實有效,所以文件上傳Ï認爲出了問題。 – Neograph734 2013-03-02 16:33:25

回答

0

奧凱,有可能是與連接一些錯誤,但它不是我的力量來改變這種狀況。

更簡單的解決方案是導入gzipped(或其他壓縮)文件,而不是常規的SQL文件。壓縮會改變特殊字符,以便在上傳過程中不會中斷。一旦在服務器上,一切都是utf-8並且插入按預期運行。