无法从用户帐户登录到 mariadb。错误 1045 (28000)

Cannot login to mariadb from user account. ERROR 1045 (28000)

我用密码创建了一个 myaccount 并使用了: select user,password,host,plugin from mysql.user;

+---------------------+-------------------------------------------+-----------+-------------+
| user                | password                                  | host      | plugin      |
+---------------------+-------------------------------------------+-----------+-------------+
| root                | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost | unix_socket |
| myaccount@localhost | *28F1DE8C4229B1D4F62F752EA3812747CE4E5CA0 | %         |             |
+---------------------+-------------------------------------------+-----------+-------------+

如您所见,没有为 myaccount 配置 plugin。我原以为这意味着我可以使用我的密码访问 mariadb,但是当我从名为 libra 而不是 myaccount 的帐户登录时,我得到一个 :

ERROR 1045 (28000): Access denied for user 'myaccount'@'localhost' (using password: YES)

如何设置 plugin 属性以允许从任何帐户进行密码验证? myaccount 在我的机器上不存在用户。

这不是身份验证插件问题。

您的数据库中没有名为 'myaccount'@'localhost' 的帐户。但是, 一个名为 'myaccount@localhost'@'%' 的帐户。是的,这个名字很奇怪。是的,在 MariaDB / MySQL 上创建帐户的方式很奇怪。

试试这个:

CREATE USER 'myaccount'@'localhost' IDENTIFIED BY 'REDACTED';
GRANT ALL PRIVILEGES ON *.* TO 'myaccount'@'localhost' WITH GRANT OPTION;
CREATE USER 'myaccount'@'%' IDENTIFIED BY 'REDACTED';
GRANT ALL PRIVILEGES ON *.* TO 'myaccount'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将使您从本地主机和任何其他主机登录到在服务器上具有管理权限的帐户。在 MariaDB / MySQL 上,这需要两个帐户。叹。 (如果您不想要管理权限,请更改 GRANT 语句。)

当然,将 REDACTED 替换为您想要的密码。