Categories
MySQL PHP

About the “mysql_connect(): Headers and client library minor version mismatch” warning

After having MySQL 5.6.17 published, some users complained about a warning thrown by their PHP applications :

PHP Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50535 Library:50617

In fact, this could happen with any application linked to libmysqlclient18 in a certain version (php5-mysql from Dotdeb is linked to the 5.5.35 version from the stock Debian distribution) when connecting to a MySQL server in another version (5.6.17 in our case). The warning is thrown by libmysqlclient18 itself. And this is just a warning, there is no reason why any bad behavior would happen in that case.

Of course, I could build php5-mysql against the latest libmysqlclient18 (5.6.17), but it would lead to very bad issues, such as duplicate symbols or segfaults when PHP is loaded with other MySQL-linked modules from the stock Debian distribution (those are linked to libmysqlclient18 5.5.35). For example : mod_php5 + Apache + mod_auth_mysql would crash.

If this this warning really annoys you, feel free to install php5-mysqlnd instead of php5-mysql :

  • it’s a drop-in replacement
  • it’s not linked against any libmysqlclient library
  • it won’t throw any irrelevant warning about version mismatch
  • it has a lot of benefits. See http://www.php.net/mysqlnd for more info

I hope this helps.

21 replies on “About the “mysql_connect(): Headers and client library minor version mismatch” warning”

Salut, dit moi prochainement pense tu rajouter MariaDB dans tes dépot ?

je les utilise depuis 2008 mais je compte passer sous MariaDB depuis sa recente version 10 stable

@mrr : c’est quelque chose que j’envisage éventuellement pour la version 10 de MariaDB. Encore un peu de boulot pour déterminer si c’est possible sans tout casser 🙂

Bonjour,

J’ai moi même mon fichier d’erreurs PHP qui a beaucoup grossi d’un coup, après la mise à jour (en gros une ligne par requête mysql 🙂

Est-ce que tous ces warnings & ces écritures dans les logs ne ralentissent pas mon serveur ?

Possibilité de désactiver ce warning uniquement au lieu de désactiver tous les warnings ?

merci

Oui, il faut que je me penche dessus. Je ne connais pas toutes les implications… C’est exactement pareil que php5-mysql ? (si ce dernier est déjà installé il faut que je le désinstalle avant ? … je suis sur un serveur de prod 🙂

Ok, I can understand in only in the basics.

My problem is now, that I have some websites within a plesk environment and tha used software shows this error message in the header.

There is no way to change to mysqlnd because it breaks plesk.

Any solution?!

j’ai fait la mise la jour sur le serveur de prod sans problème, cependant attention au dépendence.

perso j’ai installer mysqlnd, qui lui a désinstaller mysql pour le remplacé

et exemple j’avais des dépendance avec un gestionnaire de mail, qui on été remplacé part la même chose aussi mais en pgsql, vu que je ne m’en sert pas cela ne m’inquiété pas plus que sa

In our case the mysql-server was still 5.5.35 from debian source. But the libmysqlclient18 package was 5.6.17 from dotdeb source. You can check this by
mysqld –version
dpkg -l | grep “mysql”

So we solved it the following way:
1) Update the sources.list (so you get only PHP5.5 without MYSQL5.6 from dotdeb)

#deb http://packages.dotdeb.org wheezy all
#deb-src http://packages.dotdeb.org wheezy all
deb http://packages.dotdeb.org wheezy-php55 all
deb-src http://packages.dotdeb.org wheezy-php55 all

2) Downgrade libmysqlclient manually. Pick the right package (https://packages.debian.org/wheezy/libmysqlclient18)

wget http://ftp.ch.debian.org/debian/pool/main/m/mysql-5.5/libmysqlclient18_5.5.35+dfsg-0+wheezy1_amd64.deb
dpkg -i libmysqlclient18_5.5.35+dfsg-0+wheezy1_amd64.deb

3) Restart services

/etc/init.d/mysql restart
/etc/init.d/apache restart

Bonjour,

j’ai fait la mise a jour vers MySQL 5.6.17 et depuis ispconfg ne fonctionne plus (page blanche). je suis en mod-apache. Mon site lui fonctionne après un reboot ( sinon soucis acces base de données).
j’ai tenté la résintallation d’ispconfig, rien, nada.

j’ai aussi ce message d’erreur !

Sur un autre vps , par contre pas de soucis.
Si on a un backup d’ispconfig, remettre l’ancien ne causera pas de soucis ( version php/mysql précédente).

merci !

hello,
pas de réponse. pas cool.
Now ispconfig is ok.

On m’a résolu le soucis d’ispconfig mais avec :
PHP
v5.5.11-1~dotdeb.1
MYSQL
v5.6.17-1~dotdeb.1

pourquoi debian me demande de mettre a jour mysql en version 5 ?
apt-get upgrade
Lecture des listes de paquets… Fait
Construction de l’arbre des dépendances
Lecture des informations d’état… Fait
Les paquets suivants seront mis à jour :
mysql-client-5.5 mysql-server-5.5 mysql-server-core-5.5 (??)

quand je le fais j’ai, bien sur, une erreur :

Les paquets suivants seront mis à jour :
mysql-server-5.5
1 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
2 partiellement installés ou enlevés.
Il est nécessaire de prendre 0 o/2 188 ko dans les archives.
Après cette opération, 7 168 o d’espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? O
Lecture des fichiers de modifications (« changelog »)… Terminé
Préconfiguration des paquets…
(Lecture de la base de données… 83695 fichiers et répertoires déjà installés.)
Préparation du remplacement de mysql-server-5.5 5.5.35+dfsg-0+wheezy1 (en utilisant …/mysql-server-5.5_5.5.37-0+wheezy1_amd64.deb) …
[ ok ] Stopping MySQL database server: mysqld.
Aborting downgrade from (at least) 5.6 to 5.5.
If are sure you want to downgrade to 5.5, remove the file
/var/lib/mysql/debian-*.flag and try installing again.
dpkg: erreur de traitement de /var/cache/apt/archives/mysql-server-5.5_5.5.37-0+wheezy1_amd64.deb (–unpack) :
le sous-processus nouveau script pre-installation a retourné une erreur de sortie d’état 1
[ ok ] Stopping MySQL database server: mysqld.
insserv: warning: script ‘K02jailkit’ missing LSB tags and overrides
insserv: warning: script ‘jailkit’ missing LSB tags and overrides
[….] Starting MySQL database server: mysqldPas de répertoire, connexion avec HOME=/
. ok

Alors j’effectue la manoeuvre au risque de tout casser, je supprime mysql 5.6, je ré-installe la 5.6 ?
Sur une autre debian, je n’ai eu aucun soucis.

Merci, thanks !

simplement installer mysqlnd peut etre ?

j’ai pareil en config
debian, ispConfig, 5.6.17-1 (mysql) , php 5.5.12

Thanks, Guillaume. For this blog post and the tip regarding PHP’s native driver. Solved my problem perfectly.

And of course thanks a million for maintaining the Dotdeb packages.

After I initially commented I seem to have clicked on the -Notify
me when new comments are added- checkbox and now whenever a comment
is added I get 4 emails with the exact same comment. Is there a means you can remove me from that service?
Many thanks!

Comments are closed.