MySQL 用户管理基础
出于安全考虑,生产环境中不应所有操作都由 root 执行。MySQL 的用户信息主要存储在 mysql.user 表中,理解其结构是管理权限的前提。
查看用户信息
可以通过以下 SQL 查询当前用户列表及加密后的密码字段:
SELECT User, Host, authentication_string FROM mysql.user;
关键字段包括 Host(允许登录的主机)、User(用户名)以及 authentication_string(加密密码)。
创建与删除用户
创建用户时必须明确指定主机名,因为同一用户名在不同主机下被视为不同账户。
CREATE USER 'maomi-9527'@'localhost' IDENTIFIED BY 'StrongPass123!';
语法核心是 '用户名'@'主机名'。如果只写用户名而不指定主机,默认匹配 %,这可能导致后续删除或授权时出现意外。
删除用户同理,必须精确匹配主机名:
DROP USER 'maomi-9527'@'localhost';
若省略主机名,MySQL 可能找不到对应的记录而报错。
修改密码与策略
在 MySQL 8.0+ 版本中,推荐使用 ALTER USER 语句修改密码,旧版的 PASSWORD() 函数已逐渐废弃。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
如果你需要直接操作底层表(仅限紧急恢复场景),也可以更新 mysql.user 表,但务必谨慎:
UPDATE mysql.user SET authentication_string = PASSWORD('你的新密码') WHERE user = 'root' AND host = 'localhost';


