在window7下面安装mysql5.7.16,出现一个问题,在初始化时,默认生成了一个密码,导致连接不了数据库。而在5.7以前,默认密码是空的,可以不用密码即可进入数据库。5.7之后的就遇到坑了,下面就来获取初始密码。

1、新建my.ini ,放到C:\windows下面,文件内容如下:



port=3306 

basedir=D:\dev\mysql\mysql-5.7.9-winx64 

datadir=D:\dev\mysql\mysql-5.7.9-winx64\data 

max_connections=200

character-set-server=utf8 

default-storage-engine=INNODB



  2、在mysql目录下新建一个data文件夹

      3、获取初始密码命令如下:

命令:mysqld --initialize --user=mysql --console 
 会出现一个 password,记下这个密码,在连接数据库时,输入改密码即可。

     4、启动服务

命令:net start mysql

     正常情况会提示你启动成功,(注意:有的会报无法启动3534,这是因为目录下面没有data文件,这个时候你要先用第一条命令init一下);

    5、接着第二条命令,我们登录mysql:

命令:mysql -uroot -p

会提示你输入密码,就是上面我们看到的默认密码,输入后正常情况下会有welcome等提示

 6、开始修改默认密码了,接着输入:

命令:use mysql

然后会提示你:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

不要急,我们接着输入命令:

命令:alter user 'root'@'localhost' identified by 'mysql';

    然后会提示你Query OK !.

     下面就正式进行修改我们的密码,这里有一个地方需要注意,5.7.9版本user表里面已经没有password这个字段了,可以看一下

       但是这里有一个加密的 authentication_string 字段,这就是新版本的密码了,既然找到了我们就不客气了,改密码:

update user set authentication_string="123456" where user="root";

然后我们查看一下,基本正常:

 

注意:这里很多人都会以为设置好了,就直接敲命令:flush privileges;然后退出重启登录了,结果会发现设置的密码不管用,楼主也是在这边吃了暗亏,停了有段时间不得其解,百度过后发现需要再设置以下:

SET PASSWORD = PASSWORD('123456');

PASSWORD 后面写你刚刚设置过的新密码;

这次我们可以flush了:

flush privileges;

然后exit:

exit

 

这样我们就成功设置我们的新密码了。

好了,我们来验证一下,我是继续在开出的cmd命令窗口输入:

mysql -uroot -p

然后输入密码  (你的新密码),正常情况下就OK了。