質問

ローカルでは、これを行い、データベースをダンプして移動し、SilverStripe 2.3から2.4のアップグレード:

mysqldump --opt  --default-character-set=latin1 --skip-set-charset --user=$root -p$password $oldDatabase -r db.sql  

iconv -f LATIN1 -t UTF8 db.sql > db_utf.sql 


CREATE DATABASE $newDatabase CHARACTER SET utf8 COLLATE utf8_swedish_ci; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON $newDatabase . * TO '$newUser'@'localhost';  FLUSH PRIVILEGES;
SET NAMES utf8; SOURCE db_utf.sql;

そして、それは機能しますが、サーバーではUbuntu 8.04で、mysql ver 14.12 Distrib 5.0.51aを使用しています。私はØæåøæåの代わりにクレイジー√∏チャーターを取得します。

誰かが私がどこで間違っているのか知っていますか?

役に立ちましたか?

解決 3

これは私にとって問題を修正しました。

  1. ダブルエンコードされたinput.sqlをインポートします

  2. もう一度エクスポートします mysqldump -h "$DB_HOST -u "$DB_USER" -p"$DB_PASSWORD" --opt --quote-names --skip-set-charset --default-character-set=latin1 "$DB_NAME" > output.sql

  3. CleanOutput.sqlをインポートします

mysqldumpによってエンコードされたデータベースを復元する方法

他のヒント

次のコマンドで実行してみてください。

mysqldump -u root -p database -r output.sql

矢印で出力をリダイレクトする代わりに '>'

MySqldumpを使用してアラビア語でデータベースをエクスポートしようとしたときに同じ問題があり、それを解決したときにそれを解決し、メモ帳++で出力ファイルを開くたびに、そのエンコードはANSIで、UTF-8である必要があります。エクスポートとインポートのコードは次のとおりでしたが、私は正しかったことが判明しましたが、端末でデータベースをチェックしていましたが、端末はエンコードをサポートせず、phpmyAdminでチェックしようとしましたが、ファイルを開こうとしないでくださいNotePad ++では、またはアプリケーションを直接試してみるだけで動作します。

エクスポートコマンド

mysqldump -uuser -ppassword --default-character-set=utf8 dbname > outputfile //or even if you use -r instead of > no difference

インポートコマンド mysql -uuser -ppassword --default-character-set=utf8 dbname < outputfille // please take in mind this does override existing database

クライアントがUTF8に設定されていることを確認することが非常に重要です。紛らわしいことに、データベースをUTF8に設定することと同じではありません。 open /etc/my.cnfを使用して、[mysqld]だけでなく[mysql]ではなく[mysql]の下にデフォルトのCharacter-set = utf8があることを確認してください

これで、UTF8ダンプをMySQLクライアントに直接パイプできるはずです。また、MySqlDumpが完璧ではないため、MySQLDUMPコマンドでオプション - ヘックスブロブを使用することをお勧めします。

私は次のように成功します:

mysql --default-character-set=utf8 -u ..

これがあなたを助けるでしょうように。

あなたはそれなしでそれを試しましたか iconv ステップ?

UTF-8データベースをダンプするときに使用するものは次のとおりです。

mysqldump \
    -u $DB_USER -p"$DB_PASS" \
    --default-character-set=Latin1 \
    --result-file=$DATAFILE

復元するには:

mysql -u $DB_USER -p"$DB_PASS" \
    --default-character-set=latin1 < $DATAFILE

おそらく、テーブルを$ newDatabaseにlatin1にコピーするだけです。次に、各テーブルについて、実行してください。

ALTER TABLE table CONVERT TO CHARACTER SET utf8 COLLATE utf8_swedish_ci

私のために機能した唯一の方法は、PHPMyAdminのラテン-1(ファイルの文字セット:ISO-8859-1)としてUTF-8テーブルをエクスポートすることでした。

メモ帳++でエクスポートされたファイルをUTF8に変換する(BOM)を開く

次に、ファイルをアップロードし、Source Dump.sqlでインポートします。

これは私のために働いた:

  1. サーバーをsshして接続します。
  2. DBダンプランニングを作成します

mysqldump -h my_guid.cloud.database.com -u my_user -p my_database_name -r ~/my_db_backup.sql

コンソールはパスワードをプロンプトして要求し、そこで入力できます。私のPWDに特殊文字があったので、このコマンドを簡単に実行できました

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top