1.从cmd进入mysql的bin下,输入命令 mysqld --skip-grant-tables 回车
注:(输入命令前,确保在任务管理器中已没有mysql的进程在运行,可输入命令:net stop mysql 来关闭mysql服务,切忌此命令结尾没有分号)
mysqld --skip-grant-tables的作用:跳过了mysql的用户验证
2.重开一个新的命令行,输入命令:mysql,连上数据库。(因第一步跳过了用户验证)
3.输入show databases; ,可以看到所有数据库说明成功登陆。
4.输入命令: use mysql; 选择mysql数据库。mysql库就是保存用户信息的地方。
输入命令:show tables; 查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
5.输入命令:desc user; 查看user表结构。注意字段user host authentication_string
authentication_string: text文本类型。(密码项,登陆mysql时的密码可为此字段的值。可修改此字段,从而修改密码)
6.查看密码,输入命令:
select user,host,authentication_string from user;
修改密码为123,输入命令:
非md5加密:update mysql.user set authentication_string='123' where user='root' and host = 'localhost';
md5加密(推荐):update mysql.user set authentication_string=password('123') where user='root' and host = 'localhost';
7.启动mysql,使用新密码登陆mysql。修改成功后
输入命令:net start mysql 回车 ,启动mysql。
输入命令:mysql -uroot -p 回车 ,通过新密码登陆mysql。
此时的密码:
authentication_string的值:123
8.退出mysql
输入命令:quit