• 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组件都删掉。
    删除干净之后,
    yum 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,才得以解决。精力有限,有时间再去验证吧,问题解决了就好。




  • 相关阅读:
    数据结构 零散4(数组)
    数据结构 零散3(链表)
    数据结构 零散2(哈希表)
    数据结构 零散1(栈)
    javaweb2 URL(查找的过程)
    javaWeb1 tomcat
    vim正则表达式的替换变量
    vi搜索统计个数
    Openwrt修改默认IP,主机名,密码
    vi里面对列排序
  • 原文地址:https://www.cnblogs.com/caryfang/p/5439299.html
Copyright © 2020-2023  润新知