我刚刚安装MariaDb
在一个新的 Ubuntu Gnome 上,然后运行mysql_secure_installation我设置了一个不错的管理员密码,删除了匿名用户等。
之后我意识到有关管理员密码的一些奇怪行为:
- 如果我尝试使用命令从我的普通用户帐户登录,
mysql -u root -p
我总是会收到一个错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
我很确定我输入了我之前使用mysql_secure_installation设置的正确密码...... - 当我使用 root 从 root 运行命令时
sudo mysql -u root -p
,无论我实际输入哪个密码,我总是可以访问数据库...
这是正常的行为,我做错了什么还是我搞砸了安装?
这种行为听起来与为 root 用户启用套接字身份验证插件是一致的,其中 MariaDB 信任通过套接字接收的操作系统凭据,而不依赖于密码。通过使用或以 root 身份登录,您可以以 root 身份连接到数据库服务器,因为您在操作系统上是 root,但其他操作系统用户不能。
sudo
您可以使用以下方法删除该选项:
然后你会得到预期的行为,任何拥有 MariaDB root 密码的用户都应该能够以 root 身份登录。
另一种方法是设置另一个用户,而不是 root,该用户也具有完全管理员权限,并将其而不是 root 用于管理目的:
来自 HBrijn 的答案指定使用
但是,这破坏了我的登录系统,因为没有人能够再登录(无论是否使用正确的密码,以及是否使用 sudo)
为了让它工作,我需要改用它: