1.管理员权限进入cmd,net stop mysql,管理员权限开启一个cmd1,mysqld --defaults-file="E:\MySQL5.7\MySQLServer5.7.18\my.ini" --console --skip-grant-tables
2.管理员权限开启另外一个cmd2,mysql -u root -p, 出现Enter password,直接回车,不用输入密码,使用密码show databases;使用命令切换到mysql数据库,use mysql;看好多教程都是update user set password=PASSWORD("") where User='root';但会显示错误ERROR 1046 (3D000): No database selected,正确的做法是:update user set authentication_string=password('') where user='root';原因是:There is no field named 'password', the password field is named ' authentication_string',刷新权限:FLUSH PRIVILEGES;然后退出,quit
3.重新登录,可以关掉之前的cmd1窗口,然后用net start mysql启动服务,mysql -u root -p,出现新的密码提示,输入即可。
4.mysql经常需要改密码的原因show global variables like 'default_password_lifetime';密码有过期时间,要进行更改,网上说要对my.cnf文件进行修改,但我并没有找到default_password_lifetime=0
5.如果navicat还是发神经进入不去直接最简单粗暴方式,管理员权限net stop mysql, 然后mysqld --defaults-file="E:\MySQL5.7\MySQLServer5.7.18\my.ini" --console --skip-grant-tables,肯定就可以进去了。。。