Maison  >  Article  >  base de données  >  Pourquoi est-ce que j'obtiens une erreur « Méthode d'authentification inconnue » lors de la connexion à MySQL à distance ?

Pourquoi est-ce que j'obtiens une erreur « Méthode d'authentification inconnue » lors de la connexion à MySQL à distance ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-06 15:48:02577parcourir

Why Am I Getting an

Méthode d'authentification inconnue lors d'une connexion MySQL à distance

Lors d'une tentative de connexion à distance à un serveur MySQL à partir d'une machine locale, une « méthode d'authentification inconnue "Une erreur peut se produire. Cette erreur indique généralement une incompatibilité entre les formats de hachage de mot de passe utilisés par les serveurs MySQL locaux et distants.

Cause :

PHP 5.3 et les versions supérieures utilisent la bibliothèque mysqlnd, ce qui nécessite l'utilisation du format de mot de passe de 41 octets de MySQL 4.1. Cependant, si le serveur MySQL distant utilise l'ancien format de mot de passe de 16 octets, la connexion échouera avec l'erreur « Méthode d'authentification inconnue ».

Solution :

Pour résoudre ce problème, vous pouvez :

  • Mettre à jour le mot de passe sur le serveur MySQL distant : Reportez-vous à https://stackoverflow.com/a/1340538/187954 pour obtenir des instructions sur la mise à jour le mot de passe au format plus récent de 41 octets.
  • Utilisez une méthode d'authentification différente : Envisagez d'utiliser une méthode d'authentification plus moderne, telle que l'utilisation de certificats SSL.

Exemple de code :

L'extrait de code suivant montre comment gérer l'erreur d'authentification :

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
    }
}

En implémentant l'une de ces solutions, vous devriez pouvoir vous connecter à distance sur le serveur MySQL sans rencontrer l'erreur "Méthode d'authentification inconnue".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn