最近在安装Mysql5.7.4版本时发现了一个BUG,安装时设置的初始密码登录不了的问题,在网上搜索了解决方案,讲的不是很好,现将整理好的解决方案发出来。
系统:Windows 10
一、跳过MySql密码认证
以root账户为例:
在MySql安装路径的根目录,找到my.ini文件。不是my-default.ini文件。
注:这里有可能找不到,找不到的原因是my.ini文件在ProgramData文件夹中,这个文件夹被隐藏了,需要隐藏文件可见才行。ProgramData文件夹不在MySql安装路径的根目录下。(我在这找了很长时间...)
打开my.ini文件,在文档中找到 [mysqld]文本段落,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如图:
保存后退出。
二、核心操作
这里有一个方法可以直接进入MySql文件路径下输命令:
进入cmd命令中
1.停止:输入 net stop mysql
2.启动:输入 net start mysql
3.登录:输入 mysql -u root -p
这时候在cmd里面输入mysql -u root -p就可以不用密码登录了,出现password:的时候直接回车可以进入,不会出现ERROR 1045 (28000),但很多操作都会受限制,因为我们不能grant(没有权限)。
4.修改密码:输入 update user set authentication_string=password("你的密码") where user='root';
如果在执行该步骤的时候出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误。则执行下 flush privileges 命令,再执行该命令即可。
5.刷新数据库:输入 privileges
6.退出:输入 quit
三、删除跳过密码认证命令
改完默认密码后,再次进入到之前的配置文件中,将我们跳过密码的那个配置行给删除掉,变为系统原先的配置。重启MySQL服务,下次再登录的时候便可以解决掉这个问题了。