Ubuntu 22.04安装phpMyAdmin需先解决MariaDB root密码认证问题:默认auth_socket插件禁用密码登录,必须执行ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password或创建专用用户并赋权,否则phpMyAdmin登录报#1045错误。
直接装 phpmyadmin 包不等于能用——mariadb 默认禁用密码登录 root,而 phpmyadmin 必须靠密码认证才能连上,跳过这步会卡在登录页报 #1045 cannot log in to the mysql server。
Ubuntu/Debian 系统:apt 安装后必须改 MariaDB root 认证方式
Ubuntu 22.04+ 默认用 auth_socket 插件验证 root 用户,它不走密码,phpMyAdmin 就没法登录。你得手动切回密码认证,或新建一个带密码的管理用户。
- 进 MariaDB:
sudo mariadb - 执行以下语句(替换
your_strong_password):ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your_strong_password'); - 或者更安全的做法:创建专用用户
CREATE USER 'pmaadmin'@'localhost' IDENTIFIED BY 'strong_password';<br>GRANT ALL PRIVILEGES ON *.* TO 'pmaadmin'@'localhost' WITH GRANT OPTION;<br>FLUSH PRIVILEGES;
- 退出后重启服务:
sudo systemctl restart mariadb
CentOS/RHEL 系统:epel 源 + 配置文件权限放开
CentOS 7/8 默认没 phpmyadmin 包,必须先启用 EPEL;装完后默认只允许本地访问,远程用浏览器打不开 /phpmyadmin 页面。
- 启用 EPEL:
sudo yum install epel-release -y(CentOS 7)或sudo dnf install epel-release -y(CentOS 8+) - 安装:
sudo yum install phpmyadmin - 编辑
/etc/httpd/conf.d/phpMyAdmin.conf,把<requireany></requireany>块里的 IP 范围扩到你的局域网,比如:Require ip 192.168.1.0/24
- 别忘了开放防火墙端口:
sudo firewall-cmd --permanent --add-service=http,然后firewall-cmd --reload
配置文件里最关键的三行不能漏
/etc/phpmyadmin/config.inc.php 或 /usr/share/phpmyadmin/config.inc.php 是实际生效的配置入口。光改 host 和 port 不够,auth_type 和 blowfish_secret 错一个,就会出现空白页或登录后立即登出。
-
$cfg['Servers'][$i]['host'] = 'localhost';—— 如果 MariaDB 在另一台机器,改成对应 IP,别写127.0.0.1(可能触发 socket 连接失败) -
$cfg['Servers'][$i]['auth_type'] = 'cookie';—— 强烈建议保持这个值,http方式会暴露用户名密码在 HTTP 头里 -
$cfg['blowfish_secret'] = '32_char_random_string_here';—— 必须填满 32 位随机字符,否则 session 加密失败,登录后秒退
很多人卡在“能打开登录页但输完账号密码就回到登录页”,八成是 blowfish_secret 没设、设短了,或者 Apache 的 mod_php 没加载导致 session 写不进临时目录。检查 /var/lib/php/sessions 权限和 SELinux 状态(RHEL/CentOS 上尤其容易被拦)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











