不确定是否在正确的 StackExchange 论坛上发帖。如果没有,请告诉我!
工作环境:
- OpenSUSE Leap 15.4
- MariaDB:mariadb 版本 15.1 发行版 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
安装时默认创建的目录通过 zypper install phpMyAdmin
$cfg['Servers'][$i]['host']
命令)。文件中的“famous”选项/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
对我来说,没有插座问题......
答案1
对我来说的解决方案:
php -r 'phpinfo();'
终端命令返回的PHP配置文件是/etc/php8/cli/php.ini
。
返回的 PHP 配置文件phpinfo()使用 URL 调用的函数,例如http://myserver.fr/phpinfo.php是/etc/php8/apache2/php.ini
。
我修改了另一个配置文件中的行mysqli.default_socket = /var/lib/mysql/mysql.sock
,并可以再次成功调用 phpMyAdmin。请注意,必须清空浏览器缓存!
谢谢您的帮助,希望这对其他人也有帮助!