php使用mysqlnd引發的一些問題處理
現在CentOS 5.11使用的仍是比較老舊的mysql 5.0.59 伺服器版本,PHP也是使用的最高的也是5.3.3(使用yum -y install php53安裝)。從官方看5.3的最後一個版本為5.3.29已經於2014年8月份停止支援,出現的一些bug及安全性問題將會得不到修復,因此我們決定將PHP的版本升級到5.5。在安裝的時候我們使用
1
|
. /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
|
可以看到我們使用了mysqlnd作為連線資料庫的驅動。可以在測試的過程中出現了一些問題。
-
將程式碼部署到測試伺服器的時間出現No such file or directory,檢查nginx日誌出現PHP message: PHP Warning: mysql_connect(): No such file or directory。經過檢查發現原來是mysqlnd連線不到資料庫,修改php的配置檔案mysql.default_socket = /var/lib/mysql/mysql.sock 注意我這邊是yum安裝的mysql server,重新啟動php-fpm.如果你使用的是apache的話則啟動apache的服務即可。
-
使用mysql_connect(`localhost`,`root`,`123`)發現伺服器又報錯
mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is 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
使用mysqlnd的時候,有個地方需要注意。就是服務端的密碼格式不能使用舊的16位的儲存格式,而要使用新的41位的儲存格式
1
2
3
4
5
6
7
8
|
mysql> select user,length(password) from mysql.user;
+----------+------------------+ | user | length(password) | +----------+------------------+ | root | 16 | | test | 16 |
+----------+------------------+ 2 rows in set (0.00 sec)
|
第一、更改資料庫的配置檔案/etc/my.conf
在[mysqld]下檢查是否有
[mysqld]
old_passwords=1
將其更改為
old_passwords=0
如果沒有新增之,然後重新啟動資料庫服務
第二、更改資料庫的密碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
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 | 41 |
+--------------+------------------+ 這個更改密碼看你有使用幾個使用者了。 |
再次重新整理網頁,正常了了。
本文轉自 rong341233 51CTO部落格,原文連結:http://blog.51cto.com/fengwan/1662046
相關文章
- PHP 開發版本問題處理PHP
- 解析PHP處理換行符的問題PHP
- sklearn: CountVectorize處理及一些使用引數
- 併發問題處理方式
- PHP 5.3以上版本推薦使用mysqlnd驅動PHPMySql
- GridLayout的使用及問題處理
- 工作中遇到的一些問題和處理
- 影象處理中的一些基本問題解釋
- PHP中Autoload使用中的一些問題PHP
- 使用資料庫處理併發可能導致的問題資料庫
- 打Oracle PSU時碰到的一些問題處理Oracle
- PHP array_column 引發的一個小問題PHP
- 處理問題的方法
- xml處理的問題XML
- 在 React 中處理資料流問題的一些思考React
- 在SQLServer處理中的一些問題及解決方法SQLServer
- php關於金額比較引發的問題(轉)PHP
- PHP7.1.0安裝Zabbix3.0.7問題處理PHP
- PHP Mysql support: 是mysql 還是mysqlnd?PHPMySql
- 併發處理中的問題以及解決這些問題的併發模型模型
- 【問題處理】使用trim和 replace處理字串中的換行符號字串符號
- mysql的處理能力問題MySql
- 多端混合開發時跨域問題的處理跨域
- 在PHP中怎麼解決大量資料處理的問題PHP
- 使用DBMS_RANDOM過程引發的問題random
- vue使用的props元件傳值問題處理Vue元件
- 關於時間 PHP 處理包遇到的問題時間序列化差值問題PHP
- 使用__attribute__處理對齊問題
- PHP影像處理開發庫PHP
- 使用PHP錯誤處理 (轉)PHP
- 關於在request請求時,處理請求引數的問題
- 一個NBU問題的處理
- mysql的處理能力問題(2)MySql
- 【問題處理】“NOT IN”與“NULL”的邂逅Null
- windows的一個問題處理Windows
- perl中文處理問題
- 漢字處理問題?
- 貨品問題處理