mysql如何批量重置数据库用户密码_MySQL批量修改密码Shell脚本

MySQL 5.7.6+ 必须用 ALTER USER 修改密码,SET PASSWORD 和 PASSWORD() 已弃用;需单引号包裹非空密码,用户存在且有权限;推荐配置文件传参、检查 password_expired/account_locked 状态,并用 -N -s -r 导出安全SQL。mysql 5.7+ 用 ALTER USER 修改密码报错 ERROR 1064MySQL 5.7.6 之后 SET PASSWORD 被弃用,直接写 ALTER USER 'user'@'host' IDENTIFIED BY 'newpass'; 才有效。老脚本里沿用 SET PASSWORD FOR 'u'@'h' = PASSWORD('p'); 会触发语法错误------ERROR 1064 (42000),因为 PASSWORD() 函数也从 8.0 起彻底移除。实操建议:统一用 ALTER USER 语句,兼容 5.7.6+ 和 8.0+密码必须用单引号包裹,且不能是空字符串(会报 ERROR 1819)如果用户不存在,ALTER USER 不报错但也不生效,得先 CREATE USER 或确认存在执行前确保当前连接用户有 UPDATE 权限在 mysql.user 表,或有 SYSTEM_USER 权限Shell 脚本批量改密码时 mysql 命令连不上常见现象是脚本跑着跑着卡住,或者报 ERROR 1045 (28000): Access denied,本质是 Shell 里没正确传参或权限不足。实操建议:不要把密码写死在命令行(如 mysql -uroot -p123456),会被 ps 看见;改用配置文件:mysql --defaults-extra-file=/tmp/.my.cnf -e "ALTER USER ..."/tmp/.my.cnf 内容必须是:clientuser=rootpassword=your_real_passhost=localhost且权限设为 chmod 600 /tmp/.my.cnf,否则 mysql 拒绝读取如果目标用户是远程 host(如 'app'@'10.%.%.%'),注意 host 在配置文件里也要匹配,或显式加 -h 参数批量改密码后应用连不上:忽略 password_expired 和 account_locked改完密码,应用仍报 Access denied for user,不是密码错了,而是用户被锁或强制改密。MySQL 5.7+ 默认开启密码过期策略,老用户可能处于 password_expired 状态;8.0+ 还可能因多次失败登录被 account_locked。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

相关推荐
m沐沐6 小时前
【深度学习】卷积神经网络 数据增强、保存最优模型实现,详细解读
人工智能·python·深度学习·机器学习·cnn·数据增强
天青色等烟雨..6 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python
极光代码工作室6 小时前
基于Spark的日志监控与分析平台
大数据·hadoop·python·spark·数据可视化
AOwhisky6 小时前
Python 学习笔记(第十三期)——运维自动化(下·前篇):远程命令执行——paramiko基础篇
运维·python·学习·云原生·自动化·运维开发·paramiko
浊酒南街7 小时前
subprocess.check_output函数介绍
python
TheBestRucy7 小时前
RAG知识库问答系统落地:从向量检索到上下文增强的全链路实践
人工智能·python·langchain·aigc·交互
前端世界7 小时前
MySQL 基础入门(学习第4天)——约束与 DML 操作详解
数据库·学习·mysql
AOwhisky7 小时前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
其实防守也摸鱼7 小时前
补天SRC新手入门指南:从0到1的漏洞挖掘之路
网络·python·学习·安全·web安全·数据挖掘·挖洞
lupai7 小时前
手机在网状态查询 API 新手实战指南
大数据·python·智能手机