开发者社区> 问答> 正文

Mysql 升级到 5.5 GA 时,PHP 5.2.6 编译出错!

今天把原来的 Mysql 5.1.35 升级至 Mysql 5.5 GA

由于 Mysql-Dev 也一同更新了。

所以必须重新编译 PHP 5.2.6 环境。

但编译出错,出现以下各种错误。
部分信息如下:
screenshot

展开
收起
吴孟桥 2016-06-06 18:26:20 2504 0
1 条回答
写回答
取消 提交回答
  • 1、解决方式:
    原因:这是mysql的一个bug
    解决:
    修改 /usr/include/mysql/mysql.h (使用rpm安装方式的路径) 文件内容 :

    enum mysql_protocol_type
    {
    MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET,
    MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY
    };
    ----------------------------==添加的内容开始==-------------------------------------
    /*
    There are three types of queries - the ones that have to go to
    the master, the ones that go to a slave, and the adminstrative
    type which must happen on the pivot connectioin
    */
    enum mysql_rpl_type
    {
    MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN
    };
    ----------------------------==添加的内容结束==--------------------------------------
    typedef struct character_set
    {
    unsigned int number; /* character set number */
    unsigned int state; /* character set state */
    const char *csname; /* collation name */
    const char *name; /* character set name */

    将以上添加的内容开始内容,添加到mysql.h文件对应的位置,重新编译即可
    2、原因:
    在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open'」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。
    解决方法:
    编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ..... -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ..... -lcrypt -liconv 然后重新再次 make 即可。
    或者用另一种办法

    ln -s /usr/local/lib/libiconv.so.2 /usr/lib64/
    make ZEND_EXTRA_LIBS='-liconv'

    3、找到你的安装光盘,提取2个rpm文件并安装

    rpm -ivh libtool-ltdl-1.5.22-6.1.x86_64.rpm
    rpm -ivh libtool-ltdl-devel-1.5.22-6.1.x86_64.rpm
    2019-07-17 19:29:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载

相关镜像