【发布时间】:2020-03-10 12:50:59
【问题描述】:
我刚刚在我的机器上安装了 MariaDB,创建了一个新用户并授予它所有权限。
这是我从本地主机连接的新帐户,该帐户应该能够从任何地方连接。
MariaDB [(none)]> SELECT USER(), CURRENT_USER();
+--------------------+-----------------+
| USER() | CURRENT_USER() |
+--------------------+-----------------+
| USERNAME@localhost | USERNAME@% |
+--------------------+-----------------+
这是我,使用 root 帐户检查其所有权限。
MariaDB [(none)]> SHOW GRANTS FOR 'USERNAME'@'%';
+--------------------------------------------------------------------------------------------------------+
| Grants for USERNAME@% |
+--------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'USERNAME'@'%' IDENTIFIED BY PASSWORD '*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' |
| GRANT ALL PRIVILEGES ON `USERNAME`.* TO 'USERNAME'@'%' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------+
2 rows in set (0.002 sec)
现在,当我尝试从其他任何地方连接时,它说我没有权限。
这是来自流浪者
vagrant@ubuntu-bionic:/vagrant$ mysql --user=USERNAME --password=123456 --host=192.168.33.1 --port=3306
ERROR 1045 (28000): Access denied for user 'USERNAME'@'192.168.33.10' (using password: YES)
vagrant@ubuntu-bionic:/vagrant$ mysql --user=USERNAME --password=123456 --host=10.0.2.2 --port=3306
ERROR 1045 (28000): Access denied for user 'USERNAME'@'172.16.254.1' (using password: YES)
甚至尝试从主机使用 DBeaver 进行设置,它给了我同样的Access denied for user 'USERNAME'@'172.16.254.1' (using password: YES) 错误。
我对数据库不是那么了解,但是在尝试了解我的所有步骤时,这让我感到厌烦,因为据推测,“%”意味着在那种情况下的任何地方。
感谢您的帮助。
我认为不必说,但我审查了用户名和密码。另外,以防万一,此用户名与我系统的用户名无关。
Server version: 10.3.22-MariaDB-0ubuntu0.19.10.1 Ubuntu 19.10
【问题讨论】:
-
您是否也刷新了权限?
-
刷了权限,甚至重启了服务。考虑到昨天设置,今天刷新后恢复,“关机再开机”也完成了。
-
由于某种原因,它看起来像是错误的密码或用户(您可以访问错误日志吗?也许您会看到更多)
-
如果我直接从主机运行
mysql --user=USERNAME --password=123456,从命令行,它可以工作(这就是我得到| USERNAME@localhost | USERNAME@% |的方式)部分,所以用户名和密码没有错。问题似乎与位置有关。具有讽刺意味的是,如果我添加 --host 部分,即使从主机命令行它也不会工作,并给我同样的错误。 -
你能显示数据库中用户的用户名和主机吗?我认为您可能定义了用户 user@location,当您使用 ---host 时,您的主机变为其他主机而不登录。例如,
CREATE USER 'user'@'localhost' IDENTIFIED BY '...';与CREATE USER 'user'@'%' IDENTIFIED BY '....';完全不同,即使您从本地主机连接并且是显示不同。
标签: mysql mariadb remote-access