1. 停掉mysql服务
在“服务”中找到mysql,右键停止
2.设置skip-grant-tables
方法(1)
cmd中进入mysql的bin目录,运行 mysqld --skip-grant-tables
注:若报错或在下一步“3.重新登录”中遇到ERROR 1045 (28000): Access denied for user ‘ODBC’@‘localhost’ (using password: NO),则尝试方法(2)
方法(2)
a) 找到mysql安装目录下的my.ini,(若安装目录下无my.ini,可能在ProgramData中,查看中勾选“隐藏的项目”)
b) ctrl+F查找里面的[mysqld], 然后在下面加上这句:skip_grant_tables (启动MySQL服务的时候跳过权限表认证),保存。
3.重新登录
a) 以管理员身份打开cmd,进入mysql的bin目录,然后输入:mysql -u root -p
输入密码处直接回车
b) 输入use mysql
c) 重设密码,输入命令
update mysql.user set authentication_string = password("123456") where user="root";
(括号里123456替换成自己想要设置的密码)
(注:该版本为5.7 , 若5.1等其他版本可能为
update user set password=password("123456") where user="root";)
d) 刷新权限:flush privileges;
退出:quit;
e) 删去前面在my.ini中加入的的skip_grant_tables,恢复权限表认证
f) 重启mysql服务,使用root和密码登录:mysql -u root -p
登录成功