MySQL5.6之后默认root密码的问题

前段时间安装mysql5.6后,习惯性的无密码登录,但是提示要输入密码
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
好吧,那我就安全模式登入,也就是常说的绕过密码验证
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables
# mysql -u root mysql
mysql> SET Password=PASSWORD('newpassword')
mysql> FLUSH PRIVILEGES;

这样就可以了, 但是为什么和我之前安装的5.1 不一样呢,原来从MySQL5.6.8开始,MySQL RPM安装包用了更安全的安装方式,再不是以前的密码为空了,mysql会给root账号随机分配一个密码,安装MySQL后,root的这个随机密码会写在文件:.mysql_secret中,但这个密码不能做任何事情,只能登录。

然后必须更改密码才能正常使用,如:
mysql> set password =password('123456');
刷新权限
mysql> flush privileges;
root账号就正常使用了。

如果感兴趣,可以查看官方的解释:
http://dev.mysql.com/doc/refman/5.6/en/linux-installation-rpm.html

你可能感兴趣的:(MySQL5.6之后默认root密码的问题)