CentOS 5.11 is still using the older MySQL 5.0.59 server version, and PHP is also using the highest and 5.3.3 (using yum-y install PHP53 installation). From the official view the last version of 5.3 is 5.3.29 has been discontinued in August 2014, some bugs and security issues will not be repaired, so we decided to upgrade the version of PHP to 5.5. In the installation we use
./configure--prefix=/data/php.5.5.26--with-bz2--with-curl--enable-ftp--enable-sockets--disable-ipv6--WITH-GD-- With-iconv-dir=/data/libiconv--enable-mbstring--enable-calendar--with-gettext--with-zlib--with-mcrypt-- With-pdo-mysql=mysqlnd--with-mysqli=mysqlnd--with-mysql=mysqlnd--enable-dom--enable-xml--enable-fpm-- With-fpm-user=www--with-fpm-group=www
You can see that we used the MYSQLND as the driver to connect to the database. There are some problems that can occur during the testing process.
Time to deploy code to the test server appears no such file or directory, check nginx log appears PHP message:php warning:mysql_connect (): No such file or directory 。 After checking that the original is MYSQLND connection not to the database, modify the PHP configuration file Mysql.default_socket =/var/lib/mysql/mysql.sock Note My side is yum installed MySQL server, Restart the PHP-FPM. If you are using Apache, then start the Apache service.
Use mysql_connect (' localhost ', ' root ', ' 123 ') to find the server and error
Mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Administration tool to reset your password with the command SET password = password (' Your_existing_password ' ). This would store a new, and more secure, the hash value in Mysql.user. If This user was used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from Your my.cnf file
When using MYSQLND, there is a place to be aware of. The password format for the server is not to use the old 16-bit storage format, but to use the new 41-bit storage format
mysql> Select User,length (password) from mysql.user;+----------+------------------+| user | Length (password) |+----------+------------------+| Root | 16 | | Test | |+----------+------------------+2 rows in Set (0.00 sec)
First, change the configuration file of the database/etc/my.conf
Under [mysqld] Check to see if there are
[Mysqld]
Old_passwords=1
Change it to
Old_passwords=0
If there is no new, then restart the database service
Second, change the password of the database
Update Mysql.user set Password=password (' 123456 ') where user= ' root '; update mysql.user set Password=password (' 123456 ') where user= ' test '; flush privileges; mysql> Select User,length (password) from mysql.user;+--------------+------------------+| user | Length (password) |+--------------+------------------+| Root | 41 | | Test | 91m| +--------------+------------------+ This change password to see how many users you have used.
Refresh the webpage again, normal.
This article is from "Maple Night" blog, please be sure to keep this source http://fengwan.blog.51cto.com/508652/1662046
PHP uses MYSQLND to deal with some problems caused by