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 サーバーで、'username' を問題のアカウントに置き換えます。結果がパスワードの長さ 16 で、最初の文字が 16 進数 (0 ~ 9 または A ~ F) である場合は、古いパスワードであることを示しています。
根本的な原因を理解し、適切な解決策を適用することで、次のことが可能になります。 MySQL PHP の非互換性を解決し、リモート データベースへの接続を正常に確立します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3