MySQL PHP の非互換性: 接続エラーと解決策について
接続時に「OK パケットが予想より 6 バイト短い」エラーが発生するPHP バージョン 5.3.0 を使用するリモート MySQL データベースでは、不可解な問題が発生する可能性があります。この問題を解決するには、根本的な原因を理解し、適切な解決策を適用することが重要です。
このエラーは、ローカル PHP バージョンとリモート MySQL サーバー間の非互換性を示しています。 PHP バージョン 5.3.0 以降では、MySQL アカウントのパスワードが新しい MySQL 認証プラグインを使用してハッシュされている必要があります。ただし、5.0.22 などの古い MySQL バージョンでは、16 文字のパスワードを使用した古い認証方法が依然として使用されている可能性があります。 PHP 5.3.0 が MySQL サーバーからの応答を正しく解釈できないため、この不一致によりエラーが発生します。
この問題に対処するには、2 つの解決策が考えられます:
アカウントが古い 16 文字のパスワードを使用しているかどうかを確認するには、次のクエリを実行します。
SELECT Length(`Password`), Substring(`Password`, 1, 1) FROM `mysql`.`user` WHERE `user`='username'
問題のある 5.0.22 サーバーで、「ユーザー名」を問題のアカウントに置き換えます。結果がパスワードの長さ 16 で、最初の文字が 16 進数字 (0 ~ 9 または A ~ F) である場合は、古いパスワードであることを示しています。
根本的な原因を理解し、適切な解決策を適用することで、次のことが可能になります。 MySQL PHP の非互換性を解決し、リモート データベースへの正常な接続を確立します。
以上がPHP 5.3.0 を使用してリモート MySQL データベースに接続すると、「OK パケットが予想より 6 バイト短い」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。