La connexion MySQL à distance échoue avec une « méthode d'authentification inconnue »
Lors de la tentative d'établissement d'une connexion à distance à un serveur MySQL, le redoutable « inconnu Une erreur "méthode d'authentification" peut être rencontrée. Ce problème survient lorsque le mécanisme d'authentification du serveur est incompatible avec celui du client.
Dans ce cas particulier, l'erreur s'est produite lors de la connexion depuis une machine locale (MySQL version 5.5.27) à un serveur distant (MySQL version 5.5 .23). La cause sous-jacente était l'incompatibilité entre les méthodes de hachage de mot de passe utilisées par les deux serveurs.
Résolution de l'incompatibilité
La solution à ce problème consiste à mettre à jour le hachage de mot de passe sur le serveur pour correspondre à la méthode utilisée par le client. Dans ce cas, cela implique la mise à jour vers le nouveau format de mot de passe de 41 octets utilisé par MySQL 4.1 et versions ultérieures.
Mise à jour du hachage du mot de passe
ALTER USER 'yourusername'@'%' IDENTIFIED BY 'new_password';
où 'yourusername' est votre nom d'utilisateur MySQL et 'new_password' est votre nouveau mot de passe.
FLUSH PRIVILEGES;
Redémarrez le serveur MySQL pour vous assurer que les modifications prennent en compte effet.
Modification du code client
Une fois le mot de passe mis à jour, modifiez votre code de connexion comme suit :
$dsn = 'mysql:host=184.173.209.193;dbname=my_db_name;charset=utf8'; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8', PDO::MYSQL_ATTR_DIRECT_QUERY => true ); try { $online_dbh = new PDO($dsn, 'myusername', 'new_password', $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Congratulations!"; } catch (PDOException $e) { echo $e->getMessage(); }
Paramétrage du PDO : MYSQL_ATTR_DIRECT_QUERY sur true force PDO à utiliser la méthode de connexion la plus sécurisée, résolvant ainsi le problème d'authentification.
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!