#1273 –照合順序が不明: 'utf8mb4_unicode_520_ci'


157

私のローカルWAMPサーバーにWordPress Webサイトがあります。しかし、そのデータベースをライブサーバーにアップロードすると、エラーが発生します

#1273  Unknown collation: utf8mb4_unicode_520_ci

何か助けていただければ幸いです!


37
sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' file.sql
Nabil Kadimi、2017

4
以下の検索および置換ソリューションの海では、@ SherylHohmanの回答を最初にチェックアウトすることを忘れないでください。サーバーがこの照合をサポートするように、mariadb / mysql 5.6にアップグレードしてください。
squarecandy、2018年


ここにもクイックガイドがあり(wpza.net/unknown-collat​​ion-utf8mb4_unicode_520_ci)、すべてを完了したことを確認するために実行する必要がある3つの手順がすべて説明されています。
WPZA

このソリューションをここで#1273-不明な照合順序を確認してください: 'utf8mb4_0900_ai_ci'freakyjolly.com/
Code Spy

回答:


217

あなたは見つけることによってこれを解決することができます

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;

あなたの.sqlファイルに入れて、それを

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;

28
utf8mb4を保持しているSabba(stackoverflow.com/a/44122258/168309)の回答をお勧めします
Amir

5
@Sabba Keynejadの以下の解決策はmb4を保持するため、私の意見ではより優れています。最初に試してみてください。
Maor Barazany 2017

注、SQLファイルの複数の場所でこれを置き換える必要がありました。また、以下でstackoverflow.com/a/44122258/1436129を実行しなければならない場所もありました。
aubreypwd 2018年

実際には、この回答は機能しましたが、Sabbaによるリンクされた回答は機能しませんでした。おそらく私のMySqlインストールのデフォルトのためです。+1
コーディング終了

それは機能していませんが、今ではエラーを出しています:COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'utf8mb4' 、私は置き換えましたutf8mb4_unicode_520_ciutf8mb4_unicode_ci、Sabbaの回答に従って機能しています。
Haritsinh Gohil

286

ローカルサーバーとライブサーバーが異なるバージョンのMySQLを実行しているため、このエラーが発生したと思います。これを解決するには:

  1. テキストエディターでSQLファイルを開きます
  2. すべてutf8mb4_unicode_520_ciを検索して置き換えるutf8mb4_unicode_ci
  3. 保存して新しいmySql dbにアップロードする

それが役に立てば幸いここに画像の説明を入力してください


4
地獄!!! 広くていることが報告されているutf8mb4_unicode_520_ci持っている多くのより良いUTF-8のサポートをutf8mb4_unicode_ci!ソース:mysql.rjweb.org/doc.php/charcoll#best_practice with visual clarification with 520_ci is better
John

5
@John、あなたがリンクした記事は実際にはそのコメントを守っていません。彼らの「したがって」は彼らの前提から適切に述べることさえできない。全体的には記事全体の記述が不十分ですが、そこには良い情報があるようです。520照合では、新しいバージョンのUnicode照合アルゴリズム(UCA-バージョン5.2.0)を使用しますが、重みは異なりますが、「UTF-8のサポートがはるかに優れている」とは言え、ストレッチよりも優れているようです。
Gremio

標準化団体(Unicode)は通常、新しいバージョン(5.20)を古いバージョン(4.0)よりも「良い」ものにするとします。
リックジェームズ

これが最良の答えです。
Niby 2018年

すべての「utf8mb4_unicode_520_ci」の発生を置き換えるため、このソリューションをお勧めします。一方、savani sandipの回答にはいくつかの問題があります。
Rakesh

49

私の場合、
新しいサーバーが実行されていてMySQL 5.5
古いサーバーが実行されてMySQL 5.6いることがわかりました。古いサーバーからエクスポートし
.sqlファイルをインポートしようとすると、このエラーが発生しました。

MySQL 5.5はをサポートしていませんutf8mb4_unicode_520_ciが、
MySQL 5.6はサポートしています。

MySQL 5.6新しいサーバーでに更新すると、照合順序のエラーが解決しました!

あなたは、MySQL 5.5を保持したい場合は、次のことができます
-あなたのエクスポートのコピーを作成し.sql、ファイルを
-のインスタンスを置き換えるutf8mb4unicode520_ciutf8mb4_unicode_520_ci
...とutf8mb4_unicode_ci
-あなたの更新インポート.sqlファイルを。


2
これは、サーバーを完全に制御できる場合に最適な方法です。新しいサーバーをアップグレードして、古いサーバーと一致させます。新しいサーバーの場所をアップグレードするためのアクセス権がない場合、find-replaceメソッドはおそらく問題ありませんが、代わりにこのアップグレードを実行できる場合は、必要があります。
squarecandy、2018年

1
5.6は520が追加されたときです。
リックジェームズ

これが正解です。他のソリューションのほとんどは、ハックに似ています。ありがとう@SherylHohman
sawyerrken

30

テキストエディターでsqlファイルを開きます。

1.検索: utf8mb4_unicode_ci 置換: utf8_general_ci (すべて置換)

2.検索: utf8mb4_unicode_520_ci 置換: utf8_general_ci (すべて置換)

3.検索: utf8mb4 置換: utf8 (すべて置換)

保存してアップロード!


私はこれに対するあなたの解決策を見つけて本当にうれしいです、私は何日もこの#1273エラーを受け取っています、そして私はこれに対する解決策を見つけることができませんでした
flying-dev

命の恩人。ありがとう!
robbclarke


14

簡単に交換

sed -i 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql

2
macOSの場合:sed -i '' 's/utf8mb4_unicode_520_ci/utf8mb4_unicode_ci/g' your_sql_file.sql
Osvaldas



3

パーティーに遅れますが、これがWORDPRESSインストールで発生する場合:

#1273 - Unknown collation: 'utf8mb4_unicode_520_ci

phpmyadminのexport method> Format-specific options(カスタムエクスポート)

に設定 : MYSQL40

ここでインポートしようとすると、別のエラーメッセージが表示される場合があります。

1064 - You have an error in your SQL syntax; .....

これは、TYPE同義であった古いオプションがENGINEあった MySQL 5.5で削除されたためです。

あなたの .sqlファイルをすべてのインスタンスを検索して置き換えます

からTYPE=までENGINE=

これでインポートはスムーズに進みます。


3

照合エラー#1273の取得-不明な照合:「utf8mb4_unicode_520_ci」は、エクスポート元のMySQLバージョンとインポート先のMySQLサーバーの違いが原因で発生します。基本的に、新しいバージョンのWordpressライブラリは、サイトで実行されているSQLのバージョンを確認します。MySQLバージョン5.6以降を使用している場合、「utf8mb4_unicode_520_ci」と呼ばれる新しく改善されたUnicode照合アルゴリズム(UCA)の使用を想定しています。これは、WordPressサイトを新しい5.6バージョンのMySQLから5.6より前の古いバージョンのMySQLに移行する場合を除き、すばらしいものです。

これを解決するには、SQLエクスポートファイルを編集して検索と置換を行い、「utf8mb4_unicode_520_ci」のすべてのインスタンスを「utf8mb4_unicode_ci」に変更する必要があります。または、PHPMyAdminがある場合は、以下の手順に従ってください。

  1. データベースの[エクスポート]タブをクリックします。
  2. [カスタム]ラジオボタンをクリックします。
  3. 「フォーマット固有のオプション」というタイトルのセクションに移動し、データベースシステムまたは古いMySQLサーバーのドロップダウンを変更して、出力の互換性を最大にします。NONEからMYSQL40に。
  4. 一番下までスクロールして[GO]をクリックします。

1

私の場合、次のようにutf8_general_cised に置き換えます。

sed -i 's/utf8_0900_ai_ci/utf8_general_ci/g' MY_DB.sql 
sed -i 's/utf8mb4_unicode_520_ci/utf8_general_ci/g' MY_DB.sql 

その後は問題なくインポートできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.