Maison >développement back-end >tutoriel php >Pourquoi ne puis-je pas me connecter à MySQL 4.1 avec l'authentification héritée ?

Pourquoi ne puis-je pas me connecter à MySQL 4.1 avec l'authentification héritée ?

DDD
DDDoriginal
2024-11-05 05:48:02541parcourir

Why Can't I Connect to MySQL 4.1  with Legacy Authentication?

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!

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