ホームページ > データベース > mysql チュートリアル > MySQL にリモート接続すると「不明な認証方法」エラーが発生するのはなぜですか?

MySQL にリモート接続すると「不明な認証方法」エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-06 15:48:02
オリジナル
583 人が閲覧しました

Why Am I Getting an

リモート MySQL 接続中の不明な認証方法

ローカル マシンから MySQL サーバーにリモート接続しようとすると、「不明な認証方法」 」エラーが発生する可能性があります。このエラーは通常、ローカルとリモートの MySQL サーバーで使用されるパスワード ハッシュ形式間の非互換性を示します。

原因:

PHP 5.3 以降のバージョンでは、mysqlnd ライブラリが使用されます。そのため、MySQL 4.1 の 41 バイトのパスワード形式を使用する必要があります。ただし、リモート MySQL サーバーが古い 16 バイトのパスワード形式を使用している場合、接続は「不明な認証方法」エラーで失敗します。

解決策:

この問題を解決するには、次の手順を実行します。

  • リモート MySQL サーバーのパスワードを更新します。 更新手順については、https://stackoverflow.com/a/1340538/187954 を参照してください。パスワードを新しい 41 バイト形式に変更します。
  • 別の認証方法を使用します: SSL 証明書の使用など、より新しい認証方法の利用を検討してください。

コード サンプル:

次のコード スニペットは、認証エラーの処理方法を示しています。

try {
    $online_dbh = new PDO($dsn, 'myusername', 'mypassword', $options);
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Congratulations!";
} catch (PDOException $e) {
    if ($e->getCode() === 2054) {
        // Handle the "unknown authentication method" error
    } else {
        // Handle other errors
    }
}
ログイン後にコピー

これらの解決策のいずれかを実装すると、接続できるようになります。 「不明な認証方法」エラーが発生することなく、リモートから MySQL サーバーに接続できます。

以上がMySQL にリモート接続すると「不明な認証方法」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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