【数据库连接失败】Navicat中数据库连接报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)解决方案

最近在用原生spring测试连接池时出现报错,便想着退一步直接使用经典的jdbc(只使用mysql-connector-java),没想到依旧报错——接着在IDEA中进行测试,最终将bug定位在数据库连接问题。
 
长话短说,我认为是macBigSur以及mysql8.0的更新,导致了众多root用户权限、参数默认值问题。因为这些问题在最近才暴露出来,网上很少有可行解决方案,走了不少弯路。
 
耗费两天时间我才后知后觉,Navicat和IDEA中的数据库连接失败是两个独立的错误,本篇解决前者。let’s go。

 
 

1045 - Access denied for user ‘root’@‘localhost’ (using password: YES/NO)

直译:错误代码1045 - 拒绝为用户‘root’提供访问(是否填入了密码:YES/NO)

【数据库连接失败】Navicat中数据库连接报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)解决方案_第1张图片

 

 
 

方案一 —— 直接利用Navicat的图形化界面进行操作

【数据库连接失败】Navicat中数据库连接报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES/NO)解决方案_第2张图片

 
 

方案二 —— 利用命令行暂时跳过密码验证

1.关闭mysql服务
  >>> sudo /usr/local/mysql/support-files/mysql.server stop
  
2.进入到bin文件夹
  >>> cd /usr/local/mysql/bin/

3.获取超级管理员权限
  >>> sudo su

4.禁止身份验证
  >>> ./mysqld_safe --skip-grant-tables &

5.此时mysql服务自动重启,这次无需密码即可成功连接,自然不会报错

 
 

方案三 —— 利用命令行修改密码

6.接着上面的操作。进入mysql客户端
  >>> sudo /usr/local/mysql/bin/mysql -u root -p

7.修改用户root的密码
  >>> flush privileges;
  >>> SET PASSWORD FOR root@localhost = '123456';

 
 
 
 
 
 
 
 

最后补充几个命令行,以便复制粘贴(mac)

sudo /usr/local/mysql/support-files/mysql.server start			// mysql数据库服务开启
sudo /usr/local/mysql/support-files/mysql.server stop			// mysql数据库服务关闭
sudo /usr/local/mysql/support-files/mysql.server restart			// mysql数据库服务重启

sudo /usr/local/mysql/bin/mysql -u root -p						// 开启mysql客户端(>>>就可以写sql语句啦)

你可能感兴趣的:(bugMaker,数据库,debug,mysql,navicat,mac)