admin 管理员组文章数量: 887021
有时mysql的root密码容易忘记,这时候可以通过进入mysql的安全模式–skip-gratn-tables来修改密码,步骤依次如下。
1、设置root密码, 并授予权限
1)进入mysql的bin目录
cd D:\DBtools\mysql_5_7_33_winx64\bin
2)用管理员打开一个CMD黑框框A,如图(1)所示, 输入如下命令,来关闭mysql服务
## 切换为CMD模式
cmd
## 禁用mysql服务
net stop mysql
3) 进入mysql安全模式
mysqld -nt --skip-grant-tables
如图(2)所示:
4)再用管理员权限重新打开一个CMD黑框框B,依次输入如下命令,如图(3)所示。
//方法一,适用于5.7.31以下的版本
mysql -uroot
use mysql;
flush privileges;
-- 对所有的数据库,都有读写权限(方法一)
grant all privileges on *.* to 'root'@'localhost' identified by '你的密码' with grant option;
-- 只针对的TestDB数据库,有读写权限(方法二)
grant all privileges on TestDB.* to 'root'@'localhost' identified by '你的密码' with grant option;
flush privileges;
exit;
//方法二:适用于5.7.32以上(5.7.32 ~ 8.x)的版本
mysql -uroot
use mysql;
flush privileges;
alter user 'root'@'localhost' identified by '你的密码';
flush privileges;
exit;
5)授予权限
授权root@localhost用户,对某某数据库的读写权限,这一步很关键,如果没有权限,则会报“Access denied for user ‘root’@‘localhost’”错误。同时,要保证该密码与第4步保持一致。
mysql -uroot
use mysql;
flush privileges;
-- 对所有的数据库,都有读写权限(方法一)
grant all privileges on *.* to 'root'@'localhost' identified by '你的密码' with grant option;
-- 只针对的TestDB数据库,有读写权限(方法二)
grant all privileges on TestDB.* to 'root'@'localhost' identified by '你的密码' with grant option;
flush privileges;
exit;
6) 在黑框框A中按Ctrl+C退出安全模式,然后,启动mysql数据库服务,依次输入如下命令:
net start mysql
mysql -uroot -p
Enter password: 你的密码
show databases;
2、查看root密码
从MySQl v5.7之后,root密码是以其MD5格式保存到mysql/user表格里的,将这个MD5数值解码就得到真实的密码,如图(4)所示:
-- 查看root密码
select user,authentication_string from user;
MD5解码地址: cmd5解码
3、修改Navicat链接里的密码
由于MySQL数据库的密码已经更新,则Navicat链接里的密码也要手动更新,否则也会报“Access denied for user ‘root’@‘localhost’”错误。先关闭当前的Navicat链接 --》点击[修改] --》链接即可。
有时候DB密码已更新,但客户端缓存并没有清掉,仍使用老密码造成"Access denied for user ‘root’@‘localhost’"错误,这时,只需要更新对应的数据库conf配置文件、xml代码,再重启客户端或者网页服务器即可。
参考文献
1)参考地址: 官网MySQL 5.7使用手册
2)常用的MySQL命令
-- 查看MySQL的版本
select version();
-- 查看user表里所有的属性
show columns from user;
-- 刷新数据库
flush privileges;
-- 查看所有的DB
show databases;
-- 查看所有的表
show tables;
-- 使用某个数据库
user XXX;
-- 退出MySQL
exit;
3)root密码修改的执行流程
-- 修改root密码,需要打开2个DOS黑框框 --------------------------
-- 1) A黑框框
-- 关闭MySQL,并进入安全模式
net stop mysql
mysqld -nt --skip-grant-tables
-- 2) B黑框框
mysql -u root -p
Enter password: 直接回车
use mysql;
flush privileges;
update user set authentication_string=password('你密码') where user='root';
flush privileges;
grant all privileges on *.* to 'root'@'localhost' identified by '你的密码' with grant option;
flush privileges;
exit;
-- 3)Ctrl+C 关闭A黑框框
按Ctrl+C 关闭A黑框框
-- 4)启动MySQL
net start mysql
版权声明:本文标题:在win10里修改mysql的root密码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726523945h978160.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论