在自己电脑上安装了Mysql5.7,后来一直使用服务器公共的数据库服务,等想用自己电脑上的数据库时,发现密码忘记了,从网上找了各位大神整理的的资料,最后终于解决了。在此记录一下,以增加印象,避免以后再各处找资料。
问题描述:mysql数据库密码忘记,希望从Mysql Workbench中的sys库中直接修改user表,结果修改失败(具体原因不明),最后只能重设密码;
1、管理工具--》服务,找到mysql57服务,停止;
2、cmd 打开命令工具,输入 cd C:\Program Files\MySQL\MySQL Server 5.7\bin 命令,转到Mysql的安装根目录;
3、输入:mysqld --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini" --console --skip-grant-tables 如果没出现error,则重新打开一个cmd命令框,原命令框不需要关闭;
4、如果出现 不识别 -console --skip-grant-tables 命令的提示,则需要打开C:\Program Files\MySQL\MySQL Server 5.7\my-default.ini ,在[mysqld] 下添加 skip-grant-tables;
5、关闭原先所以打开的命令框,从第一步重新来一遍,进行至第4 步,在新的命令框下输入:mysql -u root -p ;
6、提示需要输入密码,直接点击 enter;则会直接登录到mysql数据库;
7、现在可以直接修改密码了:update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
8、flush privileges; 更新
9、quit; 退出
10、重启电脑(没重启电脑前,我的电脑上mysql服务一直启动不了)
11、修改成功后,使用navicat登录,则一直提示错误,打开cmd命令框,登录mysql数据库,输入:set password for 'root'@'localhost'=password('root');
12、使用 navicat 工具登录成功。