Вопрос по php, ubuntu – Несоответствие версий заголовков и клиентской библиотеки

78

В PHP я получаю следующее предупреждение, когда пытаюсь подключиться к базе данных (черезmysql_connect)

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50162 Library:50524

В моемphp -i Вывод У меня есть следующие значения, перечисленные в MySQL

Client API library version => 5.5.24

Client API header version => 5.1.62

Я пытался обновить php5-mysqland php, но я уже на последней версии их обоих. Как мне обновить версию заголовка, чтобы перестать видеть это предупреждение?

EDIT

Все мои файлы MySQL должны быть обновлены до последней версии:

$ apt-get install mysql.*5.5
. . .
mysql-client-5.5 is already the newest version.
mysql-server-core-5.5 is already the newest version.
mysql-server-5.5 is already the newest version.
mysql-testsuite-5.5 is already the newest version.
mysql-source-5.5 is already the newest version.

Удаление старых версий

$ apt-get remove mysql.*5.1
. . .
Package handlersocket-mysql-5.1 is not installed, so not removed
Package mysql-cluster-client-5.1 is not installed, so not removed
Package mysql-cluster-server-5.1 is not installed, so not removed
Package mysql-client-5.1 is not installed, so not removed
Package mysql-client-core-5.1 is not installed, so not removed
Package mysql-server-5.1 is not installed, so not removed
Package mysql-server-core-5.1 is not installed, so not removed
Package mysql-source-5.1 is not installed, so not removed
@ dAm2K как оказалось версияwas может быть обновлен путем замены моего текущего файла mysqli.so на новый. Ian Hunter
Вам также придется обновить материал MySQL. MySQL-клиент или что-то еще. Marc B
@MarcB У меня должны быть все последние версии пакета MySQL (см. Мое последнее редактирование) Ian Hunter
Я действительно не знаю, есть ли способ проверить совместимость ABI ... вам просто нужно проверить apache error_log на наличие странных дочерних ошибок httpd. Если через 3-4 дня ошибка не наступит, с вами все будет в порядке. dAm2K
& quot; заголовок API клиента & quot; Версия не может быть обновлена, поскольку она жестко запрограммирована в исполняемый файл PHP. Это были заголовки (и библиотеки) mysql, установленные в системе менеджера пакетов PHP во время компиляции PHP. Вы не можете обновить их. Вы должны вернуться к библиотекам MySQL 5.1.X, чтобы эта версия PHP снова заработала, или обновить PHP до версии, скомпилированной с MySQL 5.5.X. dAm2K

Ваш Ответ

12   ответов
0

Changing PHP version from 5.6 to 5.5 Fixed it.

Вы должны перейти к панели управления & gt; CGI Script и изменение версии PHP там.

122

ОтСайт MariaDBРекомендуется исправить

Switch to using the mysqlnd driver in PHP (Recommended solution).

Run with a lower error reporting level:

$err_level = error_reporting(0);  
$conn = mysql_connect('params');  
error_reporting($err_level); 
Recompile PHP with the MariaDB client libraries. Use your original MySQL client library with the MariaDB.

Моя проблема исправлена с помощью драйвера mysqlnd в Ubuntu:

sudo apt-get install php5-mysqlnd

Ура!

[обновление: дополнительная информация] Установка этого драйвера также решает проблему PDO, которая возвращает целочисленное значение в виде строки. Чтобы сохранить тип как целое, после установки mysqlInd сделайте это

$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass, 
          array( PDO::ATTR_PERSISTENT => true));
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
66

а не php5-mysql.

Удалить эту версию драйвера MySQL

sudo apt-get remove php5-mysql

И установите это вместо

sudo apt-get install php5-mysqlnd
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

В cPanel перейдите к разделу «Программное обеспечение и услуги». tab & gt; & gt; и затем нажмите & quot; Выбрать версию PHP & quot; & GT; & GT; установите желаемую версию php ...

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50547 Library:50628 in chennaitechnologies.com

Например. Текущая версия PHP:

Версия PHP [5.2] (список доступных версий php 5.2, 5.3, 5.4, 5.5, 5.6)

Warning: Changing php modules and php options via PHP Selector for native php version is impossible

Я выбрал версию 5.6 php, после того, как эта ошибка была устранена на моем блог-сайте WordPress ...

0

сборки.

Используя WHM под CENTOS 6.9 xen pv [dc] v68.0.27, нужно было пересобрать Apache / PHP, посмотрев все опции и выбрав mysqli для сборки. По умолчанию было построено устаревшее mysql. Теперь сообщения об устаревании пропали, и один готов к будущим обновлениям MySQL.

2

MySQL собственный драйвер (mysqlnd),

cd /php/source/path
./configure <other-options> --with-mysql --with-mysqli --with-pdo-mysql
make clean    # required if there was a previous make, which could cause various errors during make
make
make install

От/php/source/path/configure --help.

--with-mysql=DIR        Include MySQL support.  DIR is the MySQL base
                      directory, if no DIR is passed or the value is
                      mysqlnd the MySQL native driver will be used
--with-mysqli=FILE      Include MySQLi support.  FILE is the path
                      to mysql_config.  If no value or mysqlnd is passed
                      as FILE, the MySQL native driver will be used
--with-pdo-mysql=DIR    PDO: MySQL support. DIR is the MySQL base directory
                      If no value or mysqlnd is passed as DIR, the
                      MySQL native driver will be used

С помощью этих параметров можно включить одно или несколько расширений PHP MySQL.
Если значение не передано в эти параметры, или если значениеmysqlnd, MySQL родной драйвер будет использоваться.

Error: User Rate Limit Exceeded--with-mysqlError: User Rate Limit Exceeded--with-mysqliError: User Rate Limit Exceeded
0

когда драйвер php был скомпилирован с 5.5, а для некоторых приложений требуется php5-mysql, поэтому я пишу скрипт для перестройки драйверов.

https://github.com/falcacibar/php5-mysql-rebuild

1

Err: Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50547 Library:50628 in /home/lhu/public_html/innovacarrentalschennai.com/wp-includes/wp-db.php on line 1515

Причина: я обновил версию wp 4.2 до 4.5 (несовпадение PHP и MySql)

Я изменил wp-db.php в строке 1515

$this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );

в

if ( WP_DEBUG ) {
    $this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
} else {
    $this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
}

Это получилось без ошибок на моем WordPress сайте

Error: User Rate Limit Exceededmysql_ functions have been removed
23

То же самое работает для MySQL:

sudo apt-get install php5-mysqlnd

Я читал эту ветку, пытаясь найти решение для MySQL, и я также видел ответ Кена, но я проигнорировал решение для MariaDB, потратив таким образом несколько часов. Мне было не ясно, что то же самое может относиться к MySQL. Этот пост просто избавит вас от нескольких часов, которые я потерял.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
10

что PHP некоторое время назад отделился от клиентских библиотек MySQL. Итак, что происходит (в основном на старых компиляторах Linux), это то, что люди будут компилировать PHP противa given build of the MySQL Client (имеется в виду, что установленная версия MySQL не имеет значения), а не обновление (в CentOS этот пакет указан какmysqlclientXX, гдеXX представляет номер пакета). Это также позволяет сопровождающему пакета поддерживать более низкие версии MySQL. Это грязный способ сделать это, но это был единственный способ, учитывая то, как PHP и MySQL используют разные лицензии.

MySQLND решает проблему с помощью собственного родного драйвера PHP (ND), который больше не зависит от MySQL Client. Он также скомпилирован для той версии PHP, которую вы используете. Это лучшее решение, если по какой-либо другой причине MySQLND создан для взаимодействия PHP с MySQL.

Если вы не можете установить MySQLND, вы можете спокойно проигнорировать эту ошибку по большей части. Это всего лишь уведомление о вашем финансовом положении, чем что-либо еще. Это просто звучит страшно.

30

но теперь он связывает библиотеку mysql семейства 5.5.X. Вы должны обновить PHP до версии, скомпилированной с MySQL 5.5, или вернуть обратно клиентские библиотеки mysql до 5.1.x.

Error: User Rate Limit Exceeded Ian Hunter
1
Warning: mysqli::mysqli(): Headers and client library minor version mismatch.
Headers:50547 Library:100026

cPanel Version  56.0 (build 25)
Apache Version  2.4.18
PHP Version 5.5.30
MySQL Version   10.0.26-MariaDB

Похожие вопросы