【发布时间】: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 语句(修复了其中的小问题),并且也能够使用该用户登录。