Heim >Backend-Entwicklung >PHP-Problem >Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

藏色散人
藏色散人Original
2022-11-19 10:25:535056Durchsuche

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.

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

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)

Pips angetroffen, wenn PHP eine Verbindung zu MySQL herstellt

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()

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

Ursache: Die Funktion mysql_connect() ist nicht definiert und in der php.ini-Konfigurationsdatei nicht aktiviert

Lösungsmethode:

1.1 Konfigurieren Sie die php.ini-Funktion

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?
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 Konfigurationsdateipfad

1.2.1 Kopieren Sie die php.ini-Datei nach c:windowssystem32

1.3 Starten Sie den Apache-Dienst neu (ich werde Ihnen nicht sagen, wie Sie ihn neu starten. Wenn Sie dies nicht tun Wenn Sie das nicht wissen, wird Ihnen dieser Artikel nicht weiterhelfen)

Pit 2 Der Server hat eine Authentifizierungsmethode angefordert, die dem Client unbekannt ist

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

Ursache: verursacht durch den inkonsistenten Passwortsperrmechanismus von MySQL8. x

Nach MySQL 8.x ist caching_sha2_password das Standard-Authentifizierungs-Plug-in anstelle des vorherigen mysql_native_password.

Lösung

1.1 Ändern Sie die my.ini-Konfigurationsdatei von MySQL

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

Sie können sehen, dass die Standardüberprüfungsmethode caching_sha2_password ist, hier wird sie in mysql_native_password

geändert

1.2 Entsprechende Ansicht Benutzer im MySQL-Authentifizierungs-Plug-in

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

Sie 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

Was soll ich tun, wenn ich mit PHP keine Verbindung zur Datenbank herstellen kann?

原因: 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视频教程

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn