我刚刚在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,但我在那里遇到了完全相同的问题。
我错过了什么吗?
事实证明,这是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;
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' identified by 'password';
运行成功。 - gursahib.singh.sahni'user'@'localhost'
。 - gursahib.singh.sahni
sudo mysql -u root -p
登录,你可以随意输入密码并且它仍然有效!这就是为什么sudo mysql -u root
也能够正常工作的原因... 如果你问我,这是一个很大的安全问题... - 71GA