不确定要在正确的 StackExchange 论坛上发帖。如果没有,请告诉我!
工作环境:
- OpenSUSE 飞跃 15.4
- MariaDB:mariadb Ver 15.1 Distrib 10.7.7-MariaDB
- PHP 8.0.25 (cli)(内置:2022 年 10 月 31 日 12:00:00)(NTS)
基于 phpinfo(),PHP ini 文件为:/etc/php8/cli/php.ini
.
phpMyAdmin 5.1 运行良好。安装目录为:(命令安装时/usr/share/phpMyAdmin
默认创建的目录)。文件中的“famous”选项设置为(它确实有效!)。 zypper install phpMyAdmin
$cfg['Servers'][$i]['host']
/etc/phpMyAdmin/config.inc.php
localhost
然后我以这种方式升级了 phpMyAdmin 版本:
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/
然后我重新启动守护进程并测试连接:
srv-bla:~ # systemctl restart mysqld mariadb apache2
连接页面显示正确。然后我输入我的凭据,我被这个血腥的消息卡住了:
无法连接到服务器。mysqli::real_connect(): (HY000/2002): 没有那个文件或目录
我在许多网页上徘徊了一段时间。他们中的许多人建议修改config.inc.php
文件并将$cfg['Servers'][$i]['host']
选项设置为127.0.0.1
而不是localhost
. 不幸的是,这并不能解决我的问题......
我在编辑正确的config.inc.php
文件吗?实际上,我在服务器上只能找到一个:
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 日志也不友好。访问日志仅返回 200 个代码,这对我来说似乎很正常(phpMyAdmin 网页已正常提供)。错误日志为空... Mysql 日志也为空 ( /var/log/mysql/mysqld.log
)。
或者,当然,我已经检查过mysqld
服务(与服务相同mariadb
)是否正在运行。
任何帮助或想法将不胜感激!
编辑
从 MariaDB 的角度来看,套接字文件是:
srv-bla:~ # mariadb -u root -p
Enter password:
MariaDB [(none)]> \s
[...]
UNIX socket: /var/lib/mysql/mysql.sock
[...]
php.ini 文件的配置方式相同:
srv-bla:~ # cat /etc/php8/cli/php.ini | grep mysqli.default_socket
mysqli.default_socket = /var/lib/mysql/mysql.sock
对我来说,没有套接字问题......
我无法发表评论,所以除非它是解决方案,否则很快就会被删除。
您是否尝试过在定义服务器主机时更改
127.0.0.1
为?0.0.0.0
mysql
此外,继续运行
sudo systemctl restart
并mysql
可以mysqld
解决问题,或者如果它无法重新启动,至少会给你一些额外的信息。我的解决方案:
php -r 'phpinfo();'
终端命令返回的 PHP 配置文件为/etc/php8/cli/php.ini
.使用http://myserver.fr/phpinfo.php等 URL 调用的phpinfo()函数返回的 PHP 配置文件是.
/etc/php8/apache2/php.ini
我修改了
mysqli.default_socket = /var/lib/mysql/mysql.sock
这个其他配置文件中的行,可以再次成功调用 phpMyAdmin。请注意清空浏览器缓存是必要的!感谢您的帮助,希望这对其他人有帮助!