web-dev-qa-db-ja.com

php mysqlエラー-#1273-#1273-不明な照合: 'utf8mb4_general_ci'

PhpMyAdmin v4.1.5英語のみをインストールしました

2台のサーバーにアクセスするように設定しました-PC上のローカルサーバーとサーバー上のリモートサーバー

ローカルPCにはすべて問題ありませんが、リモートサーバーにログインするとメッセージが表示されます

エラー

MySQLは言った:

#1273-不明な照合: 'utf8mb4_general_ci'

PhpMyAdminコードを検索すると、DatabaseInterface.class.phpでこれへの参照が1つ見つかります

        if (PMA_MYSQL_INT_VERSION >  50503) {
            $default_charset = 'utf8mb4';
            $default_collation = 'utf8mb4_general_ci';
        } else {
            $default_charset = 'utf8';
            $default_collation = 'utf8_general_ci';
        }

これが何であるかわかりませんが、デフォルトの文字セットと照合順序を誤って設定しているようです

25
Trevor Wood

このソリューションは私のために働いた

1)データベースの「エクスポート」タブをクリックします

2)「カスタム」ラジオボタンをクリックします

3)「フォーマット固有のオプション」というタイトルのセクションに移動し、「データベースシステムまたは古いMySQLサーバーの出力互換性を最大化するためのドロップダウン」をNONEからMYSQL40に変更します。

4)一番下までスクロールし、「GO」をクリックします。

それがワードプレスに関連している場合、 詳細 なぜ起こっているのか。

64
shaunsantacruz

時間の初めからブラウザのCookieを削除することにより、この問題を修正できます。私はこれを試しましたが、私にとってはうまく機能しています。

Cookieのみを削除するには:

  1. ctrl + shift + deleteを押したままにする
  2. もちろんCookieを除くすべてのチェックボックスを削除する
  3. 上部のドロップダウンを使用して、「時間の初めから」を選択します
  4. 閲覧履歴の消去をクリックします
27

これを修正するには2つの手順があります。

最初にphpMyAdmin/libraries/DatabaseInterface.class.phpを編集します

変化する:

    if (PMA_MYSQL_INT_VERSION >  50503) {
        $default_charset = 'utf8mb4';
        $default_collation = 'utf8mb4_general_ci';
    } else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    }

に:

    //if (PMA_MYSQL_INT_VERSION >  50503) {
    //    $default_charset = 'utf8mb4';
    //    $default_collation = 'utf8mb4_general_ci';
    //} else {
        $default_charset = 'utf8';
        $default_collation = 'utf8_general_ci';
    //}

次に、このcookieをブラウザ「pma_collat​​ion_connection」から削除します。
またはすべてのCookieを削除します。

次に、phpMyAdminを再起動します。

(phpMyAdminでconfig.inc.phpでサーバーごとに文字セットと照合順序を設定できるといいでしょう)

10
ggedde

エクスポートするときは、MYSQL40に設定された互換性システムを使用します。私のために働いた。

4
Vescanarius

私は昨日、その人がクッキーをクリアしたときに問題が修正されたと読んでいました。私はそれを試してみましたが、私にはうまくいきませんでした。

DatabaseInterface.class.phpの次のセクションを確認し、

        define(
            'PMA_MYSQL_INT_VERSION',
            PMA_Util::cacheGet('PMA_MYSQL_INT_VERSION', true)
        );

どういうわけかキャッシュが問題だと思いました。そのため、startおよびstopを実行する代わりに、サービスを再起動していたことを思い出しました。

# restart the service
systemd restart php-fpm

# start and stop the service
systemd stop php-fpm
systemd start php-fpm

stopに続いてstartを実行すると、問題が修正されました。

3
dknight

MySQLサーバーのバージョンは5.5.3以降ですか?

Utf8mb4、utf16、およびutf32文字セットは、MySQL 5.5.3で追加されました。

http://dev.mysql.com/doc/refman/5.5/en/charset-unicode-sets.html

0
Tan Hong Tat