必须用root或具备CREATE USER权限的账号登录,否则“添加用户账户”按钮点不动、页面空白或跳转报错;点按钮没反应需查三件事:当前账号是否真有CREATE USER/INSERT/UPDATE权限(尤其对mysql.user表)、Host字段是否为空(须填localhost等非空值)、密码是否全为空格(哪怕一个空格也失败)。

必须用 root 或具备 CREATE USER 权限的账号登录,否则“添加用户账户”按钮点不动、页面空白或跳转报错——普通账号根本看不到权限入口。
点“添加用户账户”没反应?先查三件事
常见静默失败不是前端卡了,而是后端权限或表单校验被拦下:
- 当前登录 MySQL 账号是否真有
CREATE USER、INSERT和UPDATE权限(尤其对mysql.user表)?root一般没问题,但自建管理账号常漏授GRANT OPTION -
Host字段是否为空?phpMyAdmin 5.2 会拒绝提交空主机,必须填localhost、192.168.1.100或具体域名,别留白 - 密码字段是否全为空格?哪怕只输一个空格,也会创建失败;建议勾选“使用密码生成器”,避免手误
Host 填错,新用户连都连不上
'user'@'localhost' 和 'user'@'127.0.0.1' 在 MySQL 里是两个完全不同的用户,Linux/macOS 命令行默认走 socket(匹配 localhost),Windows 默认走 TCP(匹配 127.0.0.1),填错就直接 #1045 - Access denied。
- Web 应用和数据库同服务器 → 填
localhost - 远程运维固定 IP → 填具体地址,如
192.168.1.100,别用%,否则暴露在公网 - 测试环境需临时开放 → 用网段限定,如
192.168.%.%,比%安全得多 - 填域名?确保服务端
skip_name_resolve=OFF,且 DNS 解析稳定,否则连接超时
权限不生效?漏点了“重新载入权限”
phpMyAdmin 5.2 不自动执行 FLUSH PRIVILEGES,即使页面显示“用户已添加”,MySQL 内部缓存仍是旧的。不点这一步,新用户无论用 phpMyAdmin 还是命令行都进不去。
立即学习“PHP免费学习笔记(深入)”;
- 创建并设好权限后,回到“用户账户”列表页
- 右上角找两个循环箭头图标,点击“重新载入权限”
- 这步等价于手动执行
FLUSH PRIVILEGES,MySQL 5.7 及更早版本必须做;8.0+ 多数情况自动生效,但保险起见仍建议点 - 如果点了还连不上,立刻检查
Host是否和实际连接方式一致(比如 PHP 用localhost连,但你建的是'user'@'127.0.0.1')
只读用户为什么查不了表?SELECT 权限必须手动指定库
勾了全局 SELECT 没用——它只对后续新建的库生效,已有库(如 wordpress、analytics)必须单独授权。Laravel 等框架还会访问 information_schema,不加这个库的 SELECT 权限,SHOW CREATE TABLE 就直接报 #1227 - SUPER privilege(s) required。
- 创建用户后,回到用户列表,点击该用户右侧的“编辑权限”
- 切到“数据库特定权限”,从下拉菜单选目标库(如
analytics),再勾SELECT - 同样操作,再为
information_schema单独勾一次SELECT - 生产环境严禁勾
GRANT OPTION,也别碰FILE、SHUTDOWN、SUPER这类高危权限
最易被忽略的其实是 Host 和 FLUSH 的组合:填对了 Host 却忘了刷新权限,或刷了权限但 Host 匹配不上真实连接路径——这两处一错,其他所有操作都白搭。



















