0

(編集 2: ありがたいことに、情報が入ってきました。ODBC を介してのみアクセスされ、MySQL データベースに設定したものと一致するように接続文字セットを設定できます。したがって、この質問全体は次のようになります。ODBC と両方の接続文字セットを設定すると、データベースを UTF-8 に変更しましたが、これでデータが破損することはありませんか? (サーバー/データベースの文字セットは latin1 です) 簡単な「はい」または「いいえ」で理由を簡単に説明していただければ幸いです。

--------------- 残りは元の背景情報であり、もはや実際には関係ありません.--------------

(編集:明確にするために:データはすでに正しくインポートされています。これは接続文字セットに関する質問のみです。)

新しく作成した MySQL データベースの接続文字セットを照合およびサーバーの文字セットに変更するかどうかを決定しようとしています。

サーバーとその照合文字セットは、 MySQL 4.1 を実行している古いサーバーと同じ - latin1 に設定されています。一部のデータは mysql.exe で既にインポートされており、正しいことが検証されています。

サーバー管理者が MySQL 5.5 をインストールし、ある時点で新しいデータベースを作成したとき、接続文字セットはデフォルトの UTF-8 から変更されませんでした。

古いサーバーは、照合または接続文字セット用の変数が設定されていないと報告したので、私の質問は次のとおりです: (現在の設定である UTF-8 が最も正しいルートであると想定しています)

  • どこを探して何を設定するか(経験からのヒント)
  • latin1 に設定することを選択した場合、データベースのどこかに書き込むスクリプトがデータを再び破損する可能性がある場合
  • または、データを破損することなく自由にオンとオフを切り替えることができるかどうか、つまり、決定を延期できるかどうか。

データベース サーバーの管理者は、私に回答を与えるための情報を持っていません。また、古いデータベースには情報がないため、確認したいのですができません。

これは 1GB の .sql ファイルで、インポートするには TextPad で段階的に編集する必要があるため、これが重要な設定であるかどうかを知ることで時間を節約できます。

現時点での私の最善の計画は、設定を変更せず、データをインポートしてバックアップすることです。接続文字セットが正しく設定されていないためにスクリプトがデータを破損した場合は、バックアップが復元されます。この計画に問題はありますか?

4

2 に答える 2

0

ああ、私は本当にあなたの質問を読むのにもっと時間をかける必要があります、はい、データベースを持つことの全体的なポイントはデータを永続化することです、間違った文字セットの問題のためにバックアップを復元し続けるなら、データは永続的ではありません、より良い計画はすべてが同じ文字セットを使用するようにスクリプトを更新し、データベース内のその文字セットにないフィールドを同じ文字セットに変換します。

于 2012-10-12T10:12:45.033 に答える
0

データ移行時、

  1. 宛先データの charset+collat​​ion を古い MySQL データベース バージョンと同じに設定します。Type= を Engine= に、timestamp(xx) を timestamp に、一部のfloat(xx,xx) を f.ex の巨大な sqldump で double に変更する必要がある場合があります。mysql.exe でインポートする前の TextEdit

  2. 接続がテーブルに書き込む場合、そのソース文字セットがデータベースの文字セットと異なるかどうかを調べます。その場合は、データソースの接続プロパティを変更して、接続がソース データをデータベースの文字セットに変換するようにします。

于 2012-10-17T09:01:01.467 に答える