You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Shell脚本修改MySQL 8.0密码时遇报错,求解决方案

解决MySQL 8.0 Shell脚本修改密码的警告问题

方法1:添加--connect-expired-password选项

这是警告直接提示的解决方式,把该选项加到你的mysql命令中即可。比如原来的修改密码命令:

mysql -u root -p旧密码 -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';"

修改后:

mysql -u root -p旧密码 --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';"

方法2:避免命令行明文输密码(更安全)

命令行明文输密码存在泄露风险,推荐用以下两种方式:

  • 环境变量传递:
# 设置临时环境变量存储旧密码
export MYSQL_PWD="旧密码"
# 执行修改密码命令
mysql -u root --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';"
# 清除环境变量
unset MYSQL_PWD
  • 使用选项文件:
    在用户目录下创建.my.cnf文件(权限设为600,防止其他用户读取),内容如下:
[client]
user=root
password=旧密码

然后执行修改命令:

mysql --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';"

方法3:交互模式适配脚本

如果想用交互逻辑,可通过here-doc实现,脚本中自动执行SQL语句:

mysql -u root --connect-expired-password << EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
EOF

执行时会提示输入旧密码,若要脚本自动输入,可结合管道:

echo "旧密码" | mysql -u root --connect-expired-password << EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
EOF

内容的提问来源于stack exchange,提问作者goku

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:03:25