Erreur avec php5-mysql et MariaDB

J'utise sur mes serveurs une combinaison nginx + PHP5-FPM (avec le drivers php5-mysql) + MariaDB, et j'ai remarqué dans mes logs des messages d'erreurs :

2015/01/10 17:11:13 [error] 1480#0: *6 FastCGI sent in stderr: "PHP message: PHP Warning:  mysqli_connect(): Headers and client library minor version mismatch. Headers:50537 Library:100015 in /data/heberg/lib/xxxxx.php on line 132" while reading response header from upstream, client: 10.0.3.1, server: vpslocal.mondomaine.org, request: "GET /?q=especes HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "vpslocal.mondomaine.org", referrer: "http://vpslocal.mondomaine.org/?q=genres&act=detail&genus_name=Ancipitia

Visiblement, il semble que la librairie PHP vérifie les versions, et s'attend à ce que la version de la librairie cliente soit exactement la même que la version de PHP avec laquelle elle a été compilée.

Ceci est répertorié sur le site de MariaDB :

https://mariadb.com/kb/en/mariadb/documentation/getting-started/trouble…

J'ai testé la première solution, à savoir utiliser le driver mysqlnd (MySQL Native Driver) plutôt que l'ancien driver mysql. L'installation sur une distribution Debian / Ubuntu se fait simplement via

sudo apt-get install php5-mysqlnd

Comme le montrent les traces, l'installation du nouveau module va supprimer php5-mysql :

sudo apt-get install php5-mysqlnd
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  php5-mysql
The following NEW packages will be installed:
  php5-mysqlnd
0 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.
Need to get 163 kB of archives.
After this operation, 218 kB of additional disk space will be used.
Do you want to continue [Y/n]?
Get:1 http://cdn.debian.net/debian/ wheezy/main php5-mysqlnd amd64 5.4.4-14+deb7u14 [163 kB]
Fetched 163 kB in 2s (76.5 kB/s)       
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 12962 files and directories currently installed.)
Removing php5-mysql ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Selecting previously unselected package php5-mysqlnd.
(Reading database ... 12954 files and directories currently installed.)
Unpacking php5-mysqlnd (from .../php5-mysqlnd_5.4.4-14+deb7u14_amd64.deb) ...
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.
Setting up php5-mysqlnd (5.4.4-14+deb7u14) ...

Creating config file /etc/php5/mods-available/mysqlnd.ini with new version
Processing triggers for php5-fpm ...
[ ok ] Restarting PHP5 FastCGI Process Manager: php5-fpm.

Une fois le nouveau driver installé, les messages d'erreurs disparaissent.

De plus, ce driver est optimisé pour MySQL, avec notamment des améliorations du côté de l'utilisation mémoire.



 

Catégorie
Tag