Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn PHP keine Verbindung zu MySQL herstellen kann?

Was soll ich tun, wenn PHP keine Verbindung zu MySQL herstellen kann?

coldplay.xixi
coldplay.xixiOriginal
2020-11-04 10:08:263091Durchsuche

Lösung für das Problem, dass PHP keine Verbindung zu MySQL herstellen kann: Suchen Sie zuerst die Datei [hosts] und machen Sie sie standardmäßig schreibgeschützt. Öffnen Sie sie dann mit Notepad, fügen Sie [127.0.0.1 localhost] am Ende der Datei hinzu und kopieren Sie sie es auf den Desktop.

Was soll ich tun, wenn PHP keine Verbindung zu MySQL herstellen kann?

Lösung für PHP, das keine Verbindung zu MySQL herstellen kann:

Frage 1

Ich habe heute MySQL und PHP auf meinem Notebook installiert und alles wurde normal installiert (php@IIS7.5-fastCGI). Wenn Sie jedoch phpmyadmin zum Herstellen einer Verbindung und zum Testen verwenden, wird die Fehlermeldung „#2002 Verbindung konnte nicht hergestellt werden“ angezeigt. Das gleiche Problem tritt bei Verwendung anderer Programme auf.

Nach der Überprüfung ist die MySQL-Erweiterung von PHP korrekt installiert und der MySQL-Dienst startet normal – das ist seltsam. Ich habe Navicat erneut verwendet, um eine Verbindung herzustellen, und die Verbindung wurde hergestellt. . Es scheint, dass es ein Problem mit der Kommunikation zwischen PHP und MySQL gibt.

Nach der Suche auf Baidu wurde das Problem entdeckt:

Der Parameter des Datenbankservers (Server) der Funktion mysql_connect() ist derzeit auf localhost eingestellt, aber wenn er in 127.0.0.1 geändert wird, kann normal darauf zugegriffen werden.

Die System-Hosts-Datei bietet keine Auflösung von 127.0.0.1 bis localhost.

Lösung (am Beispiel des Win7-Systems): Suchen Sie die Datei C:\Windows\System32\drivers\etc\hosts. Die Standardeinstellung ist schreibgeschützt. Sie müssen eine Kopie in einen anderen Pfad kopieren, beispielsweise auf den Desktop , und öffnen Sie die Datei (Öffnungsmethode: Notepad), fügen Sie am Ende der Datei hinzu: 127.0.0.1 localhost127.0.0.1 localhost

如果已存在去掉其前面的“#”。

问题二

php脚本可以正常运行,如phpinfo()。

只要一出现“mysql_connect”函数,就没反应,也不报错。

$conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL数据库连接失败:".mysql_error());

 apache日志目录error.log中出现

PHP Warning:  PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'

解决办法:

将“libmysql.dll”复制到apache的bin目录下。然后重启,观察error.log,如果错误消失,那恭喜了。

 另:网上资料也有说将““libmysql.dll””“php_mysql.dll”复制到windows/system32的。

问题三

 代码如下 

 $link_id=@mysql_connect( "localhost ", "sampadm ", "secret "); 
  //以下代码省略 
?>

运行时出现如下提示: 

fatal   error:   call   to   undefined   function     mysql_connect()   in   var/www/html/mytest.php

解决方法:

1、php.ini中

  extension_dir设置为   "d:\apache2\php\ext "绝对路径,否则有些环境中会出错。

  打开下面两行功能扩展

  •   extension=php_mysql.dll     

  •   extension=php_mysqli.dll 

2、拷贝libmysql.dll(php目录下)和php_mysql.dll(php/ext目录下)至c:\windows\system32目录下(libmysql.dll必须为php目录下,比如我的为D:\apache2\php目录下的libmysql.dll,php_mysql.dll则在D:\apache2\php\ext) 

3、测试, 

  1>   先打开命令行 

A)依次点击“开始”菜单-> “mysql”-> “mysql5   server”-> “MySQL   Command   Line   Client” 

//如此步成功则mysql安全成功,失效则mysql安装失败,请卸载后重装 

B)输入密码 

//此步正常则说明   root账户的密码正确。失败则账号密码有错 

    2>   新建文件至主目录,并保存为testmysql.php,接着在浏览器中输入http://localhost/testmysql.php

Wenn es bereits existiert, entfernen Sie das „#“ davor.

Frage 2

PHP-Skripte können normal ausgeführt werden, z. B. phpinfo().
  • Sobald die Funktion „mysql_connect“ erscheint, erfolgt keine Antwort oder Fehlermeldung.

    So wie $conn = mysql_connect("127.0.0.1",root","xxxx") oder die("MYSQL-Datenbankverbindung fehlgeschlagen:".mysql_error());
  • Apache-Protokoll Verzeichnis

    PHP-Warnung erscheint im error.log: PHP-Startup: Dynamische Bibliothek 'c:\\php\\ext\\php_mysql.dll' kann nicht geladen werden

Lösung:

Kopieren „libmysql.dll“ in das bin-Verzeichnis von Apache kopieren. Starten Sie dann neu und beobachten Sie das Fehlerprotokoll. Wenn der Fehler verschwindet, herzlichen Glückwunsch.

Noch etwas: Online-Informationen besagen auch, „libmysql.dll“ und „php_mysql.dll“ nach Windows/system32 zu kopieren. 🔜

1. Das
🎜 extension_dir in php.ini ist auf den absoluten Pfad „d:\apache2\php\ext“ eingestellt, da sonst in einigen Umgebungen Fehler auftreten. 🎜🎜 Öffnen Sie die folgenden zwei Zeilen der Funktionserweiterung 🎜🎜🎜🎜 extension=php_mysql.dll 🎜🎜🎜🎜 extension=php_mysqli.dll 🎜🎜🎜🎜2. Kopieren Sie libmysql.dll (im PHP-Verzeichnis) und php_mysql.dll (php /ext-Verzeichnis Weiter) in das Verzeichnis c:\windows\system32 (libmysql.dll muss sich im PHP-Verzeichnis befinden, meine Datei befindet sich beispielsweise libmysql.dll im Verzeichnis D:\apache2\php und php_mysql.dll befindet sich in D :\Apache2\php\ ext) 🎜🎜3. Öffnen Sie zuerst die Befehlszeile 🎜🎜A) Klicken Sie auf das Menü „Start“-> -> „MySQL-Befehlszeilen-Client“ 🎜🎜//Wenn dieser Schritt erfolgreich ist, ist die MySQL-Sicherheit erfolgreich. Wenn nicht, schlägt die MySQL-Installation fehl. Bitte deinstallieren und neu installieren. 🎜🎜B) Geben Sie das Passwort ein 🎜🎜//Wenn Dieser Schritt ist normal. Dies bedeutet, dass das Kennwort des Root-Kontos korrekt ist. Wenn dies fehlschlägt, ist das Kontopasswort falsch 🎜🎜 2> Erstellen Sie eine neue Datei im Home-Verzeichnis und speichern Sie sie als testmysql.php. Geben Sie dann http://localhost/testmysql.php (oder http :/ /localhost:81/testmysql.php)🎜🎜Wenn es nicht funktioniert, überprüfen Sie, ob Apache die PHP- und MySQL-Methoden geladen hat🎜🎜Unterstützung für PHP5 in Apache. Fügen Sie die folgenden drei Zeilen zur Datei httpd.conf hinzu🎜
PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php
🎜Entfernen Sie es aus php.ini. Die folgenden zwei Zeilen Semikolon 🎜🎜🎜🎜extension=php_mysql.dll 🎜🎜🎜🎜extension=php_mysqli.dll🎜🎜🎜🎜Kopieren Sie php_mysql.dll und libmysql.dll nach system32 🎜🎜Starten Sie den Apache neu server🎜 🎜🎜Ähnliche Videoempfehlungen: 🎜PHP-Programmierung vom Einstieg bis zum Master🎜🎜🎜

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP keine Verbindung zu MySQL 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