ホームページ >バックエンド開発 >PHPチュートリアル >MySQL 8 からの「不明な文字セット (255)」により PHP PDO 接続が失敗するのはなぜですか?

MySQL 8 からの「不明な文字セット (255)」により PHP PDO 接続が失敗するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 03:33:08891ブラウズ

Why Does My PHP PDO Connection Fail with

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。