如何允许从动态 IP 进行 MySQL 远程访问?

如何允许从动态 IP 进行 MySQL 远程访问?

我尝试寻找答案,但找不到。

我需要通过本地 MySQL Workbench 远程访问 MySQL 实例。端口已打开(我相信)。我可以通过 Telnet 进入它。

我看到的所有例子都这么说

GRANT ALL PRIVILEGES ON *.* TO USER-NAME@IP IDENTIFIED BY "PASSWORD";

问题在于我通过动态 IP 进行远程操作。我收到的错误是

拒绝用户“root”@“c-67-166-150-41.hsd1.ca.comcast.net”访问(使用密码:是)

我该如何设置才能允许我进入?如果我进行远程控制,我确实拥有远程计算机上 MySQL Workbench 的 root 访问权限。

谢谢

答案1

您应该尝试使用“%”作为主机部分。例如:

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

(取自MySQL 文档

确保更改正确生效:

flush privileges

答案2

使用某种隧道来访问系统会更好。Putty/SSH 很好地提供了此功能。

答案3

我不建议向除 之外的任何人开放 MySQL localhost。但如果您使用处理 SSH 隧道的客户端,则可以远程登录。MySQL 工作台似乎不行。

SSH 隧道的好处是,您可以不向外界公开 MySQL,从而保证服务器的安全。您可以根据需要手动设置 SSH 隧道,但许多 DB 客户端都内置了此功能。

在 Mac 上,续集专业版效果很好。

它为您提供了通过 SSH 进行连接的选项。进入该配置后,您输入以下内容:

  • 姓名:[您想要的连接名称任意]
  • MySQL 主机:127.0.0.1 [这是机器的本地主机]
  • 用户名:[数据库用户名]
  • 密码:[数据库密码]
  • 数据库:[数据库名称或空白以显示您有权访问的所有内容]
  • 港口:3306 [标准 MySQL 端口]

现在开始 SSH 内容。它与您进入 SSH 会话时输入的信息 100% 相同:

  • SSH 主机:[服务器的主机名或 IP 地址]
  • SSH 用户:[SSH 用户名]
  • SSH 密码:[SSH 密码]
  • SSH 端口:[留空则为标准设置]

也就是说,如果您确实希望通过纯 IP 地址登录 MySQL,那么您应该打开服务器以访问远程客户端,但也要 在前端设置防火墙,限制每个 IP 对 MySQL 的访问。

相关内容