Maison  >  Article  >  développement back-end  >  Que faire si la connexion à la base de données échoue avec PHP

Que faire si la connexion à la base de données échoue avec PHP

藏色散人
藏色散人original
2022-11-19 10:25:534978parcourir

Solution en cas d'échec de connexion à la base de données en utilisant php : 1. Ouvrez le fichier de configuration php.ini, supprimez le point-virgule de commentaire devant "extension=php_mysql.dll", et spécifiez le chemin absolu de "php_mysql.dll" via extension ; 2. Modifier le fichier de configuration mysql my.ini ; 3. Modifier le jeu de caractères du jeu de données.

Que faire si la connexion à la base de données échoue avec PHP

L'environnement d'exploitation de ce tutoriel : système Windows 10, PHP version 8.1, ordinateur Dell G3.

Que dois-je faire si je ne parviens pas à me connecter à la base de données en utilisant php ?

Pips rencontrés lorsque PHP se connecte à mysql (avec des solutions, le test personnel est efficace)

Pips rencontrés lorsque PHP se connecte à mysql

Environnement : win10 + PHP5.48 + Apache2.2 + Mysql8.017

PHP Instance de connexion

<?php     $link = mysql_connect("localhost", "myuser", "mypasswd");
    #myuser: 用户名    #mypasswd: 密码    var_dump($link);
    mysql_close();?>

Pit 1 Appel à la fonction non définie mysql_connect()

Que faire si la connexion à la base de données échoue avec PHP

Cause : la fonction mysql_connect() n'est pas définie et n'est pas activée dans le fichier de configuration php.ini

Méthode de solution :

1.1 Configurez la fonction php.ini

Que faire si la connexion à la base de données échoue avec PHP
1.1.1 Supprimez le point-virgule de commentaire devant extension=php_mysql.dll
1.1.2 Spécifiez le chemin absolu de php_mysql ; .dll via l'extension

1.2 Chemin du fichier de configuration

1.2.1 Copiez le fichier php.ini dans c:windowssystem32

1.3 Redémarrez le service Apache (je ne vous dirai pas comment le redémarrer. Si vous ne le faites pas Je ne le sais pas, alors cet article ne vous aidera pas)

Pit 2 Le serveur a demandé une méthode d'authentification inconnue du client

Que faire si la connexion à la base de données échoue avec PHP

Cause : causée par le mécanisme de verrouillage par mot de passe incohérent de mysql8. x

Après mysql 8.x, caching_sha2_password est le plug-in d'authentification par défaut au lieu du précédent mysql_native_password.

Solution

1.1 Modifier le fichier de configuration my.ini de mysql

Que faire si la connexion à la base de données échoue avec PHP

Vous pouvez voir que la méthode de vérification par défaut est caching_sha2_password, ici elle est modifiée en mysql_native_password

1.2 Afficher correspondant utilisateurs dans le plug-in d'authentification mysql

Que faire si la connexion à la base de données échoue avec PHP

Vous pouvez voir que le plug-in d'authentification de l'utilisateur root a été remplacé par mysql_native_password

Si la méthode d'authentification n'a pas changé, effectuez les opérations suivantes

# 登陆mysqlmysql -uroot -p# 使用mysql数据库use mysql;# 修改身份验证插件ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

坑3  字符集错误 sever sent charset unknowd to the client ,Please report to the decelopers

Que faire si la connexion à la base de données échoue avec PHP

原因: MySQL8更换了默认的服务器字符集,mysql8.x的字符集character-set-server默认是utf8mb4,不再是5.x时代的utf8了

解决方法:

修改mysql的my.ini配置文件,具体修改条目如下:(这里只展示了需要修改的条目,原配置文件内容很多)

[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]collation-server = utf8_unicode_cicharacter-set-server = utf8

切记:任何每一次的修改,都需要重启Apache服务,以及mysql服务!!!

推荐学习:《PHP视频教程

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