如何从一个dynamicIP允许MySQL远程访问?

我试过寻找答案,但不能完全find答案。

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

我所看到的所有例子都沿用了一些说法

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

这个麻烦是我从一个dynamic的IP远程。 我得到的错误是

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

我如何设置它以允许我进入? 如果我远程控制,我对远程机器上的MySQL Workbench拥有root权限。

谢谢

您应该尝试使用主机部分的“%”。 就像是

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

(取自MySQL文档 )

确保更改说话影响:

 flush privileges 

通过使用某种types的隧道来访问系统,你会好得多。 Putty / SSH很好地提供了这个function。

我不会build议打开MySQL的localhost以外的任何人。 但是,如果您使用处理SSH隧道的客户端,则可以远程访问。 哪个MySQL Workbench似乎没有做。

SSH隧道的好处是你可以通过不向世界公开MySQL来保证服务器的安全。 如果您愿意,您可以手动设置SSH隧道,但许多DB客户端都具有此function。

在Mac上, Sequel Pro工作得很好。

它使您可以select通过SSHselect连接。 一旦在该configuration中input以下内容:

  • 名称: [无论您想要的连接名称]
  • MySQL主机: 127.0.0.1 [这是本地主机到机器]
  • 用户 [db用户名]
  • 密码: [db密码]
  • 数据库: [数据库名称或空白显示您有权访问]
  • 端口: 3306 [标准MySQL端口]

现在来了SSH的东西。 与inputSSH会话时input的信息完全相同:

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

这就是说,如果你想有一个纯粹的基于IP地址的login到MySQL,那么你应该打开服务器来访问远程客户端,但也有一个前端的防火墙,限制每个IP访问基于MySQL 。