mysql修改密码

本文介绍在Linux环境下如何解决MySQL 5.7版本中root账户密码遗忘的问题,包括通过修改配置文件跳过密码验证、更新用户表以设置新密码等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚好在Linux上装好MySQL,但是在登录mysql时却出现密码错误了,要重置密码:

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

于是在网上搜索一通,终于解决,特意记下,如有错漏,望大神们指出,感谢!

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
vim /etc/my.cnf(注:windows下修改的是my.ini)

在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

[mysqld]
port       = 3306
skip-grant-tables
2.接下来我们需要重启MySQL:
/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
3.重启之后输入"mysql"即可进入mysql。
4.接下来就是用sql来修改root的密码
mysql> use mysql;
mysql> update user set password=password("你的新密码") where user="root";
mysql> flush privileges;
mysql> quit

执行后报错:

ERROR 1054(42S22) Unknown column ‘password’ in ‘field list’

错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string, 所以请使用一下命令:

mysql> update mysql.user set authentication_string=password('*******') where user='*******';  #修改密码成功
mysql> flush privileges;  #立即生效
mysql> quit

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!
### 如何更改 MySQL 数据库管理员或用户密码 对于 Windows 系统下修改 MySQL 的 root 密码,存在几种不同的方式来实现这一目标。如果忘记了当前的 root 密码或者想要更新它,则可以采用以下提到的方法之一。 #### 方法一:使用 SET PASSWORD 命令 当已经知道现有密码并能够正常访问 MySQL 服务时,可以通过执行 SQL 查询的方式来改变用户的密码: ```sql SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); FLUSH PRIVILEGES; ``` 这条语句会为指定账户设置新的认证凭证[^1]。 #### 方法二:通过命令行工具重置密码 如果无法登录到 MySQL 中(比如因为丢失了 root 密码),那么就需要停止 MySQL 服务,并启动一个跳过权限表验证的服务实例,在这种状态下可以直接进入数据库而不需要提供任何凭据。之后就可以像平常一样连接至 MySQL 并运行 `ALTER USER` 或者其他类似的指令来进行密码变更: ```bash net stop mysql # 关闭 MySQL 服务 mysqld --skip-grant-tables & mysql -u root # 不需要输入密码即可登录 ``` 接着在 MySQL 提示符下执行下面的 SQL 来修改密码: ```sql USE mysql; UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; quit ``` 最后重启 MySQL 服务使更改生效。 #### 方法三:利用 ALTER USER 语法 自 MySQL 5.7 版本以后推荐的方式是使用 `ALTER USER` 语句来安全地管理和调整用户账号属性,包括其身份验证信息: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; FLUSH PRIVILEGES; ``` 这种方法不仅适用于 root 账号,也可以用来处理普通用户的密码重置需求[^2]。 为了确保安全性,在完成上述任一步骤后应当立即重新加载授权表(`FLUSH PRIVILEGES`)以便让最新的配置即时应用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值