MySQL登录报错 ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)

报错信息

ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

报错原因

一般是MySQL初次安装后出现该问题,因为MySQL安装完成会创建默认root用户,密码随机生成,使用以下命令查看:

grep 'temporary password' /var/log/mysqld.log

如果使用这个临时密码登录,无需下面的1、2步。

解决办法

  1. 关闭数据库
systemctl stop mysqld
  1. 修改为登录时跳过权限检查
vim /etc/my.cnf
# 在[mysqld]后添加 skip-grant-tables
  1. 重启服务
systemctl restart mysqld
  1. 修改密码
mysql –uroot –p # 直接回车(Enter)

mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Passwd@123';
# 若报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
# 先执行 flush privileges;
# 再重新执行 ALTER USER...
mysql> quit
  1. 验证修改效果
mysql –uroot –pPasswd@123
  1. 如果修改了my.cnf,记得改回来!

你可能感兴趣的:(mysql,数据库,database)