Ich bin mir nicht sicher, ob ich im richtigen StackExchange-Forum poste. Wenn nicht, lass es mich wissen!
Arbeitsumfeld:
- OpenSUSE Leap 15.4
- MariaDB: MariaDB Version 15.1 Distrib 10.7.7-MariaDB
- PHP 8.0.25 (cli) (erstellt: 31. Okt. 2022 12:00:00) (NTS)
Basierend auf phpinfo() lautet die PHP-INI-Datei: /etc/php8/cli/php.ini
.
phpMyAdmin 5.1 funktioniert gut. Das Installationsverzeichnis ist: /usr/share/phpMyAdmin
(Standardverzeichnis, das bei der Installation erstellt wirdüber zypper install phpMyAdmin
Befehl). Die „berühmte“ Option $cfg['Servers'][$i]['host']
aus /etc/phpMyAdmin/config.inc.php
der Datei ist auf eingestellt localhost
(und sie funktioniert!).
Ich habe die Version von phpMyAdmin dann folgendermaßen aktualisiert:
srv-bla:~ # mv /usr/share/phpMyAdmin /usr/share/phpMyAdmin.old
srv-bla:~ # mkdir /usr/share/phpMyAdmin
srv-bla:~ # wget https://files.phpmyadmin.net/phpMyAdmin/5.2.0/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/
Anschließend starte ich die Daemons neu und teste die Verbindung:
srv-bla:~ # systemctl restart mysqld mariadb apache2
Die Verbindungsseite wird rechts angezeigt. Ich gebe dann meine Anmeldeinformationen ein und bleibe bei dieser blöden Meldung hängen:
Verbindung zum Server nicht möglich. mysqli::real_connect(): (HY000/2002): Keine solche Datei oder kein solches Verzeichnis vorhanden
Ich habe eine Weile auf zahlreichen Webseiten gestöbert. Viele von ihnen schlagen vor, die Datei zu ändern und die Option auf statt auf config.inc.php
zu setzen . Leider$cfg['Servers'][$i]['host']
127.0.0.1
localhost
das behebt das Problem für mich nicht ...
Bearbeite ich die richtige config.inc.php
Datei? Tatsächlich kann ich auf dem Server nur eine finden:
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
Apache-Protokolle sind auch nicht benutzerfreundlich. Access-Protokolle geben nur 200 Codes zurück, was mir normal erscheint (die phpMyAdmin-Webseite wird ordnungsgemäß bereitgestellt). Fehlerprotokolle sind leer ... MySQL-Protokolle sind ebenfalls leer ( /var/log/mysql/mysqld.log
).
Natürlich habe ich überprüft, ob der mysqld
Dienst (dasselbe wie mariadb
Dienst) ausgeführt wird.
Ich wäre für jede Hilfe und Idee sehr dankbar!
BEARBEITEN
Die Socket-Datei ist aus Sicht von MariaDB:
srv-bla:~ # mariadb -u root -p
Enter password:
MariaDB [(none)]> \s
[...]
UNIX socket: /var/lib/mysql/mysql.sock
[...]
Die Datei php.ini wird auf die gleiche Weise konfiguriert:
srv-bla:~ # cat /etc/php8/cli/php.ini | grep mysqli.default_socket
mysqli.default_socket = /var/lib/mysql/mysql.sock
Für mich gibt es kein Socket-Problem ...
Antwort1
Lösung für mich:
php -r 'phpinfo();'
Die von einem Befehl in einem Terminal zurückgegebene PHP-Konfigurationsdatei ist /etc/php8/cli/php.ini
.
Die von derphpinfo()Funktion, die mit einer URL wiehttp://myserver.fr/phpinfo.phpIst /etc/php8/apache2/php.ini
.
Ich habe die Zeile mysqli.default_socket = /var/lib/mysql/mysql.sock
in dieser anderen Konfigurationsdatei geändert und konnte phpMyAdmin erneut erfolgreich aufrufen. Beachten Sie, dass das Leeren des Browser-Cache notwendig war!
Danke für die Hilfe, und ich hoffe, dass dies anderen hilft!