SSHを介したアクセント文字を含むSQLファイルのコピー

SSHを介したアクセント文字を含むSQLファイルのコピー

サーバーAからサーバーBにデータベースを移行しようとしています。

データベースはmysqlです。データベースには、ç、ãé、...などの文字を含むレコードがいくつかあります。

データベースエンコーディングはUTF8です。

まもなくサーバーAこのようにエクスポートします。

mysqldump -u root -p sis > sis3.sql  

それから(を使って)ファイルを開きましたが、文字は正常ではありませんviでした。だから私は努力しました

 mysqldump -u root -p sis --default-character-set=utf8 > sis3.sql 

まだない。それから

 mysqldump -u root -p sis --default-character-set=latin1 > sis3.sql 

現在のファイル〜らしいいいね

コピー

サーバー B へのレプリケーションは、以下を使用してサーバー B で実行されます。

scp -i p [email protected]:/home2/sis3.sql ~/

ただし、文字セットをサーバーBにコピーするたびにファイルが正しく機能しません。 「特殊」文字は常に間違っています。

3つの方法(latin1、utf8、デフォルト値なし)でインポートしようとしましたが、すべてエラーが発生しました。

私は次のようにインポートします:

mysql -u root -p"pwdpwdpwd" --default-character-set=utf8 sis < sis3.sql 

もちろん、デフォルトの文字セットを変更してください。

しかし、mysqlをインポートする前と同様に、ファイルは「破損」しました。これはsshを介した転送によって引き起こされた可能性があると思いました。

この問題なくmysqlデータベースを転送する方法はありますか?

サーバー情報

サーバーA

Linux version 2.6.32-5-amd64 (Debian 2.6.32-48squeeze6) ([email protected]) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Tue May 13 16:34:35 UTC 2014
# locale
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pt_BR.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_ALL=

サーバーB

Linux version 4.4.0-0.bpo.1-amd64 ([email protected]) (gcc version 4.9.2 (Debian 4.9.2-10) ) #1 SMP Debian 4.4.6-1~bpo8+1 (2016-03-20)
# locale
LANG=pt_BR.UTF-8
LANGUAGE=
LC_CTYPE="pt_BR.UTF-8"
LC_NUMERIC=pt_BR.UTF-8
LC_TIME=pt_BR.UTF-8
LC_COLLATE="pt_BR.UTF-8"
LC_MONETARY=pt_BR.UTF-8
LC_MESSAGES="pt_BR.UTF-8"
LC_PAPER=pt_BR.UTF-8
LC_NAME=pt_BR.UTF-8
LC_ADDRESS=pt_BR.UTF-8
LC_TELEPHONE=pt_BR.UTF-8
LC_MEASUREMENT=pt_BR.UTF-8
LC_IDENTIFICATION=pt_BR.UTF-8
LC_ALL=

ベストアンサー1

他の人に役立つものを見つけました。

http://alexking.org/blog/2008/03/06/mysql-latin1-utf8-conversion

問題はlatin1にエクスポートし、すべてのテーブルがutf8なので、ファイルを「set NAMES utf8」に変更することです。

すでに作業中です。

おすすめ記事