mysql 服务器 ubuntu 远程连接的端口转发

port fowarding for mysql server ubuntu remote connection

我有一个 ubuntu 16.04,我在上面 运行 3 个来自 virtualbox 的服务器(一个网络服务器,一个家庭文件服务器和一个 mysql 服务器)。

在这个 mysql 服务器中,我自然有一个内部 ip (192.168....) 和一个外部 ip。

然而,当我尝试从 mysql shell、workbench 或 .NET 连接器(例如 mysql - u root -p -h 172.241.442.12) 使用这个虚拟机的外部 IP 我总是得到 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