我试过寻找答案,但不能完全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以下内容:
现在来了SSH的东西。 与inputSSH会话时input的信息完全相同:
这就是说,如果你想有一个纯粹的基于IP地址的login到MySQL,那么你应该打开服务器来访问远程客户端,但也有一个前端的防火墙,限制每个IP访问基于MySQL 。