Home  >  Article  >  Backend Development  >  What should I do if php cannot connect to mysql?

What should I do if php cannot connect to mysql?

coldplay.xixi
coldplay.xixiOriginal
2020-11-04 10:08:263183browse

Solution to the problem that php cannot connect to mysql: First find the [hosts] file and make it read-only by default; then open it with Notepad, add [127.0.0.1 localhost] at the end of the file and copy it to the desktop.

What should I do if php cannot connect to mysql?

Solution to php unable to connect to mysql:

Problem 1

Today I installed mysql and php on my notebook, and everything was installed normally (php@IIS7.5-fastCGI). However, when using phpmyadmin to connect and test, an error of "#2002 Unable to connect" appears. The same problem occurs when using other programs.

After checking, the mysql extension of php is installed correctly and the mysql service starts normally--that's strange. I used navicat to connect again and it was connected. . It seems that there is a problem with the communication between php and mysql.

After searching on Baidu, the problem was discovered:

Mysql_connect() function database server (server) parameter is currently set to localhost, but when it is changed to 127.0.0.1, it can be accessed normally .

The system hosts file does not provide resolution from 127.0.0.1 to localhost.

Solution (taking win7 system as an example): Find the C:\Windows\System32\drivers\etc\hosts file. The default is read-only. You need to copy a copy to another path. For example, on the desktop, open the file (open with: Notepad) and add: 127.0.0.1 localhost

at the end of the file. If it already exists, remove the "#" in front of it.

Question 2

php scripts can run normally, such as phpinfo().

As soon as the "mysql_connect" function appears, there will be no response and no error will be reported.

For example$conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL database connection failed:".mysql_error());

appears in the apache log directory error.log

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

Solution:

Copy "libmysql.dll" to the bin directory of apache. Then restart and observe the error.log. If the error disappears, congratulations.

Another: Online information also says to copy ""libmysql.dll"" and "php_mysql.dll" to windows/system32.

Question 3

The code is as follows

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

The following prompt appears when running:

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

Solution:

1.

extension_dir in php.ini is set to "d: \apache2\php\ext "Absolute path, otherwise errors will occur in some environments.

Open the following two lines of function extension

  • extension=php_mysql.dll

  • extension=php_mysqli.dll

2. Copy libmysql.dll (under the php directory) and php_mysql.dll (under the php/ext directory) to the c:\windows\system32 directory (libmysql.dll must be under the php directory, for example Mine is libmysql.dll in the D:\apache2\php directory, and php_mysql.dll is in D:\apache2\php\ext)

3. Test,

1> ; First open the command line

A) Click the "Start" menu-> "mysql"-> "mysql5 server"-> "MySQL Command Line Client"

//Like this If the step is successful, mysql security is successful. If it is failed, the mysql installation fails. Please uninstall and reinstall

B) Enter the password

//If this step is normal, it means that the password of the root account is correct. If it fails, the account password is wrong

2> Create a new file in the home directory and save it as testmysql.php, then enter http://localhost/testmysql.php in the browser (or http://localhost:81/testmysql.php)

If it doesn’t work, check if apache has loaded the php and mysql methods

Add support for php5 in apache to the httpd.conf file Remove the semicolons from the following three lines

PHPIniDir "D:/ccopen/php5/"
LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php

php.ini

  • extension=php_mysql.dll

  • extension =php_mysqli.dll

##Copy php_mysql.dll and libmysql.dll to system32

Restart the apache server

Related video recommendations:

PHP programming from entry to proficiency

The above is the detailed content of What should I do if php cannot connect to mysql?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn