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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-03 19:27:29206parcourir

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

Impossible de se connecter à MySQL 4.1 à l'aide de l'authentification héritée

Lorsque vous essayez de vous connecter à une base de données MySQL, vous pouvez rencontrer le message d'erreur « Connecter Erreur (2000) mysqlnd ne peut pas se connecter à MySQL 4.1 en utilisant l'ancienne authentification." Ce problème provient d'un système de mot de passe obsolète utilisé par les versions MySQL antérieures à 4.1. Les itérations plus récentes de MySQL offrent la possibilité d'utiliser ces mots de passe obsolètes, connus pour potentiellement conduire à ce problème de connectivité.

Dépannage des problèmes de connexion à la base de données MySQL

Si votre base de données MySQL est géré par un fournisseur tiers, vous n'avez peut-être pas de contrôle sur sa configuration. Cependant, si vous disposez d'un accès administratif à la base de données :

1. Confirmer les paramètres du schéma de mot de passe du serveur :

Exécuter la requête MySQL :

SHOW VARIABLES LIKE 'old_passwords'
  • Si le résultat est "old_passwords,Off", le serveur n'est pas configuré pour utiliser le schéma de mot de passe hérité par défaut.
  • Si le résultat est "old_passwords,On", des entrées de mot de passe héritées dans la table des utilisateurs peuvent toujours exister, déclenchant l'utilisation de la méthode d'authentification obsolète.

2. Vérifiez la longueur du mot de passe dans le tableau « mysql.user » :

Exécutez la requête :

SELECT `User`, `Host`, Length(`Password`) FROM mysql.user
  • Les anciens mots de passe ont une longueur de 16 caractères.
  • Les mots de passe modernes ont une longueur de 41 caractères.

3. Mettre à jour le mot de passe et la configuration de l'utilisateur :

  • Implémentez une réinitialisation du mot de passe pour le compte concerné à l'aide de la requête :
SET PASSWORD FOR 'User'@'Host'=PASSWORD('yourpassword');
  • Actualiser les privilèges de la base de données :
FLUSH Privileges;
  • Vérifiez que la longueur du mot de passe dans la table 'mysql.user' est passée à 41.

4. Reportez-vous à la documentation MySQL :

Pour plus d'informations sur la résolution de ce problème, reportez-vous à la documentation MySQL suivante :

  • [Ancien client](http://dev.mysql .com/doc/refman/5.0/en/old-client.html)
  • [Hashing de mot de passe](http://dev.mysql.com/doc/refman/5.0/en/password-hashing. html)
  • [Définir le mot de passe](http://dev.mysql.com/doc/refman/5.0/en/set-password.html)

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