MariaDb 的管理员密码似乎不起作用

sua*_*kim 8 security authorization mariadb

我刚刚安装MariaDb在一个新的 Ubuntu Gnome 上,然后运行了mysql_secure_installation,在那里我设置了一个不错的管理员密码,删除了匿名用户等。

后来我意识到有关管理员密码的一些奇怪行为:

  • 如果我尝试使用该命令从我的普通用户帐户登录,我mysql -u root -p总是收到一个错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    我很确定我输入了正确的密码,该密码是我之前用mysql_secure_installation设置的...
  • 当我使用从 root 运行命令时sudo mysql -u root -p,我总是可以访问数据库,无论我实际输入哪个密码......

这是正常行为,我做错了什么还是我以某种方式搞砸了安装?

HBr*_*ijn 19

以使一致的行为,声音插件插座认证为root用户,其中MariaDB的信托操作系统凭据在插座接收不依赖于密码。通过sudo以 root 用户身份使用或登录,您可以以 root 用户身份连接到数据库服务器,因为您是 OS 上的 root 用户,但其他 OS 用户不能。

您可以通过以下方式删除该选项:

$ sudo mysql -u root

mysql> use mysql;
mysql> update user set plugin='' where User='root';
mysql> flush privileges;
Run Code Online (Sandbox Code Playgroud)

然后你会得到预期的行为,任何拥有 MariaDB root 密码的用户都应该能够以 root 身份登录。

另一种方法是设置另一个用户,而不是 root,该用户也具有完全管理员权限,并使用该用户而不是 root 进行管理:

$ sudo mysql -u root
mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost'
->     WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)