Ubuntu 18.04 中的 Mariadb 密码

Ubuntu 18.04 中的 Mariadb 密码

我在运行时为 Mariadb 设置了一个密码,sudo mysql_secure_installation但是当我尝试运行 mariadb 时mysql -u root -p出现以下错误。

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

我在 AWS 的 Lightsail VPS 上使用 Ubuntu 18.04。我正在使用 Mariadb 版本10.1.44-MariaDB-0ubuntu0.18.04.1

MariaDB [mysql]> SELECT user,plugin,host FROM mysql.user;
+---------------+-------------+-----------+
| user          | plugin      | host      |
+---------------+-------------+-----------+
| root          | unix_socket | localhost |
| wordpressuser |             | localhost |
+---------------+-------------+-----------+

其次,我不清楚设置和使用 Mariadb 的正确方法是什么。

  1. 当它要求我输入密码时我应该设置密码吗mysql_secure_installation
  2. 应该使用sudo mysql或来访问 mysql 吗mysql -u root -p

我可以按照说明设置密码期刊发展但我想知道正确的方法是什么。

$ mysql -u root -p
MariaDB [(none)]> use mysql;
MariaDB [mysql]> update user SET PASSWORD=PASSWORD("Passw0rd!") WHERE USER='root';

答案1

请阅读此处,它应该可以回答您的所有问题: 身份验证插件 - Unix Socket

基本上,默认情况下,root mysql 帐户使用unix_socket插件进行保护,以便只有 root Ubuntu 用户才能登录到 root 数据库用户。因此sudo mysql -u root mysql应该可以工作,但mysql -u root mysql非 root 用户则不行。

如果你真的需要的话,可以改变这种行为并使用密码验证(参见链接文章),但是你可能会使您的数据库变得不那么安全。这实际上取决于您的用例和需求。

相关内容