1

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

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

在升级到 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

不幸的是,这些都没有帮助......

--

第 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;
    }
4

3 回答 3

10

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

sudo apt-get remove php5-mysql

sudo apt-get install php5-mysqlnd
于 2013-12-12T04:51:51.303 回答
0

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

我正在使用 Percona 5.5 服务器、客户端和开发包。我最终不得不运行以下命令来让我的 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。

于 2014-06-06T18:32:11.837 回答
0

我通过 aptitude purging php 5.4 和 php 5.3 并重新安装 php 5.3 解决了这个问题

于 2013-10-10T23:22:24.283 回答