Maison > base de données > tutoriel mysql > le corps du texte

Voici quelques options pour un titre d'article, en fonction de votre contenu, formaté sous forme de question : **Général et focus sur le message d'erreur :** * **Comment réparer \'mysqlnd ne peut pas se connecter à MySQL 4.1 en utilisant

Barbara Streisand
Libérer: 2024-10-25 05:28:29
original
467 Les gens l'ont consulté

Here are a few options for an article title, based on your content, formatted as a question:

**General & Focus on Error Message:**

* **How to Fix

Correction d'une erreur de connexion MySQL en raison d'une authentification non sécurisée

Lorsque vous tentez d'établir une connexion à une base de données, vous pouvez rencontrer l'erreur suivante :

Database connection failed: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password').
Copier après la connexion

Ce problème est dû à une incompatibilité entre les versions de PHP et MySQL. MySQL a amélioré ses mesures de sécurité, nécessitant l'utilisation de méthodes d'authentification plus sécurisées.

Résolution :

  1. Mettre à jour la configuration du serveur :

    • Sur votre serveur d'hébergement Web (temple des médias), consultez votre hébergeur pour mettre à jour la version de MySQL vers 5.5.16 ou version ultérieure (faites correspondre la version sur votre machine locale).
  2. Désactiver l'authentification non sécurisée :

    • Localisez le fichier de configuration "my.cnf" (par exemple, "/etc/my.cnf" ou "/opt/lampp/etc/my.cnf").
    • Supprimez ou commentez la ligne "old_passwords = 1".
  3. Redémarrez MySQL :

    • Pour appliquer les modifications, redémarrez le service MySQL.
  4. Réinitialiser les mots de passe :

    • Connectez-vous à la base de données MySQL à l'aide d'un outil d'administration (par exemple, MySQL Workbench ou phpMyAdmin).
    • Exécutez la requête « SELECT user, length(Password) FROM mysql.user ; » pour identifier les utilisateurs avec des mots de passe non sécurisés (hachage de 16 caractères).
    • Mettez à jour le mot de passe de chaque utilisateur avec une authentification non sécurisée à l'aide de la requête "UPDATE mysql.user SET Password = PASSWORD('password') WHERE user = 'username ';".
  5. Flush Privileges :

    • Exécutez la requête "FLUSH PRIVILEGES ;" pour propager les modifications de mot de passe.

Considérations supplémentaires :

  • Si vous utilisez PHP 5.2 ou une version antérieure sur le côté serveur, vous devrez peut-être supprimer l'indicateur "old-passwords" du fichier "my.cnf" pour autoriser les méthodes d'authentification obsolètes.
  • Assurez-vous que le mot de passe de l'utilisateur root MySQL est sécurisé, comme mentionné dans l'erreur. message.

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
Derniers articles par auteur
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!