0

私は、ここで以下に示す問題と同様の問題に直面しています。しかし、回避策は私には選択肢がないことを発見しました。

ユーロ記号はmysql挿入プロセスを中断します

友人のためにいくつかのデータを移行しています。サーバーやmysqlシェルにアクセスできず、いくつかのデータベースをインポートする必要があります。

両方のサーバーにphpMyAdmin(ソース:3.4.10.1deb1、宛先:3.5.3)がありますが、SQLファイルをエクスポートしてインポートすると(ダンプはまだOKです)、特殊文字が表示されるとすぐに行のインポートが停止します挿入され、文字列が壊れます。

私はチェックしました、そしてすべてのテーブルはutf8_general_ciソースとデスティネーションです、ダンプは持っています/*!40101 SET NAMES utf8 */;

以下は変数ですが、セッションとグローバルが反転していることを除けば、8つの違いは見られません。何が間違っているのか、そして制限された特権でそれをどのように(そしてもし)修正できるのか、何か考えはありますか?

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    
4

1 に答える 1

0

わかりました、接続に問題がある可能性がありますが、それを変更することはできません。

はるかに簡単な解決策は、通常の SQL ファイルではなく、gzip された (または他の圧縮された) ファイルをインポートすることです。圧縮によって特殊文字が変更されるため、アップロード中に文字が壊れることはありません。サーバー上では、すべてが再び utf-8 になり、挿入は期待どおりに実行されます。

于 2013-03-02T23:27:15.580 に答える