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

标签 mysql ubuntu tcp server ubuntu-server

我有一个 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/

相关文章:

mysql - 在mysql中获取不同时间段的特定数据

mysql - 左连接重复列

apache - PHP 未在 apache 服务器上运行

javascript - 控制台 kill 命令在 Ubuntu 上不起作用

php 全局在类内但在函数外?

mysql - 如何使用 clojure.java.jdbc 从 MySQL 数据库延迟流式传输结果?

邮件服务器重新启动后 PHPMailer 不起作用

ios - 如何在 iOS 上检测设备 IP 地址更改?

sockets - Azure VM TCP 空闲超时

c# - 在 TCP 中接收数据