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

DDD
Libérer: 2024-11-05 05:48:02
original
488 Les gens l'ont consulté

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'
Copier après la connexion

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
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!