mysql_connect():标头和客户端库次要版本不匹配。标题:50531图书馆:50613

时间:2013-10-10 10:31:59

标签: php mysql header mismatch

我真的很难在debian wheezy上修复这些错误。

  

mysql_connect():标头和客户端库次要版本不匹配。标题:50531图书馆:第317行的50613 core.php

在升级到php 5.4,ioncube loaders 4.4.3,xcache 3.0.3和percona 5.6之后,问题发生了很长一段时间。

到目前为止,我试图解决我尝试过的问题......

  1. 卸载php(包括清除安装文件)
  2. 降级到php 5.3然后升级回来
  3. 降级回percona 5.5并升级回来
  4. 卸载ioncube标题
  5. 卸载xcache
  6. 其中没有一个帮助不幸......

    -

    第317行以:

    开头
     $link = $this->
    
      /**
        * Initialize database connection(s)
        *
        * Connects to the specified master database server, and also to the slave server if it is specified
        *
        * @param        string  Name of the database server - should be either 'localhost' or an IP address
        * @param        integer Port of the database server (usually 3306)
        * @param        string  Username to connect to the database server
        * @param        string  Password associated with the username for the database server
        * @param        boolean Whether or not to use persistent connections to the database server
        * @param        string  Not applicable; config file for MySQLi only
        * @param        string  Force connection character set (to prevent collation errors)
        *
        * @return       boolean
        */
        function db_connect($servername, $port, $username, $password, $usepconnect, $configfile = '', $charset = '')
        {
                if (function_exists('catch_db_error'))
                {
                        set_error_handler('catch_db_error');
                }
    
                // catch_db_error will handle exiting, no infinite loop here
                do
                {
                        $link = $this->functions[$usepconnect ? 'pconnect' : 'connect']("$servername:$port", $username, $password);
                }
                while ($link == false AND $this->reporterror);
    
                restore_error_handler();
    
                if (!empty($charset))
                {
                        if (function_exists('mysql_set_charset'))
                        {
                                mysql_set_charset($charset);
                        }
                        else
                        {
                                $this->sql = "SET NAMES $charset";
                                $this->execute_query(true, $link);
                        }
                }
    
                return $link;
        }
    

3 个答案:

答案 0 :(得分:10)

当我最近将我的ubuntu服务器升级到13.04时,我遇到了同样的问题,这只是来自libmysqlclient的警告我也有mariadb,你可以使用php5-mysqlnd代替php5-mysql这个为我修好了。

sudo apt-get remove php5-mysql

sudo apt-get install php5-mysqlnd

答案 1 :(得分:0)

我通过aptitude清除php 5.4和php 5.3并重新安装php 5.3

来解决这个问题

答案 2 :(得分:0)

在上述步骤没有帮助之后,我在Centos 6上为Percona 5.5修复了这个问题。

我正在使用Percona 5.5 Server,Client和Devel包。我最终必须运行以下命令才能使我的PHP编译工作(删除Percona-shared-compat-5.1之后):

cp /usr/lib64/lib{perconaserver,mysql}client.so.18.0.0
cp /usr/lib64/lib{perconaserver,mysql}client.so
cp /usr/lib64/mysql/lib{perconaserver,mysql}client_r.a
cp /usr/lib64/mysql/lib{perconaserver,mysql}client.a
cp /usr/lib64/lib{perconaserver,mysql}client_r.so.18.0.0
cp /usr/lib64/lib{perconaserver,mysql}client_r.so
cp /usr/lib64/lib{perconaserver,mysql}client_r.so.18

我希望这可以帮助其他人在使用Percona时尝试从源代码编译PHP。