【问题标题】:ERROR 1045 (28000): Access denied for user 'admin'@'localhost' (using password: YES)错误 1045 (28000): 用户 'admin'@'localhost' 的访问被拒绝(使用密码:是)
【发布时间】:2021-08-30 12:52:27
【问题描述】:

我正在尝试通过 bash 脚本登录 mysql,或者更具体地说,我想检查为 mysql 用户传递的参数是否是管理员用户的参数。 出于这个原因,它必须可以通过单行命令登录到 mysql,例如

mysql -u $dbadmin -p$dbadminpass

为了测试我为什么不工作,我自己在命令行上尝试过,我收到了这个错误:

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

我在@localost 上创建了使用并授予了所有权限。到目前为止,我所有的研究都没有结果。 我检查了任何错别字

【问题讨论】:

标签: mysql access-denied


【解决方案1】:

你可以试试这个:

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
FLUSH PRIVILEGES;

或尝试连接到 127.0.0.1 而不是本地主机

【讨论】:

  • GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; 提供ERROR 1133 (28000): Can't find any matching row in the user table 并且在刷新所有权限后它仍然无法工作。
  • @o'gamingSCV 它给出了错误,因为你必须按照我在 cmets 中的建议首先创建它,然后给它特权
  • @basha04 true??
  • 我已经用正确的密码创建了用户。我什至可以使用管理员用户和密码登录 MySQL。
  • 尝试:-p$dbadminpass => -p $dbadminpass ?
【解决方案2】:

这不是 MySQL 安装或设置的问题。

每个帐户名都由用户名和主机名组成,例如'user_name'@'host_name',即使未指定主机名也是如此。来自 MySQL 参考手册:https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html#priv_usage

MySQL 帐户名由用户名和主机名组成。这样就可以为可以从不同主机连接的同名用户创建帐户。

这还允许 MySQL 根据它们用于连接的主机授予不同级别的权限。

当 MySQL 无法识别主机部分的帐户更新授权时,它将返回错误代码 1133,除非它有用于识别此帐户的密码。

此外,MySQL 将允许仅通过用户名指定帐户名,但在这种情况下,它被视为 'user_name'@'%'。

【讨论】:

    猜你喜欢
    • 2014-03-23
    • 2016-09-29
    • 2013-11-28
    • 2019-05-26
    • 2019-12-12
    • 2017-08-23
    • 2013-10-13
    • 2019-03-24
    • 2018-08-12
    相关资源
    最近更新 更多