【DBeaver】【MySQL】出错:用户 ‘root’@’localhost’被拒绝访问的解决方法

概述

首先,DBeaver是什么?

這個多平台支持的數據庫GUI工具支持多個數據庫,包括MySQL、PostgreSQL、MariaDB、SQLite、Oracle、DB2、SQL Server、Sybase、MS Access、Teradata、Firebird、Derby等。企業版還支持NoSQL/BigData數據庫,如MongoDB、InfluxDB、Apache Cassandra、Redis、Apache Hive。

雖然TeamSQL也不錯,但DBeaver也很好。

我想写下我解决该错误的方法,当我尝试从DBeaver访问MySQL时出现了标题中提到的错误。

环境

DBeaver 6.3.0
MySQL 5.7
Windows10

DBeaver 6.3.0
MySQL 5.7
Windows10

为什么

大致来说,如果在MySQL上不使用sudo就可以登录,问题就解决了。
实际上,由于我之前无法在MySQL上不使用sudo登录,这就是问题的原因。

方法 (yà

几乎按照这篇文章的指示完成了。
在MySQL5.7中无需sudo即可以root身份登录。

因为我在中途遇到了一些困难,所以我想简单地解释一下。
首先,使用sudo命令登录到MySQL。

sudo mysql -u root -p

当你登录到MySQL后,执行以下命令:
键入你自己设定的密码,被’引号括起来。
密码以明文形式显示,有点让人害怕。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

所以当我执行这个时,出现了以下错误。

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

由于我安装了验证密码插件,所以出现了这个错误。因此,我想将其移除。
在MySQL中执行以下操作。

mysql> uninstall plugin validate_password;

可以通过这个来确认是否已经删除。

mysql> SHOW VARIABLES LIKE 'validate_password%';
Empty set (0.00 sec)

执行最后一条命令来应用设置并退出。

mysql> FLUSH PRIVILEGES;

如果执行以下操作并登录成功而无需sudo权限。

mysql -u root -p

我现在能够通过DBeaver连接到MySQL了。

参考来源

TeamSQL挺好的,但是DBeaver也不错
在MySQL5.7中,无需使用sudo,即可以root身份登录
废弃MySQL5.7中的validate_password等垃圾功能

广告
将在 10 秒后关闭
bannerAds