ホームページ >バックエンド開発 >PHPチュートリアル >MySQL 8 からの「不明な文字セット (255)」により PHP PDO 接続が失敗するのはなぜですか?
PDO エラー: MySQL サーバーからの不明な文字セット (255)
MySQL データベースに接続するときに、開発者は次のエラーが発生する場合があります: PDO::__construct(): サーバーはクライアントに不明な文字セット (255) を送信しました。開発者に報告してください。」これは、Docker コンテナと Symfony アプリケーションが関係する状況で発生する可能性があります。
原因:
MySQL バージョン 8 では、デフォルトの文字セットが utf8mb4 に変更される変更が導入されました。ただし、特定の PHP バージョンなど、一部のクライアントはこの文字セットを認識しません。サーバーがデフォルトの文字セットをクライアントに伝達するとき、クライアントの理解不足によりエラーが発生します。
解決策:
理想的な解決策は、クライアントを次のようにアップグレードすることです。 utf8mb4をサポートするもの。互換性を確保するために、次に示すように、サーバーの文字セットを utf8 に調整することができます。
ステップ 1: MySQL Server 構成を編集する
次の行を次の行に追加します。 /etc/my.cnf を実行し、MySQL を再起動します:
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8
ステップ 2: MySQL を再起動します
MySQL を再起動して変更を適用します:
service mysql restart
この変更により、utf8mb4 をサポートしていない古いクライアントとの互換性が確保されます。
以上がMySQL 8 からの「不明な文字セット (255)」により PHP PDO 接続が失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。