Je ne sais pas vraiment pourquoi cela est devenu un problème sur mon installation XAMPP, puisque j'exécute également PHP 5.3.x sur la boîte locale du serveur et que je ne rencontrais pas ces problèmes là-bas. Cependant, cela a à voir avec mon serveur mySQL fonctionnant en mode de cryptage "ancien mot de passe". Les nouvelles versions de PHP n'autorisent pas ce type de connexions, vous devez donc mettre à jour votre serveur mySQL pour utiliser le nouveau cryptage de mot de passe. Voici les étapes, en supposant que vous contrôlez le serveur mySQL. Si vous ne le faites pas, cela ne relève pas de mes connaissances.
-
localisez le fichier de configuration du serveur mysql appelé
my.cnf
. J'ai trouvé le mien sur/etc/my.cnf
. Vous pouvez le modifier avecsudo nano /etc/my.cnf
-
Recherchez une ligne indiquant
old_passwords=1
et changez-le enold_passwords=0
. Vous avez maintenant dit au serveur que la prochaine fois qu'il sera exécuté, et qu'il lui sera demandé de crypter un mot de passe à l'aide de la commande PASSWORD(), il utilisera le nouveau cryptage à 41 caractères plutôt que le cryptage de style "ancien" à 16 caractères -
Vous devez maintenant redémarrer votre serveur/service mysql. YMMV, mais sur Fedora, cela a été facilement fait avec
sudo service mysqld restart
. Vérifiez les instructions de votre système d'exploitation pour redémarrer le démon ou le service mysql -
Maintenant, nous devons réellement modifier notre
user
table dans mysql. Ouvrez donc un shell interactif vers mysql (sur le serveur, vous pouvez tapermysql -uYourRootUsername -pYourRootPassword
) -
Passez au
mysql
base de données. C'est la base de données qui contient toutes les bonnes choses pour le fonctionnement et l'authentification du serveur. Vous devez avoir un accès root pour travailler avec cette base de données. Si vous obtenez un "accès refusé", vous êtes SOL. Désolé.use mysql;
basculera vers cette base de données -
Maintenant, nous voulons mettre à jour l'utilisateur qui vous causait du chagrin. En fin de compte, vous souhaiterez probablement mettre à jour tous vos utilisateurs, mais pour l'instant, nous nous concentrons uniquement sur l'utilisateur qui a lancé l'erreur.
update user set Password=password('YOUR_PASSWORD') where User='YOUR_USERNAME';
-
Maintenant, il vous suffit de dire à mysql d'utiliser le nouveau mot de passe pour l'authentification lorsque cet utilisateur tente de se connecter.
flush privileges;
.
Vous devriez être prêt à partir !