Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?
Lösung für den Fehler, mit PHP eine Verbindung zur Datenbank herzustellen: 1. Öffnen Sie die Konfigurationsdatei php.ini, entfernen Sie das Kommentarsemikolon vor „extension=php_mysql.dll“ und geben Sie den absoluten Pfad von „php_mysql.dll“ an Erweiterung; 2. Ändern Sie die MySQL-Konfigurationsdatei my.ini. 3. Ändern Sie den Zeichensatz des Datensatzes.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 8.1, Dell G3-Computer.
Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?
Pips angetroffen, wenn PHP eine Verbindung zu MySQL herstellt (mit Lösungen ist ein persönlicher Test wirksam)
Umgebung: Win10 + PHP5.48 + Apache2.2 + Mysql8.017
PHP Verbindungsinstanz
<?php $link = mysql_connect("localhost", "myuser", "mypasswd");
#myuser: 用户名 #mypasswd: 密码 var_dump($link);
mysql_close();?>
Pit 1 Aufruf der undefinierten Funktion mysql_connect()
1.1.1 Entfernen Sie das Kommentarsemikolon vor extension=php_mysql.dll.
1.1.2 Geben Sie den absoluten Pfad von php_mysql an .dll durch Erweiterung
1.2.1 Kopieren Sie die php.ini-Datei nach c:windowssystem32
Nach MySQL 8.x ist caching_sha2_password das Standard-Authentifizierungs-Plug-in anstelle des vorherigen mysql_native_password.
Sie können sehen, dass die Standardüberprüfungsmethode caching_sha2_password ist, hier wird sie in mysql_native_password
geändertSie können sehen, dass das Authentifizierungs-Plug-in des Root-Benutzers in mysql_native_password geändert wurde
Wenn sich die Authentifizierungsmethode nicht geändert hat, führen Sie die folgenden Vorgänge aus
# 登陆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
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视频教程》
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!