使用DBeaver无法连接MariaDB

11

我刚刚在Ubuntu 18.04上安装了MariaDB 10.1.29。从命令行上,我可以使用sudo进行连接:

sudo mysql -u root -p

但是不能没有sudo。

另外,如果我尝试通过DBeaver连接到数据库,会出现以下问题:

Could not connect: Access denied for user 'root'@'localhost'

尽管凭证正确,但我尝试安装MySQL 5.7,但我在那里遇到了完全相同的问题。

我错过了什么吗?


相同的问题。没有找到如何在DBeaver中建立sudo连接。 - Pawana
1
我还没有找到解决方案。这个问题只存在于“root”用户中。同时,我使用cli创建了一个附加用户,并在所有表上授予权限。现在我可以使用附加用户管理这些数据库。希望这有所帮助。 - wout
1
你是否也注意到,如果你使用 sudo mysql -u root -p 登录,你可以随意输入密码并且它仍然有效!这就是为什么 sudo mysql -u root 也能够正常工作的原因... 如果你问我,这是一个很大的安全问题... - 71GA
1个回答

15

事实证明,这是MariaDB和MySQL的预期行为。为了克服这个问题,建议创建一个单独的用户并授予其对所有创建的数据库访问权限。以下是逐步指南,介绍如何使用命令行创建数据库并授予权限给您选择的用户。

登录MariaDB/MySQL

$ sudo mysql -u root -p

创建数据库

mysql> CREATE DATABASE `database_name`;

创建用户

mysql> CREATE USER 'user_name' IDENTIFIED BY 'a_secure_password';

授予用户权限

mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'user_name'@'%' WITH GRANT OPTION;

应用更改

mysql> FLUSH PRIVILEGES;

1
在我苦苦挣扎了很长时间后,这个方法对我起作用了。@wout 请将您的答案标记为解决方案。 - Dawoodjee
1
@Dawoodjee 很高兴听到我能帮忙。我不知道我可以将自己的答案标记为解决方案 ;) - wout
你好,如果我已经有现有的数据库,我该如何按照这些步骤进行呢?请告诉我。谢谢和最好的问候,迈克尔。 - Alain Michael Janith Schroter
对我来说,授予权限的命令失败了。所以 - GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' identified by 'password'; 运行成功。 - gursahib.singh.sahni
另外,%!= localhost,因此您需要拥有'user'@'localhost' - gursahib.singh.sahni

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