MariaDB - 使用正确密码无法从 Dbeaver 连接到 MariaDB 实例

3

我正在尝试连接到本地主机的MariaDB实例,端口为3306。 我非常清楚,由于MariaDB的规定,root用户不能使用localhost,因此我在命令行上创建了另一个用户,密码为'root',并授予其对我的“test”数据库的所有权限:

CREATE USER 'myuser' IDENTIFIED BY 'root';
GRANT USAGE ON *.* TO 'myuser'@localhost IDENTIFIED BY 'root';
GRANT ALL privileges ON `test`.* TO 'myuser'@localhost;
FLUSH PRIVILEGES;

当我尝试使用正确的用户名和密码从DBeaver打开连接时,会出现以下错误:

Access denied for user 'myuser'@'localhost' (using password: YES) Current charset is windows-1251. If password has been set using other charset, consider using option 'passwordCharacterEncoding'

为什么会出现这种情况?这是因为DBeaver和MariaDB实例之间存在一些密码哈希算法不匹配吗?如何修复并成功连接?

1
升级MariaDB并检查是否解决了该漏洞。 - Braiam
4个回答

4
如果您想要将此警告修复到所有连接(而不仅仅是单个连接),则需要配置驱动程序的常规属性。
  1. 在 DBeaver 中进入“数据库” -> “驱动程序管理器”

  2. 编辑 MariaDB/MySQL 驱动程序 d

  3. 选项卡 驱动程序属性,添加新的用户属性 passwordCharacterEncoding : UTF-8 enter image description here

  4. 完成,对于使用编辑后的驱动程序的所有连接都有效

来源:mariaDB 驱动程序的参数


3

您需要进入DriverProperties并输入您用于编码密码的编码方式(UTF-8)。当您在本地使用docker镜像运行maria db时,这是非常常见的。请参考下面的图片。 输入图像描述


0

最近我也遇到了同样的问题,在网上找不到答案。虽然现在有点晚了,但是对于仍然遭受这个问题困扰的人来说,似乎是Dbeaver的一个bug或者可能是一个bug...

每次我复制和粘贴数据库和用户名时都会出现这个错误!当我直接在字段中输入时,就可以成功连接。

在发疯之前,我建议先尝试这个方法。


-1

我认为这是一个编码问题。

在创建新连接之前,您应该在这里检查首选项:编码偏好设置

当我将其更改为UTF-8时,它对我起作用了。


1
异常明确指出要设置passwordCharacterEncoding。我可以通过拉取mariadb docker镜像并尝试从mariadb连接到它来复制该问题。我只能通过提供UTF-8作为passwordCharacterEncoding参数来解决它。 - Justin Mathew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接