[RESOLU] Mise à jour phpMyAdmin 5.1 > 5.2 : Impossible de se connecter au serveur MySQL

Petit nouveau ! | 3 Messages

09 déc. 2022, 15:44

Bonjour,

Mon environnement de travail :
  • OpenSUSE Leap 15.4
  • MariaDB : mariadb Ver 15.1 Distrib 10.7.7-MariaDB
  • PHP 8.0.25 (cli) (built: Oct 31 2022 12:00:00) ( NTS )
Selon le retour de phpinfo(), le fichier de configuration PHP est : /etc/php8/cli/php.ini.

phpMyAdmin 5.1 fonctionne parfaitement. Le répertoire d'installation est : /usr/share/phpMyAdmin (répertoire par défaut créé avec une installation classique via la commande zypper install phpMyAdmin). La "fameuse" option $cfg['Servers'][$i]['host'] du fichier /etc/phpMyAdmin/config.inc.php est renseignée avec localhost (et ça marche !).

La mise à jour de phpMyAdmin 5.1 vers 5.2 a été effectuée de la manière suivante :

Code : Tout sélectionner

srv-bla:~ # mv /usr/share/phpMyAdmin /usr/share/phpMyAdmin.old srv-bla:~ # mkdir /usr/share/phpMyAdmin srv-bla:~ # wget [...] phpMyAdmin-5.2.0-all-languages.tar.gz srv-bla:~ # tar -xzf phpMyAdmin-5.2.0-all-languages.tar.gz srv-bla:~ # mv phpMyAdmin-5.2.0-all-languages/* /usr/share/phpMyAdmin/ srv-bla:~ # systemctl restart mysql mysqld mariadb apache2

La page de connexion s'affiche correctement. Après saisie du login et mot de passe, j'obtiens le message d'erreur suivant :
Impossible to connect to server. mysqli::real_connect(): (HY000/2002): No such file or directory
J'ai erré un moment sur Internet. La très grande majorité des posts suggèrent de modifier le fichier config.inc.php et de remplacer $cfg['Servers'][$i]['host'] = 'localhost' par $cfg['Servers'][$i]['host'] = '127.0.0.1'. Malheureusement, cette solution ne fonctionne pas pour moi...

Est-ce que j'édite le bon fichier config.inc.php ? Je n'en trouve qu'un sur mon serveur :

Code : Tout sélectionner

srv-bla:~ # updatedb srv-bla:~ # locate config.inc.php /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.rpmnew /etc/phpMyAdmin/config.inc.php.rpmsave

Les logs Apache ne sont pas bavards. Les access logs renvoient des codes 200 uniquement, ce qui me semble normal car la page de connexion est bien affichée. Les error logs sont vides. Les logs de mySQL aussi...(/var/log/mysql/mysqld.log).

Bien entendu, j'ai vérifié que le service mysqld (même service que celui intitulé mariadb) est bien en cours de fonctionnement.

Concernant les sockets, le fichier déclaré pour mariadb et PHP est identique :

Code : Tout sélectionner

srv-bla:~ # mariadb -u root -p Enter password: MariaDB [(none)]> \s [...] UNIX socket: /var/lib/mysql/mysql.sock [...]

Code : Tout sélectionner

srv-bla:~ # cat /etc/php8/cli/php.ini | grep mysqli.default_socket mysqli.default_socket = /var/lib/mysql/mysql.sock

Donc pas un souci de socket a priori non plus...

Merci par avance pour l'aide et les idées sur des points que j'aurais omis de vérifier.

Thomas

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9663 Messages

10 déc. 2022, 12:40

PHPmyadmin est un "simple" script PHP.
Il se connecte donc à ta base de données de la même façon qu'un script PHP le ferrait, donc tu peux rapidement faire un script PHP avec PDO ou mysqli pour vérifier si tes paramètres de connexion sont corrects.
Selon le retour de phpinfo(), le fichier de configuration PHP est : /etc/php8/cli/php.ini.
As-tu bien exécuté la commande phpinfo() dans un script PHP (via Apache), et non pas en ligne de commande ?
Car cela peut avoir une incidence sur le php.ini utilisé
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9663 Messages

10 déc. 2022, 12:42

Une autre piste : essaye de remplacer ton fichier de configuration config.inc.php par un clean de la version 5.2.

Car si tu traines un fichier de config d'une ancienne version ça pourrait poser des problèmes...
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 3 Messages

13 déc. 2022, 17:17

Merci @rthur !

En effet, le fichier de conf PHP renvoyé par phpinfo() via une page Web est différent : /etc/php8/apache2/php.ini. Bien vu ! En revanche, ça ne résout pas le problème en renseignant le chemin d'accès vers le socket mysql...

Je regarde pour réinstaller phpMyAdmin et virer manuellement le répertoire /etc/phpMyAdmin pour avoir un fichier de conf phpMyAdmin tout neuf. Je te tiens au courant.

Thomas

Petit nouveau ! | 3 Messages

27 déc. 2022, 15:09

Bonjour,

Après de nouveaux tests aujourd'hui, il semble que la modification du bon fichier de conf PHP aie réglé le problème, contrairement à ce que j'ai écris dans mon dernier suivi (probablement une histoire de cache navigateur qui m'a donné l'impression que le problème était toujours là). Merci encore @rthur pour l'aiguillage !

Thomas