mysql_connect(): Несоответствие заголовков и вспомогательной версии клиентской библиотеки. Заголовки:50531 Библиотека:50613

Я действительно застрял, пытаясь исправить эти ошибки в Debian Wheezy.

mysql_connect(): Несоответствие заголовков и вспомогательной версии клиентской библиотеки. Заголовки: 50531 Библиотека: 50613 core.php в строке 317

Проблема возникла сегодня спустя некоторое время после обновления до php 5.4, загрузчиков ioncube 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;
    }

person Fat Finger    schedule 10.10.2013    source источник
comment
Разве мы не можем увидеть код (возможно, около строки 317), который может помочь?   -  person Fluffeh    schedule 10.10.2013
comment
вы не должны использовать mysql_* для начала. эта ошибка является замаскированным благословением.   -  person itachi    schedule 10.10.2013


Ответы (3)


У меня была такая же проблема, когда я недавно обновил свой сервер Ubuntu до 13.04, так или иначе, это просто предупреждение от libmysqlclient, у меня также есть mariadb, вы можете использовать php5-mysqlnd вместо php5-mysql, это исправило это для меня.

sudo apt-get remove php5-mysql

sudo apt-get install php5-mysqlnd
person lukesUbuntu    schedule 12.12.2013
comment
Это исправило это и для меня. - person Francis Lewis; 15.01.2014
comment
Из-за этого phpMyAdmin не работал :( похоже, он не поддерживает mysqlnd. - person Benno; 03.01.2015

Я исправил это, очистив aptitude на php 5.4 и php 5.3 и переустановив php 5.3.

person Fat Finger    schedule 10.10.2013

Я исправил это для Percona 5.5 на Centos 6 после того, как описанный выше шаг не помог.

Я использую пакеты 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

Я надеюсь, что это поможет всем, кто пытается скомпилировать PHP из исходного кода при использовании Percona.

person DevOops    schedule 06.06.2014