已经不是第一次遇到这个问题了,所以打算把它写下来,免得下次又得上面查。
其实特别简单的一个解决办法是:
1、找到配置文件my.ini ,然后将其打开,搜索mysqld关键字找到后,在mysqld下面添加skip-grant-tables (是在mysqld下面,而网上有些是说在mysql下面,是错没有用的),保存退出。skip-grant-tables是跳过密码问题,完成这步后就可以登录MySQL了。但是这并不能彻底解决。
2、重启mysql服务
在任何路径目录下,都可以关闭/重启mysql的服务呢。(因为,之前,已经配置全局的环境变量了)
net stop mysql
net start mysql
3、进入数据库,重设置密码。
要进入MySQL所在的bin目录下,并且以管理员身份运行。
还要注意的一点是在windows powershell 进入文件目录居然 目录名不能有空格,所以要把整个目录名用引号引起来才能进入到目录。
mysql -u root -p Enter
不用管password Enter
mysql> use mysql; Enter
mysql> update mysql.user set authtntication_string=password('密码自己设') where user='root';
mysql> update user set password=password("*******") where user="*******"; #修改密码报错 ERROR 1054 (42S22): Unknown column 'password' in 'field list' mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功 Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1
第一个修改报错原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string。
4.密码重设置成功,改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。
5.重启mysql服务,并可以正常登录mysql用户了。