我有一个 ubuntu 16.04,我在其上运行来自 virtualbox 的 3 个服务器(一个网络服务器、一个主文件服务器和一个 mysql 服务器)。
在这个 mysql 服务器中,我自然有一个内部 ip (192.168 ....) 和一个外部 IP。
但是,当我尝试使用此虚拟机的外部 IP 从 mysql shell、workbench 或 .NET 连接器(例如 mysql -u root -p -h 172.241.442.12)远程连接到此 mysql 服务器时,我总是得到 ERROR: Not connected .
我的问题是我是否必须在我的路由器(3306)中启用端口转发,就像我在网络服务器中启用 80/8080 以使其可以从互联网访问一样。
我以前从未做过,也没有找到任何清晰的教程。我的主要目的是在 vb.net 应用程序中连接到这个数据库。
谢谢!
最佳答案
是的,如果您打算以这种方式访问它,您将需要转发一个端口。您还需要为允许远程访问的用户授予对 MySQL 的访问权限。
GRANT ALL ON somedb.* TO `user`@`123.123.123.123` IDENTIFIED BY 'somePassword'
IP 地址可以是主机名,也可以是
%
匹配一切。也就是说,除非您真的需要与 MySQL 的永久外部连接,否则不应像这样公开它,更好的选择是通过 SSH 隧道传输端口。
ssh -N user@dbserver -L12345:localhost:3306 &
mysql -u root -h localhost -P 12345
关于mysql - mysql服务器ubuntu远程连接的端口转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45911320/