phpmyadmin 6.0 默认不显示全局权限,须启用配置存储并修复认证插件兼容性:将 mariadb 用户认证插件改为 mysql_native_password,创建并配置 controluser(pma),且登录用户需具备 grant option 权限。
phpmyadmin 6.0 默认无法管理 mariadb 用户权限,除非你手动启用配置存储并修复认证插件兼容性 —— 这是多数人卡住的第一步。
确认 MariaDB 用户认证插件是否为 mysql_native_password
phpMyAdmin 6.0 的 mysqli 驱动不支持 unix_socket 插件,而 MariaDB 10.4+ 默认启用它。若用户(尤其是 'root'@'localhost')用该插件认证,phpMyAdmin 登录后进“Users”页会直接报错或权限区域空白。
- 登录 MariaDB 命令行执行:
SELECT User, Host, plugin FROM mysql.user WHERE User = 'root'; - 若
plugin列显示unix_socket,必须改回:ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('your-pass'); - 修改后务必执行:
FLUSH PRIVILEGES; - 同时检查全局配置:
/etc/mysql/mariadb.conf.d/50-server.cnf中[mysqld]段是否含default_authentication_plugin = mysql_native_password
启用 phpMyAdmin 配置存储(否则“Global privileges”选项不显示)
phpMyAdmin 6.0 默认隐藏高级权限界面,必须启用配置存储才能看到“Global privileges”标签页和“Check All”按钮 —— 这不是 UI bug,而是功能开关未打开。
- 创建专用控制用户:
CREATE USER 'pma'@'localhost' IDENTIFIED BY 'strong-pass'; - 建库并授权:
CREATE DATABASE pma; GRANT ALL ON pma.* TO 'pma'@'localhost'; - 导入结构:
mysql -u pma -p pma (路径按实际安装位置调整) - 在
config.inc.php中补全以下配置:$cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'strong-pass'; $cfg['Servers'][$i]['pmadb'] = 'pma';
在 Users 页面正确操作全局权限
即使配置存储已启用,phpMyAdmin 6.0 的权限入口也变了:旧版的“Edit privileges”按钮被整合进用户详情页,且仅对 root 或带 GRANT OPTION 的账户可见。
- 确保你当前登录的是
'root'@'localhost'或拥有GRANT OPTION的用户(SHOW GRANTS FOR CURRENT_USER;可验证) - 点击顶部菜单「User accounts」→ 找到目标用户 → 点击右侧「Edit privileges」链接(不是「Edit account」)
- 页面加载后,向下滚动到「Global privileges」区域 —— 这里才可勾选
SELECT、INSERT等,避免误点「Check All」授予SHUTDOWN或FILE - 修改后必须点右上角「Go」按钮提交,phpMyAdmin 不自动刷新权限缓存
注意 MariaDB 11.0+ 的 information_schema 权限限制
phpMyAdmin 6.0 默认尝试读取 INNODB_METRICS 等系统表做性能展示,但 MariaDB 11.0+ 对非特权用户禁用了这些表访问,会导致权限页加载缓慢或部分功能失效。
- 临时解决:用 root 登录后,在 SQL 标签页执行:
GRANT SELECT ON performance_schema.* TO 'pma'@'localhost'; - 长期方案:在
config.inc.php中禁用相关功能:$cfg['ShowDatabasesCommand'] = false; $cfg['Server']['DisableIS'] = true;
- 不要依赖 phpMyAdmin 自动检测权限状态 —— 它可能因查询失败而静默跳过某些区域,建议用命令行
SHOW GRANTS FOR 'user'@'host';交叉验证
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











