错误:1045
解决方法:
- 以管理员身份运行cmd,进入Mysql安装目录下的bin目录下
@:下面还要再打开cmd窗口,为方便区别,此窗口记为cmd-A窗口 - 运行
net stop mysql
,停止Mysql服务 - 运行
mysqld -nt --skip-grant-tables
,使得在登录时可以跳过登录密码
以上三步正常运行后该cmd窗口应该处于静止不动,光标闪烁的状态
- 打开另一个管理员的cmd窗口 @:此窗口记为cmd-B窗口
- 运行
mysql -uroot -p
回车,出现Enter password:直接回车,成功进入了mysql - 可以运行以下命令来修改密码:
use mysql; -- 使用mysql数据库
update user set authentication_string=password('mysqladmin') where user='root';
--更新root的密码为mysqladmin ,显示Query OK则修改成功。
update user set authentication_string='mysqladmin' where user='root';
-- 不推荐,这种方式就是将密码明文不经过加密直接显示在数据库中。
经过以上6步后,已经成功的修改了数据库登录密码。接下来是再次尝试登录。
- 关闭cmd-A窗口 (输入了
skip-grant-tables
的cmd) - 关闭任务管理器中的进程mysql.exe(任务管理器->详细信息->进程->找到mysql.exe(大约占150M内存)->关闭)
- 在cmd-B窗口中输入
net start mysql
- 输入
mysql -uroot -p
,敲入新的用户名、密码 即可登录成功
若还是不能登录,或出现错误1130。则是权限问题 (或 host问题),以下为权限为题的解决方法:
错误:1130
解决方法:
- 按以上方法跳过验证进入数据库
- 在mysql>中执行
flush privileges;
刷新权限
(不执行这步会出现在skip-grant-tables
模式下不能授权的问题) - 执行
grant all privileges on *.* to root@'localhost' identified by 'mysqladmin';
为root用户授权 - 关闭cmd和mysql.exe进程,启动mysql服务
net start mysql
,重新登录mysql -uroot -p
即可成功