结论:CentOS系统用yum安装MySQL的朋友,请使用 grep "temporary password" /var/log/mysqld.log 命令,返回结果最后引号后面的字符串就是root的默认密码。
SET PASSWORD = PASSWORD('你的新密码');
以前,安装完MySQL之后,可以直接用mysql -uroot进入MySQL控制台的,结果现在不行了,会提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
MySQL现在还有默认密码了?去MySQL官网一查文档,在MySQL的这篇名为《Changes in MySQL 5.7.4 (2014-03-31, Milestone 14)》的文档里有这么一段:
在安装的过程里,将仅创建一个root账户——'root'@'localhost',同时将自动生成一个随机密码给它,并标记此密码已过期。MySQL管理员必须使用随机密码登陆root账户,并使用SET PASSWORD去设置一个新的密码。(随机密码可以在运行安装脚本的有效用户其主目录中的.mysql_secret文件中找到。)
其实
MySQL在运行的时候会有一个日志文件,它存在于/var/log/mysqld.log,我们在安装时生成的随机密码就在这个文件里,我们可以直接用下面这条命令显示出这个文件里的所有内容:
grep "temporary password" /var/log/mysqld.log
设置新密码:
SET PASSWORD = PASSWORD('你的新密码');
不过需要注意的是现在MySQL已经强制要求强密码,已经不能再用弱密码比如“123456”了。如果你设置的密码过于简单,会提示错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
大小写字母+数字