centOS环境下MySQL查询、修改初始密码,或解决1820错误

我们刚在centOS环境下安装好MySQL时,系统提示我们输入密码,这个初始密码那里去找呢?让我们先启动服务:

systemctl start mysqld

这里做一个查询,检查是否启动  命令: systemctl status mysqld 

然后我们通过下面的命令去查找初始密码,

cat /var/log/mysqld.log

红框内一串长相很奇怪的字符串就是初始密码:

[root@atdajv ~]# cat /var/log/mysqld.log
2022-11-27T09:36:36.191585Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.25) initializing of server in progress as process 3999
2022-11-27T09:36:36.202246Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-11-27T09:36:36.595083Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-11-27T09:36:37.703825Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: P!gfqAteJ4w2

 然后就可以用这个初始密码,用 mysql -uroot -p 去登录了

但是登录后做数据查询时可能会报一个这样的错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

这个错误的原因是提示我们修改初始密码后才能进行正常的数据库操作,我们只需要执行:

ALTER USER 'root'@'用户名' IDENTIFIED BY 'newpassword';

就可以更换密码了,改完密码后记得退出重进,然后就可以进行正常的数据库操作啦

提示:5.7版本(不含)之后密码太过简单也会报错。