mysql--mysql5.7重置密码遇到的问题
背景 :
引入新的项目,此新项目采用5.7及其以上版本的MYSQL,要按照java的xml配置文件更改掉本地mysql的root用户的密码(方便本地测试)。
1. 重置本地mysql5.7root用户的密码
这一步骤在百度、博客等能找到很多答案。当然我这里也要写出来,因为我这里遇到点小坑:
1.1 停止掉本地的mysql服务,window的话在服务当中停掉就可以了,linux的话可以使用 net stop mysql(当然有可能根据版本的不同命令也不同,这个得百度);
1.2 windows的话,编辑本地mysql安装目录中 C:\Program Files\MySQL\MySQL Server 5.7\my.ini,或者使用安全命令模式mysqld_safe --skip-grant-tables &进行密码忽略登录,
接着我们的windows的my.ini说话,这点要注意到 :

看我们的第一个坑,你要找到本地的Mysql服务,看其真正的my.ini到底是哪个。所以我们得在上面截图的地方更改my.ini,在C:\ProgramData\MySQL\MySQL Server 5.7的
my.ini文件当中的[mysqld] 的下面一行写上 skip-grant-tables 信息,然后重启Mysql服务,然后新建一个连接使用root用户,然后建立自己的库,导入自己的数据;
1.3 这一步骤,是进行重置自己的root密码,可以在本地mysql图形化界面,或者cmd命令行进入mysql安装的bin目录使用mysql命令,注意到,我们是5.7版本,所以更改user表
密码不再是password而是 authentication_string (第二个坑处)。命令为 :
mysql -> use mysql;
mysql -> update mysql.user set authentication_string=password("新密码") where user="root";
mysql -> flush privileges; // 刷新权限表 是进
1.4 重启mysql服务,本地使用图形化界面或者mysql命令进入自己创建的数据库,使用我们的root账号和新密码。(此时,应该是可以登录的)
2. 开启mysql的日志
2.1 查看日志 : SHOW VARIABLES LIKE "general_log%";如果SHOW VARIABLES LIKE “general_log%”显示的value是off,表示没有开启日志,on开启日志
2.2 开启日志 :SET GLOBAL general_log = 'ON';2.2 开启日志 :
2.3 为什么要开启日志 : 因为这个时候 ,方便我们在idea 或者eclipse当中 connect到mysql的时候一旦出错,我们则可以很方便的使用此日志文件查看出了什么错误;
3. idea项目连接mysql报错解决方案 :

这个时候,我们查看下 mysql的日志,就是打开我们刚才的那个log文件,
很显然,这是密码不正确了,仔细查看自己的密码,看看自己程序中最后connet 到mysql的时候,到底有没有对密码加密什么的(第三个坑)。
顺便提一句 : 连接mysql5.7以上的时候应该是在connet的url上要加上serverTimezone=UTC&useSSL=true&useUnicode=true&characterEncoding=UTF-8 这些信息的。



浙公网安备 33010602011771号