今日分享主题:mysql root账号如何重置密码
前两天发现我的 mysql 数据库突然无法登录,但是上周还使用得是正常的,经过一番查找还是没有找到问题的原因。
DBA 给我的解释:我怀疑主机重启后,某些文件(user.*)就丢了,不知道啥原因。我记得之前你也是重启后遇到过相同问题。
既然这样,只好重置 root 账号密码了。具体 *** 作步骤如下
Step1:停止 mysql 服务
命令:systemctl stop mysqld #停掉MySQL
命令:systemctl status mysqld #查看状态
Step2:修改/etc/my.cnf配置,添加 skip_grant_tables=1 启动设置,注意要在[mysqld]行所在的下面添加。
Step3:重启 mysql 并查看状态
systemctl start mysqld
systemctl status mysqld
Step4:使用 mysql 命令连接到 mysql 服务器,重新设置root密码
use mysql #进入mysql数据库 select * from user#查询user表 查看是否有root账号,如果没有就需要 *** 作如下insert into 语句:
如果 user 表里面有 root 账号,则直接可以重置密码。
命令如下:update user set authentication_string=password('test123') where user='root'
FLUSH PRIVILEGES#刷新授权列表
再输入 exit 退出mysql
Step5:将步骤2中/etc/my.cnf 文件中添加的 skip_grant_tables=1 启动设置去掉,再执行一个systemctl restart mysql 命令重启 mysql 服务。
Step6:使用重置后的密码再登录时问题解决。
以win系统举例:
1.创建一个文件,eg: C:\mysql-init.txt
>=5.7.6后的版本,文件里写:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword'<=5.7.5的版本写:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword')2.停止mysql的服务
3.启动mysql服务:
cmd 进入 MYSQL_HOME/bin下,执行:
mysqld --init-file="C:\mysql-init.txt"如果原来在mysqld install有指定额外参数,这里启动的时候最好也把这些参数加上.
之后对于用户 'root'@'localhost'可以使用newpassword进行登录.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)