1. ホーム
  2. Database

mysql import error [Err] 1273 - Unknown collation: 'utf8mb4_0900_ai_ci'.

2022-02-21 18:43:58

で問題が発生します。

ローカルmysqlからサーバーへのバックアップのエクスポート

mysql インポートエラーが報告されました。

[Err] 1273 - 不明な照合順序: 'utf8mb4_0900_ai_ci'.

を挫き、丸一日の午後を百度で、解決することは何もありません、独自の包括的なn + 1の記事の部分を感じるために

チェックしたデータベースの文字セットは100回、データベースの両側を比較すると、同じです(最初に異なるもnavicatを通じて、ワークベンチは、同じに変更し、次のコマンドを介して文字セットを変更することである文字セットを見つけることができます)。

character%」のような変数を表示します。


set character_set_database=utf8;
set character_set_server=utf8;


<イグ

しかし、まだそのエラーを報告し続け、utf8mb4_0900_ai_ciというものがどこにあるのかがわかりません。

すると、テーブルごとにソートルールと文字セットがあることがわかりました(エクスポートテーブルもこれに従います)。

このステートメントにより、どのテーブルがどの文字セットを使用しているかを直接確認することができます。

select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where [table_collation = 'utf8mb4_0900_ai_ci'] [テーブルコレーション]. 
とし、table_schema = ' db.schema ';

このステートメントによって、奇妙な utf8mb4_0900_ai_ci ソートされたテーブルが存在することがようやく明らかになりました。

ローカルのmysqlのバージョンが8で、サーバーのバージョンが低いため、非互換性が発生しているはずです。

select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where table_collation = 'utf8mb4_0900_ai_ci' 
and table_schema = 'schema';

解決策

1 まず、不正な文字セットがどのテーブルに存在するかを確認します。

select TABLE_SCHEMA,TABLE_NAME,TABLE_COLLATION from information_schema.tables where table_collation = 'utf8mb4_0900_ai_ci' (情報スキーマのテーブルからテーブル名と照合を選択する。 
で、table_schema = 'jh' です。

2 修正不可能であることが判明し、mysqlのコマンドライン+ルート権限を使用しても、更新information_schema.tablesに失敗しました。 
set table_collation = 'utf8_general_ci' where table_collation = 'utf8mb4_0900_ai_ci' and table_schema = 'jh'です。

3 無鉄砲に.sqlファイルをエクスポートし、バッチ処理で

文字: utf8mb4_0900_ai_ci 置換後: utf8_general_ci 

mysql8のmy.iniはどこにあるのか、ヒントを挿入してください。

C:♪ProgramData ♪MySQL ♪MySQL Server 8.0