Localhost : connexion à la base SQL impossible via PHP (après màj vers Buster)

Tags: #<Tag:0x00007f63f4a49390> #<Tag:0x00007f63f4a492a0>

Hello,
Je viens de procéder à la mise à jour de Debian 9 vers Debian 10 Buster.
Depuis, je ne peux plus (en local) me connecter à ma base SQL via PHP.
Le serveur PHP semble fonctionner correctement et la base SQL (MariaDB) est bien présente (je peux m’y connecter dans un terminal), mais dès qu’une page PHP tente de se connecter à la base SQL, ça ne fonctionne plus.

Par exemple, lorsque j’essaye d’accéder à phpmyadmin, j’ai le message d’erreur suivant :
“Il manque l’extension mysqli. Veuillez vérifier votre configuration PHP. Voyez notre documentation pour plus de détails.”

Avec adminer, je peux accéder à la page d’accueil, mais lorsque j’entre mes identifiants, il m’indique :
“Aucune des extensions PHP supportées (MySQLi, MySQL, PDO_MySQL) n’est disponible.”

Pourtant, les paquets php-mysql, php7.0-mysql et php7.3-mysql semblent bien installés.

Je n’ai pas trouvé de solution adéquate sur le Web.
De quelle façon puis-je résoudre ce problème ?
Merci !

L’interface mysql_ avec mysql/maraidb a été abandonné dans les dernières versions de PHP. Il faut mettre à jour phpmyadmin qui doit être une vielle version. Mais pour être sur de ce diagnostic, il faudrait regarder

  • Si en tant que www-data on peut accéder en localhost avec les compte/mots de passe utilisés par phpmyadmin sur mysql
  • Si mysqli est chargé (/etc/php/7.0/mods-available/mysqli.ini)
  • Si il y a des messages dans le error.log

Bonjour,

Le paquet phpmyadmin n’est plus fourni avec buster. Il faut donc l’installer manuellement ou utiliser adminer.

Tu ne devrais plus avoir de paquet php7.0-mysql. S’il est toujours présent, il est probable que tu aies installé par le passé des paquets PHP avec leur numéro de version. Il faut normalement éviter cela car les paquets php***7.0*** sont alors marqués comme installés manuellement et ne seront pas désinstallés lors d’une mise à niveau.
Il faudrait vérifier avec :

apt list \*php\* --installed

Si des paquets apparaissent en version 7.0, il faudra les supprimer via :

apt autoremove --purge php7.0\* libapache2-mod-php7.0

Et réinstaller les éventuels paquets manquant sans préciser le numéro de version. Par exemple :
apt install php-curl plutôt que apt install php7.3-curl

Tu peux vérifier les modules PHP actifs, dans ton cas mysqli et pdo-mysql, en regardant lmes liens symboliques sous /etc/php/7.3/apache2/conf.d/ (ou ls -l /etc/php/7.3/fpm/conf.d/, si tu utilises php-fpm).

Hello,
Merci pour vos réponses rapides.
Je n’avais pas vu les modifications dont vous parlez concernant mariadb/PHP et phpmyadmin/Buster.
J’ai regardé les points que vous mentionnez (dans la mesure de mes compétences) et tout semblait correct (modules PHP, mysqli.ini, error.log…).

J’ai donc commencé par désinstaller phpmyadmin et les paquets php7.0, puis j’ai réinstallé PHP et mariadb, et après quelques comportements bizarres résolus en vidant le cache de mon navigateur (?), tout est à nouveau fonctionnel.

Au passage, j’ai lu quelque part que mariadb n’accepte plus les connexions PHP avec le compte root et qu’il faut créer un utilisateur pour ça, ce que j’ai fait. Je ne sais pas si ça a un lien avec mon problème précédent.

Il ne me reste que phpmyadmin à réinstaller, mais je verrai ça plus tard. J’utilise majoritairement adminer de toute façon.

Bonne fin de journée à vous !