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,才得以解决。精力有限,有时间再去验证吧,问题解决了就好。




转载于:https://www.cnblogs.com/caryfang/p/5439299.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值