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に変更するにはどうすればよいですか?
答えを明確にするには:
my.cnf
フォルダーに/etc/
というファイルを作成します。
次のテキストを/etc/my.cnf
に追加します。
[クライアント]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin = mysql_native_password
最後に、mysqlを再起動してください。それでも問題が解決しない場合は、PHP以降のバージョンにアップグレードしてください。
MySQL 8を再インストールし、インストール中に認証の2番目の方法「レガシー認証方法を使用(MySQL 5.x互換性を保持)」を選択します。