使用Navicat连接mysql
报错1045 - Access denied for user 'root'@'localhost' (using password: YES)
,我输入的密码是正确的但是新建查询的时候报1045错误,提示使用了密码但是登录失败。
Step1: 停止mysql服务
先停止mysql服务。操作路径是系统偏好设置 -> mysql -> stop service
Step2: 禁止mysql的验证功能
- 打开Terminal进入mysql的bin目录下:
cd /usr/local/mysql/bin/
- 使用管理员身份登陆:
sudo -i
或者sudo su
- 禁止mysql的验证功能:
./mysqld_safe --skip-grant-tables &
Step3: 修改密码
- 进入mysql命令行:
./mysql
- 使用flush privileges刷新用户权限表(必须使用flush privileges的两种情况:改密码和授权超用户):
FLUSH PRIVILEGES;
MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
- 修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
然后就大功告成了。