在 MySQL 数据库管理中,账号权限管理是保障数据安全的重要环节。本文将详细介绍 MySQL 账号的创建、删除以及密码找回的核心操作,帮助开发者和运维人员掌握基础但关键的账号管理技能。
用户名:支持包含字母、数字、下划线的字符串(如 app_user)
登录主机:指定允许登录的客户端地址,常见值包括:
'%':允许所有主机登录(生产环境需谨慎)
'
localhost':仅限本地服务器登录
'192.168.1.%':允许指定网段登录
一、创建 MySQL 账号:从权限控制开始
1. 基础账号创建语法
CREATE USER '用户名'@'登录主机' IDENTIFIED BY '密码';
示例:创建一个允许远程登录的管理账号
CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPassword123!';
2. 权限分配最佳实践
通过GRANT语句赋予账号对应权限:
GRANT 权限列表 ON 数据库.表 TO '用户名'@'登录主机';
常用权限组合:
完全控制:ALL PRIVILEGES
只读权限:SELECT, SHOW VIEW
数据操作:SELECT, INSERT, UPDATE, DELETE
生产环境建议:
删除前请确认账号关联的应用已停止使用
保留root@
localhost等内置管理账号
定期清理mysql.user表中的闲置账号
使用 8-32 位混合大小写字母、数字、特殊符号的组合
生产环境禁用IDENTIFIED BY ''空密码设置
定期通过SET PASSWORD命令更新密码
-- 赋予app_user对商城数据库的读写权限GRANT SELECT, INSERT, UPDATE, DELETE ON mall_db.* TO 'app_user'@'192.168.1.%';-- 立即生效权限变更FLUSH PRIVILEGES;
二、删除 MySQL 账号:彻底清除访问权限
1. 安全删除账号的两步法
-- 第一步:回收所有权限REVOKE ALL PRIVILEGES, GRANT OPTION FROM '用户名'@'登录主机';-- 第二步:删除账号DROP USER '用户名'@'登录主机';
2. 批量删除与通配符使用
-- 删除所有以temp_开头的临时账号SELECT CONCAT('DROP USER ''', user, '''@''', host, ''';')FROM mysql.userWHERE user LIKE 'temp_%' INTO OUTFILE '/tmp/delete_scripts.sql';-- 执行生成的删除脚本(需具备文件操作权限)mysql -u root -p < /tmp/sjbzb.sjbt.org.sql
3. 注意事项
三、密码找回:三种场景下的解决方案
场景 1:普通用户忘记密码(拥有 SUPER 权限)
-- 登录后直接修改自己的密码ALTER USER USER() IDENTIFIED BY '新密码';-- 或指定修改其他用户密码(需管理员权限)ALTER USER 'user'@'host' IDENTIFIED BY '新密码';
场景 2:root 密码丢失(Windows 环境)
- 停止 MySQL 服务:net stop mysql80
- 以安全模式启动:mysqld --skip-grant-tables --console
- 无需密码直接登录:mysql -u root
- 修改密码:
USE mysql;UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root';FLUSH PRIVILEGES;
- 关闭安全模式并重启服务
场景 3:Linux 环境下的安全模式操作
# 1. 停止服务systemctl stop mysql# 2. 启动安全模式mysqld_safe --skip-grant-tables &# 3. 登录并修改密码(MySQL 8.0+语法)mysql -u rootALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'sjbt.org!23';
密码策略建议
四、版本兼容性注意事项
|
功能 |
MySQL 5.7 |
MySQL 8.0+ |
|
密码加密 |
mysql_native_password(默认) |
caching_sha2_password(默认) |
|
账号删除 |
支持 DROP USER IF EXISTS 语法 |
增强的权限回收机制 |
|
安全模式启动 |
mysqld --skip-grant-tables |
相同,但密码修改语法略有变化 |
总结:构建安全的账号管理体系
通过合理的账号创建策略、规范的权限分配、定期的账号清理以及科学的密码管理,能够有效提升 MySQL 数据库的安全性。建议在生产环境中:
- 采用最小权限原则分配账号权限
- 定期审计mysql.user表中的账号列表
- 对重要账号启用 SSL 加密连接
- 结合堡垒机等工具实现账号的集中管理
掌握这些基础操作后,管理员可以更高效地管理数据库访问权限,在保障数据安全的同时提升运维效率。遇到具体问题时,建议先在测试环境验证操作步骤,避免对生产环境造成影响。
编辑推荐:
- MySQL 账号管理全解析:创建、删除与密码找回03-01
- MySQL企业版免费开启,强先体验03-01
- MySQL 8.4 版本新特性介绍03-01
- MySQL大结果集的优化思路03-01
- 第37期 MySQL索引下推03-01
- 第36期 MySQL开启optimizer trace功能03-01
- 一起免费考 MySQL OCP 认证啦03-01
- mysql如何保证主从一致性03-01
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- MySQL企业版免费开启,强先体验
MySQL企业版免费开启,强先体验
26-03-01 - MySQL大结果集的优化思路
MySQL大结果集的优化思路
26-03-01 - 第37期 MySQL索引下推
第37期 MySQL索引下推
26-03-01 - 一起免费考 MySQL OCP 认证啦
一起免费考 MySQL OCP 认证啦
26-03-01 - 第39期 MySQL给邮箱,身份证类似的字段添加索引的方法
第39期 MySQL给邮箱,身份证类似的字段添加索引的方法
26-03-01 - 数据库管理-第329期 MySQL 30周年生日快乐(20250525)
数据库管理-第329期 MySQL 30周年生日快乐(20250525)
26-03-01 - 第25期 MySQL部分复制
第25期 MySQL部分复制
26-03-01 - 百亿大表的实时分析:华安基金 HTAP 数据库的选型历程与 TiDB 使用体验
- 主从从库MTS HANG死一列
主从从库MTS HANG死一列
26-03-01 - 主从从库MTS HANG死一列
主从从库MTS HANG死一列
26-03-01
