PHP avec MySQL Client Library ou MySQL Native Driver
+
Par Remi le mardi 13 septembre 2011, 20:53 - HowTo - Lien permanent
PHP est fournit, depuis la version 5.3, avec mysqlnd, le pilote natif MySQL, un pilote pour l'accès aux bases MySQL permettant de ne pas utiliser la bibliothèque cliente MySQL (libmysqlclient de mysql-libs).
Les utilisateurs de fedora >= 16 et ceux du dépôt remi, auront le choix.
Jusqu'à présent, il n'était pas possible de construire une bibliothèque partagée de mysqlnd, donc impossible de fournir les extensions pour les 2 pilotes. Grâce à la résolution du bug PHP #55609, c'est désormais possible.
À partir de fedora 16, les utilisateurs des extensions mysql, mysqli ou pdo_mysql auront le choix. Voir : php-5.3.8-2.fc16 (annonce de mise à jour).
Le paquet php-mysql fournit comme toujours les extensions utilisant la bibliothèque cliente MySQL, fournit par mysql-libs.
Le nouveau paquet php-mysqlnd fournit les extensions utilisant le client natif MySQL intégré, il contient :
- mysqlnd, le pilote
- mysqlnd_mysql, l'extension mysql utilisant mysqlnd
- mysqlnd_mysqli, l'extension mysqli utilisant mysqlnd
- pdo_mysqlnd, l'extension pdo_mysql utilisant mysqlnd
Il n'est évidement pas possible d'installer les 2 pilotes.
Sur une machine déjà installée, pour changer de pilote, il faut utiliser yum en mode expert :
# yum shell
> remove php-mysql
> install php-mysqlnd
> run
> quit
L'utilisation de ce nouveau pilote est transparente pour les applications PHP. Certains rapportent de meilleurs performances (notamment sur la consommation mémoire). De plus, ce pilote permet de s'affranchir des dépendances sur mysql-libs.
Les RPM sont, évidemment, aussi disponibles dans le dépôt
- remi pour fedora >= 10
- remi-test pour enterprise linux >= 4
Je compte sur vos retours.
Commentaires
La version 5.3.8-4 corrige le problème avec les extensions mysql pour php avec apache en mode worker (mais mysqlnd obligatoire).
Les RPM sont maintenant disponibles pour fedora >= 10 et EL >= 4.
A noter, en choisissant ce pilote, il est possible de bénéficier de nouvelles extensions :