ホームページ > データベース > mysql チュートリアル > PHP 5.3.0 を使用してリモート MySQL データベースに接続できないのはなぜですか?

PHP 5.3.0 を使用してリモート MySQL データベースに接続できないのはなぜですか?

Susan Sarandon
リリース: 2024-11-02 17:53:03
オリジナル
374 人が閲覧しました

Why Can't I Connect to My Remote MySQL Database With PHP 5.3.0?

MySQL PHP の非互換性: 謎のエラーの解決

PHP 5.3.0 経由でリモート MySQL データベースに接続すると、ユーザーは謎のエラーに遭遇する可能性がありますエラーが発生し、接続が失敗します。警告メッセージは通常、OK パケットの予想される長さの不一致と古い認証メカニズムを示しています。

調査の結果、根本的な問題は MySQL アカウントのパスワードの長さに起因することが判明しました。パスワードの長さが 16 文字の場合は、PHP 5.3.0 で使用される mysqlnd ドライバーと互換性のない古いパスワード ハッシュである可能性があります。

この問題を解決するには、次のコマンドを使用して、影響を受ける MySQL アカウントのパスワードをリセットします。新しいもの。これは、次の SQL ステートメントを実行することで実行できます:

SET PASSWORD FOR 'username'@'hostmask' = PASSWORD('thepassword')
ログイン後にコピー

潜在的な代替手段として、MySQL サーバーがデフォルトで古いパスワードを使用または作成するように構成されているかどうかを確認します。これは、サーバー設定を調べることで確認できます。さらに、問題のあるサーバーで次のクエリを実行すると、さらに詳しい情報が得られます:

SELECT
  Length(`Password`),
  Substring(`Password`, 1, 1)
FROM
  `mysql`.`user`
WHERE
  `user`='username'
ログイン後にコピー

「username」を、mysql_connect() で使用されている実際のアカウント名に置き換えます。返された値はパスワードの長さと最初の文字を示し、エラーの根本原因に関する詳細情報が提供されます。

以上がPHP 5.3.0 を使用してリモート MySQL データベースに接続できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート