【问题标题】:Access denied for user in mariadb [duplicate]mariadb中的用户访问被拒绝[重复]
【发布时间】:2021-10-27 23:03:25
【问题描述】:

我在 MariaDB 中有一个用户名为“boto”,主机为“%”

Grants for boto@%
+-------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `boto`@`%` IDENTIFIED BY PASSWORD '*000000000000000000000000000' |
| GRANT ALL PRIVILEGES ON `test_db`.* TO `boto`@`%` 

但我无法连接...

mysql -u boto -p test_db
ERROR 1045 (28000): Access denied for user 'boto'@'localhost' (using password: YES)

怎么了?在哪里查找错误?

在创建它时,使用了以下算法:

mysql -u root -p
CREATE DATABASE test_db
CREATE USER 'boto'@'%' IDENTIFIED BY 'k*********h';
GRANT ALL PRIVILEGES ON test_db.* TO 'boto’@‘%’ IDENTIFIED BY 'k*********h’;
FLUSH PRIVILEGES;

当我选择用户时,主机来自 mysql.user;在mysql -u root -p 下我看到了:

boto %
root localhost

当我选择 user(),current_user();在 mysql -u boto -p 下我看到了:

boto@localhost boto@% 

【问题讨论】:

  • @Progman 我如何检查这个?我以为我只创建了一个用户 - user@% 而没有创建一个 user@localhost。当我进入 mysql-u boot-p 并输入 user(),current_user();我得到 user() - bot@localhost 和 current_user() - bot@%
  • edit您的问题包括有关您如何创建用户、为该用户设置密码、如何创建test_db 数据库以及如何分配权限的 SQL 语句.
  • @Progman 我在问题中添加了我如何做到这一点的描述......请看一下。
  • 那么,您实际可以使用mysql -u boto -p 登录并从SELECT user(), current_user() 获取结果为“boto@localhost boto@%”?那么问题似乎是什么?我尝试了创建新用户的 SQL 语句(修复了其中的小问题),并且也能够使用该用户登录。

标签: mysql mariadb mariasql


【解决方案1】:

用户是 boto 还是 bot ?你的权限查询说GRANT USAGE ON . TO bot

用户可以使用以下查询来验证权限

SHOW GRANTS FOR 'boto'@localhost;   

# Creating user
CREATE USER 'boto' IDENTIFIED BY 'mypassword';
GRANT USAGE ON *.* TO 'boto'@'%' IDENTIFIED BY 'mypassword';
FLUSH PRIVILEGES;

Ref

【讨论】:

  • 我在这里打错了,对吧……
猜你喜欢
  • 2016-08-11
  • 2018-07-03
  • 2011-08-18
  • 2018-04-22
  • 2016-03-09
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2019-12-15
相关资源
最近更新 更多