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.
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
Related video recommendations:
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!