今日分享主题: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:使用重置后的密码再登录时问题解决。
mysql数据库密码忘记了,第一可以通过修改文件配置来重新设置密码,第二可以重新下载mysql就可以重新设置密码了。在我们使用数据库的时候通常都会使用root用户登录,所以就需要设置密码,但是这个密码是不可见的,而且在使用Navicat Premium连接数据库的时候也需要使用密码才可以连接。当我们忘记密码时,我们有两种办法来解决。
第一打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址,按win+R打开cmd命令提示符并进入刚刚所复制的路径中,输入命令mysqld --skip-grant-tables,然后敲回车,此时就跳过了用户验证过程,注意:输入此命令之后该命令窗口就无法操作了,此时应该从新再打开一个新的命令窗口。在输入此命令之前先在任务管理器中(ctrl+alt+del)结束mysqld.exe进程。然后直接在命令行输入mysql,不需要带任何登录参数和密码,直接回车就可以登录上数据库。 输入show databases;可以看到所有数据库的内容就说明已经登录成功了,就可以使用了。如果想更改root密码,输入update user set password=password('123456') where user='root' and host='localhost'就可以修改密码了。
第二可以将电脑中的mysql文件夹和程序都删除,重新下载并配置mysql,这样你的数据库就是一个新的无密码的数据库了。
方法1 用SET PASSWORD命令1
1、打开终端win+r输入cmd回车即可打开;
2、通过mysql -u用户名 -p指定root用户登录MySQL,输入后回车会提示输入密码。
3、修改MySQL的root用户密码,格式:mysql>set password for 用户名@localhost = password('新密码')例子:mysql>set password for root@localhost = password('shapolang')上面例子将用户root的密码更改为shapolang ;
重新登录,输入新密码shapolang就ok了;
END
方法2 用mysqladmin
1
1、打开终端win+r输入cmd回车即可打开;
2、修改MySQL的root用户密码格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -pshapolang password 123456
上面例子将用户root原来的密码shapolang改为新密码123456
重新登录,输入新密码123456就ok了;
END
方法3 用UPDATE直接编辑user表
1
1、首先登录MySQL。
2、 连接权限数据库: use mysql。3、改密码:update user set password=password("shapolang") where user="root"(别忘了最后加分号) 。 4、刷新权限(必须步骤):flush privileges
重新登录,输入新密码shapolang就ok了;
END
方法4 忘记root密码的时候
1、关闭正在运行的MySQL服务。
2、打开DOS窗口,转到mysql\bin目录。 3、 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 4、再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),输入mysql回车,如果成功,将出现MySQL提示符 >。 6、连接权限数据库: use mysql。 7、改密码:update user set password=password("root") where user="root"(别忘了最后加分号) 。 8、刷新权限(必须步骤):flush privileges 。 9、退出 quit。
重启mysql服务,使用用户名root和刚才设置的新密码root登录就ok了;
步骤阅读
END
注意事项
mysql相关命令如果无法执行,可以将命令所在目录加入环境变量中,或者进到命令所在目录再执行
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)