Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas me connecter à MySQL 4.1 avec l'authentification héritée ?
Impossible d'établir une connexion à MySQL 4.1 avec l'authentification héritée
Lorsque vous essayez de vous connecter à une base de données MySQL hébergée sur bluesql.net, vous pouvez rencontrez une erreur indiquant une incapacité à établir une connexion à l'aide du mécanisme d'authentification obsolète utilisé dans les versions MySQL antérieures à 4.1. Ce problème provient de la mise en œuvre de méthodes d'authentification plus récentes dans les versions ultérieures de MySQL, tandis que des systèmes de mots de passe plus anciens peuvent encore persister, ce qui pourrait entraver la compatibilité avec certaines applications.
Dans votre cas, vous utilisez PHP 5.3 et l'extension mySQLi ( new mysqli(...)) pour vous connecter à la base de données. Pour résoudre ce problème sans avoir à rétrograder votre version de PHP, vous devez envisager les étapes suivantes :
Vérification de l'utilisation de l'ancien schéma de mot de passe
Déterminez si le serveur MySQL que vous essayez auquel accéder est configuré pour utiliser l'ancien schéma de mot de passe en exécutant la requête SQL suivante :
SHOW VARIABLES LIKE 'old_passwords'
Si le résultat de la requête affiche "old_passwords,Off", cela indique que le serveur est configuré pour utiliser l'ancien schéma de mot de passe. schéma de mot de passe.
Identification des comptes avec d'anciens mots de passe
Examinez la table mysql.user pour identifier les comptes d'utilisateurs qui utilisent encore d'anciens mots de passe. Exécutez la requête suivante :
SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
Les comptes avec d'anciens mots de passe auront une longueur de mot de passe de « 16 », tandis que les comptes avec de nouveaux mots de passe auront une longueur de « 41 ».
Définition de nouveaux mots de passe pour les comptes concernés
Pour chaque compte identifié avec un ancien mot de passe, définissez un nouveau mot de passe à l'aide de la commande suivante :
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword'); FLUSH Privileges;
Remplacez « Utilisateur » et « Hôte " avec les valeurs obtenues à partir de la requête précédente.
Vérification de la mise à jour du mot de passe
Revérifiez la longueur du mot de passe pour le compte mis à jour. Il devrait maintenant afficher « 41 », indiquant que le nouveau schéma de mot de passe est utilisé.
En respectant ces étapes, vous pouvez surmonter avec succès le problème de compatibilité d'authentification et établir une connexion à la base de données MySQL sur bluesql.net. .
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!