MySQL 8 报错1045 Access denied 解决办法,mac系统
用Navicat的MySQL时,遇到1045报错,网上找到的方法都比较旧,已经失效,所以针对Mysql 8,总结网上的解决办法。主要参考这篇文章 和这篇英文文章。
出现1045错误原因:
In MySQL, the error 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES) can appear because of the following reasons:
- When the host is not the admin.
- It might happen that the user does not exist on the server.
- Recheck the Login credentials: username and password.
1和2的解决方法可以参考英文文章。这里我们针对3,我查到的原因是安装mysql的时候没有保存生成的密码,或者之前安装的mysql未删除干净,导致再次使用MySQL时密码错误。所以安装的时候要保存以下界面的密码:
解决报错具体步骤如下:
- 首先关闭mysql服务器,可以直接在系统偏好里有个MySQL里关闭。如果关不了用终端输入命令关闭:
sudo /usr/local/MySQL/support-files/mysql.server stop
- 终端输入
cd /usr/local/mysql/bin
进入mysql的目录 sudo su
获取权限,需要输入本机密码,终端就变成#后输入命令的模式。./mysqld_safe --skip-grant-tables &
重启服务器,重启完之后,可以在系统偏好中看到mysql已经启动了- 不要关闭当前终端,新建个终端,输入命令:
alias mysql=/usr/local/mysql/bin/mysql
mysql
进入mysql命令模式- 输入
use mysql
进入mysql数据库 FLUSH PRIVILEGES;
获取权限- 修改密码(我的MySQL版本是8.0.23),我这里用1234,可以换成你自己的密码
SET PASSWORD FOR 'root'@'localhost' = '1234';
- 再输入
FLUSH PRIVILEGES;
exit
退出之后,进去Navicat,点击出现1045的数据库右键Edit Connectiong 进去重新填下你的新密码。或者新建数据库的时候输入这个密码,就可以了
把mysql安装路径添加到环境变量
vim ~/.bash_profile
export PATH=$PATH:/usr/local/mysql/bin
source ~/.bash_profile