在linux上安装了mysql8.0.28版本,安装好之后发现var/log/mysqld.log文件中的初始密码输入一直提示不对
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
一、修改登录设置(编辑my.cnf文件跳过登录):
1、在etc/my.conf中添加一段
skip-grant-tables
2、保存退出,重启mysql服务
service mysqld restart
3、重启完毕后 登录mysql,此时是不需要密码的,提示需要输入密码直接回车就能进入
mysql -u root -p
二、修改密码:
(1)、执行语句:
use mysql;
select user,host from user where user='root';
(2)修改密码:
执行以下代码:'xxxxxx’是你要输入的密码。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';
flush privileges;
这里要注意,如果上面(1)中查询出来的root账户host是localhost,则需将’root’@‘%‘改为 ‘root’@‘localhost’。否则会报错 ERROR 1396 (HY000): Operation ALTER USER failed for ‘root’@’%’
如果还是有报错的话进行密码重置为空后再进行修改密码
mysql> update user set authentication_string='' where user='root';
mysql> flush privileges;
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';