mysql中修改用户密码与权限更新的实践
发布时间 - 2026-01-27 00:00:00 点击率:次MySQL 8.0+ 修改密码须用 ALTER USER,不可 UPDATE;必须指定主机名并满足密码策略;权限变更后需显式执行 FLUSH PRIVILEGES;创建用户与授权应分离;远程访问需检查 bind-address、防火墙及云安全组。
MySQL 8.0+ 修改用户密码必须用 ALTER USER
MySQL 5.7 以前还能用 UPDATE mysql.user 直接改 password 字段,8.0 起字段名变成 authentication_string,且密码哈希逻辑变了,直接 UPDATE 会导致用户无法登录。最稳妥的方式是走官方授权语句:
ALTER USER 'myuser'@'localhost' IDENTIFIED BY 'NewPass123!';
注意两点:
• 必须带主机名(如 'myuser'@'localhost'),不能只写用户名
• 密码要满足默认的密码策略(至少 8 位、大小写字母+数字+特殊字符),否则报错 ERROR 1819 (HY000)
如果策略太严想临时放宽,可执行:
SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.policy = LOW;
修改权限后必须显式执行 FLUSH PRIVILEGES
用 GRANT 或 REVOKE 改完权限,MySQL 不会自动重载内存中的权限缓存。不刷新的话,新权限对已连接的会话无效,新连接也可能延迟生效(取决于缓存刷新时机)。
正确流程是:
- 先执行权限变更语句,例如:
GRANT SELECT, INSERT ON mydb.* TO 'myuser'@'localhost';
- 再立即执行:
FLUSH PRIVILEGES;
常见误区:以为 GRANT 自带刷新,或只在 MySQL 重启后才生效 —— 实际上不 FLUSH,哪怕断开重连,权限仍可能沿用旧缓存。
CREATE USER 和 GRANT 分开执行更可控
很多教程把创建用户和赋权写成一条 GRANT ... TO 'u'@'h' IDENTIFIED BY 'p',这在 MySQL 8.0+ 已被标记为过时语法,且隐含风险:
- 如果用户已存在,该语句会静默失败(不报错但不生效)
- 密码策略检查发生在 GRANT 阶段,失败时难以定位是创建问题还是授权问题
- 无法单独控制账号锁定状态(
ACCOUNT LOCK)或密码过期(PASSWORD EXPIRE)
推荐拆解:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'Pass123!' PASSWORD EXPIRE NEVER ACCOUNT UNLOCK;
GRANT SELECT ON mydb.users TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
远程访问用户要注意 host 值和防火墙
给远程用户授权时,'myuser'@'%' 看似方便,但实际常踩两个坑:
- MySQL 默认绑定
127.0.0.1,需确认bind-address在/etc/mysql/mysql.conf.d/mysqld.cnf中设为0.0.0.0或具体内网 IP - Linux 防火墙(如
ufw)默认拦掉 3306 端口,得手动放行:sudo ufw allow 3306
- 云服务器(如阿里云、AWS)还有安全组规则,必须额外配置入方向 TCP:3306
验证是否生效,别只在本地连,用另一台机器跑:
mysql -h your-server-ip -u myuser -p,否则容易误判权限配置成功。
权限更新不是改完就完的

FLUSH PRIVILEGES 这一步漏掉,问题会卡在“明明给了权限却没效果”的模糊地带;而远程访问的层层拦截,往往让人反复怀疑 SQL 写错了。
# mysql
# linux
# word
# 防火墙
# 云服务
# 端口
# 阿里云
# 云服务器
# sql
# Error
# 远程访问
# 只在
# 报错
# 云安
# 让人
# 已被
# 设为
# 错了
# 要注意
# 给了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
如何在Ubuntu系统下快速搭建WordPress个人网站?
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
Laravel怎么使用artisan命令缓存配置和视图
音响网站制作视频教程,隆霸音响官方网站?
Python进程池调度策略_任务分发说明【指导】
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
无锡营销型网站制作公司,无锡网选车牌流程?
智能起名网站制作软件有哪些,制作logo的软件?
高防服务器租用首荐平台,企业级优惠套餐快速部署
Laravel怎么上传文件_Laravel图片上传及存储配置
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何安全更换建站之星模板并保留数据?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
Laravel如何使用Service Container和依赖注入?(代码示例)
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
如何在阿里云部署织梦网站?
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel项目结构怎么组织_大型Laravel应用的最佳目录结构实践
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何快速使用云服务器搭建个人网站?
Laravel如何记录自定义日志?(Log频道配置)
如何用VPS主机快速搭建个人网站?
Python函数文档自动校验_规范解析【教程】
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Laravel如何使用.env文件管理环境变量?(最佳实践)
如何在建站主机中优化服务器配置?
Android GridView 滑动条设置一直显示状态(推荐)
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Laravel storage目录权限问题_Laravel文件写入权限设置
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
Laravel如何创建自定义Facades?(详细步骤)
EditPlus 正则表达式 实战(3)
QQ浏览器网页版登录入口 个人中心在线进入
Bootstrap CSS布局之列表
Laravel如何处理和验证JSON类型的数据库字段
iOS正则表达式验证手机号、邮箱、身份证号等
怎么用AI帮你为初创公司进行市场定位分析?
如何用美橙互联一键搭建多站合一网站?
JS实现鼠标移上去显示图片或微信二维码

