这个一个linux安装mysql的大坑
在安装时,可能会出现初始化没有输出默认密码的情况,导致不知道初始密码无法登陆的问题。
尝试登录时,就出现(反正输不输密码都有问题,都登录不上):
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
- 在网上搜索,试了好多方法都不管事,很多处理方案都是按照忘记密码的思路去解决,都是进入安全模式,修改配着文件什么的。
-
解决方案
-
最后查了mysql文档,才把问题解决。在安装好mysql,第一次启动SQL服务的时候,用时会比之后关闭在启动mysql耗时要长。这是因为在首次启动SQL服务时,会发生:
- MySQL的data文件夹中生成SSL证书和key文件;
- 密码验证组件被安装并且生效;
- 创建一个超级管用户’root’@‘localhost’。
-
按照常理来说,首次初始密码,应该及时将生成的密码告知用户。但是mysql就是没有这样做,导致用户不论怎么测试密码,都无法登录。好在超级用户设置的密码被保存在错误日志文件中,可以通过以下命令查看:
-
[root@VM_0_11_centos mysql]# sudo grep 'temporary password' /var/log/mysqld.log 2019-01-24T04:18:39.376816Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ll7keY>lzWMq
-
然后就按照查询的密码,登录数据库,修改密码。
我的数据库学习笔记:https://blog.csdn.net/konghouy/article/details/86558909