linux下php-mysql拓展安裝


今天遇到一個奇怪的問題:

在服務器A上部署應用,在服務器B上部署數據庫和緩存。
服務器A:apache2.2,php5.3
服務器B:mysql5.5,redis2.4

問題現象:
本地遠程連接服務器B數據庫成功,
應用服務器A使用mysql-client遠程連接服務器B數據庫成功,
在應用服務器A上使用mysql_connect函數連接失敗,錯誤提示 Can't connect to MySQL server on '172.26.249.228'.

解決方案:
經過排查和猜測,應該是php-mysql拓展組件有問題,於是重新安裝php-mysql的依賴包。
在百度找了 MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm
安裝后,再重新安裝php-mysql。

處理步驟記錄如下:
yum -qa | grep mysql
yum -e xxxxxxxx  把安裝的mysql組件都刪掉。
刪除干凈之后,
y um install php-mysql
出來的是依賴包mysql-libs版本是5.1的。
依賴包和之前安裝的mysql-server5.5沖突。
在網上百度找到高版本的依賴包,
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-compat-5.6.14-1.el6.x86_64.rpm
這里只是安裝好了mysql的連接依賴包,有了依賴包,就可以安裝php-mysql的拓展了。
yum install php-mysql
這時已經不再提示要安裝mysql-libs依賴包,可直接安裝php-mysql 5.3.3,完成后,
查看/usr/lib64/php/modules/目錄下,多了mysql相關的so文件。
重啟apache,問題解決。

總結:期間我一開始還懷疑是沒有mysql.sock導致,還在服務器A上安裝了mysql-server5.5,
后來知道方向錯誤了,但就是因為安裝了這個server,在重裝mysql-libs時,才發現了版本沖突的問題,才能最終懷疑到是之前安裝的mysql-libs版本太低,php不能連接高版本的根本原因。

不過話說回來,以上還是一種猜測,或許就是因為有了 mysql.sock和正確版本的mysql-libs,才得以解決。精力有限,有時間再去驗證吧,問題解決了就好。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM