报错信息
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
报错原因
一般是MySQL初次安装后出现该问题,因为MySQL安装完成会创建默认root用户,密码随机生成,使用以下命令查看:
grep 'temporary password' /var/log/mysqld.log
如果使用这个临时密码登录,无需下面的1、2步。
解决办法
- 关闭数据库
systemctl stop mysqld
- 修改为
登录时跳过权限检查
vim /etc/my.cnf
# 在[mysqld]后添加 skip-grant-tables
- 重启服务
systemctl restart mysqld
- 修改密码
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
- 验证修改效果
mysql –uroot –pPasswd@123
- 如果修改了
my.cnf
,记得改回来!