在centos 6.5用yum源安装mysql 5.7,安装好之后登陆需要密码,网上一搜说在root家目录里有隐藏文件叫 .mysql_secret文件中,ls -a 一查看并没有,于是就想着能不能越过权限登陆进去直接更改,于是在/etc/my.cnf中添加一条:skip-grant-tables,添加之后很轻松就登陆进去了,登陆进去之后以为修改密码是很简单的事,只要执行:update mysql.user set password=password('123456') where User="root" and Host="localhost" 就好了,结果又有错误提示,查询一下mysql.user这个表,发现这个表中已经没有password这个字段了,估计这是5.7的新特性。


无奈之下只好去官方文档中查找答案,解决办法如下:

    只需要重新初始化数据,并指定随机生成的密码要保留致那个文件即可:

  

[root@localhost ~]# mysql_install_db --random-password-file=/mysql/data/password --datadir=/mysql/data
2015-12-24 18:06:34 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

    注意指定的保存密码的文件路径mysql一定要有写权限!