英文:
MariaDB - Cannot connect to MariaDB instance from Dbeaver using correct password
问题
我正在尝试连接到端口3306上的MariaDb本地实例。
我非常清楚,由于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打开连接时,出现了错误:
用户'myuser'@'localhost'被拒绝访问(使用密码:是)
当前字符集为windows-1251。如果使用其他字符集设置了密码,请考虑使用选项'passwordCharacterEncoding'
为什么会发生这种情况?是因为DBeaver和MariaDB实例之间存在密码哈希算法不匹配吗?我该如何修复这个问题并成功连接?
英文:
I am trying to connect to a localhost instance of MariaDb on port 3306.
I'm well aware that root cannot use localhost because of MariaDb specifications so I created
another user from the command line with password 'root' and all privileges granted to my 'test' database:
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;
When I try to open a connection from DBeaver with the correct password and username, an error appears:
> 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'
Why does it happen? Is it because of some password hashing algorithms mismatch between DBeaver and MariaDB's instance? How do I fix this and connect successfuly?
答案1
得分: 2
你需要前往DriverProperties,并输入你用来编码密码的编码方式(UTF-8)。当你在本地使用Docker镜像运行MariaDB时,这是非常常见的。请参考下面的图片链接:
英文:
You have to to go to DriverProperties and enter the encoding you have used to encode password(UTF-8). This is very common when you use docker image to run maria db on your local Refer the below image.
答案2
得分: 2
如果您想要修复此警告以适用于所有连接(而不仅仅是单个连接),您需要配置驱动程序的通用属性。
-
在 DBeaver 中,转到数据库 -> 驱动程序管理器
-
完成,它将适用于所有使用已编辑驱动程序的连接
英文:
If you wanna fix this warning to all connections (not just single one) you need to configure driver's general properties.
-
In dbeaver go to Database -> Driver Manager
-
Tab
Driver properties
, Add new User property
passwordCharacterEncoding
:UTF-8
-
Voila, it works for all connections use edited driver
Source: mariaDB driver's parameters
答案3
得分: 0
我最近也遇到了同样的问题,在网上没有找到答案。我知道现在有点晚了,但对于仍然遇到这个问题的人,似乎是Dbeaver的一个bug,或许是一个...
每次我复制粘贴数据库和用户名时,都会出现这个确切的错误!当我直接在字段中输入时,我可以成功连接。
在生气之前,我建议尝试这个。
英文:
I had the same issue these days and didn’t find an answer online. I know it’s late, but for anyone who’s still suffering from this same problem, it’s seem to be a bug with Dbeaver or could be one...
Everytime I copy and paste the database and the username I get this exactly error! When I type it directly in the field I can connect successfully.
I would try this before getting mad
答案4
得分: -1
我认为这是一个编码问题。
在创建新连接之前,您应该在这里检查首选项:编码首选项
我将其更改为UTF-8后,它对我有效。
英文:
I think it's an encoding issue.
Before you create a new connection you should check the preferences here: encoding preferences
It worked for me as I changed it to UTF-8.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论