web-dev-qa-db-ja.com

「サーバーはクライアントに不明な文字セット(255)を送信しました」MySQL文字セットをutf8 w / o /etc/my.cnfに設定しますか?

PhpMyAdminからMySQLデータベースに接続しようとしています。しかし、ユーザー名とパスワードを入力すると、次の2つのエラーメッセージが表示されます。

mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers

mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers

MySQL 8.0.11とphpMyAdmin 4.8.2を使用しています

同様の問題に対するこの答えを見つけました: PDO :: __ construct():サーバーはクライアントに不明な文字セット(255)を送信しました。開発者に報告してください

重要な部分は次のとおりです。「MySQL 8はデフォルトの文字セットをutfmb4に変更しました。しかし、一部のクライアントはこの文字セットを認識しません。したがって、サーバーがこのエラーがスローされます。」

解決策は、/ etc/my.cnfに数行を追加してデフォルトの文字セットをutf8に戻し、mysqldを再起動することです。

私の問題は、/ etc/my.cnfがファイルのどこにも存在しないため、デフォルトの文字セットを変更できないことです。私が調べた他の場所はすべて、/ my.cnfを参照するか、古いバージョンを参照します。

それでは、MySQL 8の/etc/my.cnfなしでデフォルトの文字セットをutf8に変更するにはどうすればよいですか?

5
X Mac

答えを明確にするには:

  1. my.cnfフォルダーに/etc/というファイルを作成します。

  2. 次のテキストを/etc/my.cnfに追加します。

    [クライアント]
    default-character-set = utf8

    [mysql]
    default-character-set = utf8

    [mysqld]
    collat​​ion-server = utf8_unicode_ci
    character-set-server = utf8
    default_authentication_plugin = mysql_native_password

最後に、mysqlを再起動してください。それでも問題が解決しない場合は、PHP以降のバージョンにアップグレードしてください。

5
Oli C

MySQL 8を再インストールし、インストール中に認証の2番目の方法「レガシー認証方法を使用(MySQL 5.x互換性を保持)」を選択します。

0
npsingh