Connectez-vous à MySQL 4.1 avec l'ancienne authentification à l'aide de MySQLi
Lorsque vous essayez d'établir une connexion à une base de données MySQL avec MySQLi, vous pouvez rencontrer le problème erreur suivante :
Connect Error (2000) mysqlnd cannot connect to MySQL 4.1+ using old authentication
Cette erreur survient en raison de l'utilisation d'un schéma de hachage de mot de passe obsolète dans les versions MySQL antérieures à 4.1. Bien que les versions plus récentes permettent l'utilisation d'anciens mots de passe, cela peut conduire au problème susmentionné.
Pour résoudre ce problème, suivez ces étapes :
Vérifiez Paramètres du serveur :
Exécutez la requête SQL SHOW VARIABLES LIKE 'old_passwords' ; pour déterminer si le serveur utilise par défaut l'ancien schéma de mot de passe (old_passwords,Off).
Identifiez les comptes avec d'anciens mots de passe :
Utilisez la requête SELECT User`, `Host`, length(`Password`) FROM mysql.user` pour répertorier les comptes d'utilisateurs et la longueur de leurs mots de passe. Les comptes avec une longueur de mot de passe de 16 utilisent l'ancien schéma, tandis qu'une longueur de 41 indique de nouveaux mots de passe.
Modifier le mot de passe pour les anciens comptes :
Mettez à jour les mots de passe des comptes avec d'anciens mots de passe à l'aide de l'instruction SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');. N'oubliez pas de remplacer « Utilisateur » et « Hôte » par les valeurs appropriées de votre requête.
Flush Privileges :
Exécutez FLUSH PRIVILEGES ; pour appliquer les modifications.
Vérifier la longueur du mot de passe :
Réexécutez la requête de l'étape 2 pour confirmer que la longueur du mot de passe est désormais de 41. .
En mettant en œuvre ces étapes, vous devriez pouvoir vous connecter avec succès à la base de données MySQL à l'aide de MySQLi, même si elle utilise l'ancien système de mot de passe.
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!