在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了。