phpMyAdmin 4.9+ 移除了图形化新增用户功能,需手动操作 mysql.user 表或执行 CREATE USER SQL;MySQL 8.0 的 caching_sha2_password 插件、权限不足(如缺少 CREATE USER)、配置中 hide_db 或 DisableIS 启用均会导致该功能不可用。
phpMyAdmin 4.9+ 版本根本没“新增用户”按钮
不是你漏点、没刷新,是新版 phpmyadmin(4.9 及以后)直接移除了顶部导航栏的 user accounts 选项卡,连入口都藏起来了。官方明确表示这是为降低误操作风险,把用户管理逻辑收进底层数据表里。
你得手动进 mysql 数据库 → 找到 user 表 → 点 Browse 标签页,才能看到现有用户列表。想加新用户?只能自己写 SQL:CREATE USER 'xxx'@'localhost' IDENTIFIED BY 'pwd';,再配 GRANT 权限。
- 必须用有
SELECT权限的账号登录(比如 root),否则连mysql.user表都打不开 - 如果左侧数据库列表里压根没显示
mysql,检查config.inc.php是否设置了$cfg['Servers'][$i]['hide_db'] = 'mysql'; - phpMyAdmin 5.0+ 才支持图形化新建用户;4.9.x 用户只能靠 SQL 或降级回旧版
MySQL 8.0+ 的 caching_sha2_password 插件导致按钮消失
哪怕你用 root 登录,点了“添加用户账户”却没反应、页面静默刷新,大概率是 MySQL 8.0 默认认证插件不兼容——phpMyAdmin 旧版本的 mysqli 驱动握手失败,直接跳过整个用户管理流程。
验证方式:进 phpMyAdmin 的 Home → Settings → Features,看是否提示 Authentication plugin: caching_sha2_password。如果是,CREATE USER 操作会被静默拦截。
- 临时修复:命令行执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpass'; FLUSH PRIVILEGES; - 长期方案:升级 phpMyAdmin 至 5.0+,或确保配置中启用了
$cfg['Servers'][$i]['auth_type'] = 'cookie'; - 注意:改完插件后,还得重启 MySQL 服务,否则 phpMyAdmin 连接仍走旧协议
当前登录账号缺 CREATE USER 权限,按钮点了也白点
点击“添加用户账户”后表单清空、无报错、新用户不出现——这不是前端 bug,是 MySQL 拒绝了底层 CREATE USER 请求。phpMyAdmin 不会主动提示权限错误,只默默失败。
立即学习“PHP免费学习笔记(深入)”;
检查方式:在 phpMyAdmin 的 SQL 标签页执行 CREATE USER 'test'@'localhost' IDENTIFIED BY '123';,如果报错 #1227 - Access denied; you need (at least one of) the CREATE USER privilege(s),就坐实了。
- 授予权限必须用
GRANT CREATE USER ON *.* TO 'admin'@'localhost';,GRANT ALL PRIVILEGES在某些严格模式下也不包含它 - 确认当前身份:执行
SELECT CURRENT_USER();,结果必须和GRANT语句里的'u'@'h'完全一致(包括 host 是localhost还是127.0.0.1) - 如果用的是 Docker 或 cPanel 环境,可能默认禁用了该权限,得手动改 MySQL 启动参数或容器配置
配置文件里关掉了用户管理功能
有些一键包(AMPPS、XAMPP、cPanel 镜像)会在 config.inc.php 里硬编码关闭用户管理,哪怕你有权限、版本够新、插件兼容,按钮照样不出现。
打开你的 phpMyAdmin 配置文件,搜这三行:
$cfg['Servers'][$i]['hide_db'] = 'information_schema|performance_schema|mysql|sys'; $cfg['Servers'][$i]['DisableIS'] = true; $cfg['Servers'][$i]['AllowUserDropDatabase'] = false;
前两行任意一个生效,都会让 mysql 库不可见,进而切断用户管理路径。
-
hide_db里包含mysql→ 进不去user表 → 没法图形化操作 -
DisableIS为true→ phpMyAdmin 不查INFORMATION_SCHEMA→ 权限判断失效 → “添加用户”按钮不渲染 - 改完配置必须重启 Web 服务(Apache/Nginx),仅刷新浏览器无效
实际操作时,最常被忽略的是 host 匹配细节和权限层级——'user'@'localhost' 和 'user'@'%' 是两个账号,GRANT UPDATE ON db.* 和 GRANT UPDATE ON db.table 效果完全不同,而 phpMyAdmin 的 UI 层几乎不反馈这些差异。



















