【问题标题】:MariaDB: Access denied from remote acess, but supposedly have permissionsMariaDB:远程访问被拒绝,但据说有权限
【发布时间】: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


【解决方案1】:

好的,我发现问题是端口冲突。基本上,虽然我正确配置了所有东西,因为已经有另一个来自 docker 的服务(用于另一个项目)运行 mariadb(我相信没有启动,因为我从来没有在这里使用过它),一切都试图访问它而不是我的主机安装。

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 2014-08-10
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2022-01-10
    • 2017-10-25
    相关资源
    最近更新 更多