在 MySQL 中修改密码有多种方式,以下是四种常见的实现方法

在 MySQL 中修改密码有多种方式,以下是四种常见的实现方法,适用于不同版本的 MySQL 和不同的使用场景。

1. 使用 SET PASSWORD 语句
适用场景
适用于 MySQL 5.7 及以上版本。

语法

SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');

示例

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

注意事项

  • PASSWORD() 函数在 MySQL 5.7 及以上版本中已被弃用,建议使用 ALTER USER。

2. 使用 ALTER USER 语句
适用场景
适用于 MySQL 5.7 及以上版本,推荐使用。

语法

ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';

示例

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

注意事项
如果用户不存在,会报错。可以先创建用户再修改密码。

3. 使用 UPDATE 语句直接修改 mysql.user 表
适用场景
适用于所有 MySQL 版本,但需要谨慎操作。

步骤

  • 登录 MySQL:
mysql -u root -p
  • 切换到 mysql 数据库:
USE mysql;
  • 更新密码:
UPDATE user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
  • 刷新权限:
FLUSH PRIVILEGES;

注意事项

  • 在 MySQL 5.7 及以上版本中,密码字段为 authentication_string。
  • 在 MySQL 5.6 及以下版本中,密码字段为 password。

4. 使用 mysqladmin 命令行工具
适用场景
适用于通过命令行修改密码。

语法

mysqladmin -u username -p old_password password new_password

示例

mysqladmin -u root -p old_password password new_password

注意事项

  • 需要知道旧密码才能修改。
  • 如果旧密码错误,会提示 Access denied。

5. 特殊情况:忘记 root 密码
如果忘记了 root 密码,可以通过以下步骤重置:

步骤
停止 MySQL 服务:

sudo systemctl stop mysql

以安全模式启动 MySQL:

sudo mysqld_safe --skip-grant-tables &

登录 MySQL(无需密码):

mysql -u root

修改密码:

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

退出并重启 MySQL 服务:

sudo systemctl restart mysql

总结

方法适用版本特点
SET PASSWORDMySQL 5.7 及以上简单,但 PASSWORD() 已弃用
ALTER USERMySQL 5.7 及以上推荐使用,语法简洁
修改 mysql.user 表所有版本直接操作数据库表,需谨慎
mysqladmin所有版本命令行工具,需知道旧密码

根据实际需求选择合适的方法,确保密码修改后及时测试连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻南瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值