【问题标题】:port fowarding for mysql server ubuntu remote connectionmysql服务器ubuntu远程连接的端口转发
【发布时间】:2018-02-05 06:29:00
【问题描述】:

我有一个 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 : 未连接。

我的问题是我是否必须在我的路由器 (3306) 中启用端口转发,就像我在网络服务器中启用 80/8080 以使其可以从互联网访问一样。

我以前从未做过,也没有找到任何清晰的教程。我的主要目的是在 vb.net 应用程序中连接到这个数据库。

谢谢!

【问题讨论】:

    标签: mysql ubuntu tcp server ubuntu-server


    【解决方案1】:

    是的,如果您打算以这种方式访问​​它,您将需要转发一个端口。您还需要为允许远程访问的用户授予对 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
    

    【讨论】:

    • 谢谢!但是端口转发是可以通过终端完成的还是使用路由器完成的?另外,我需要在ubuntu mysql服务器中设置一个静态IP吗?再次感谢您的帮助。
    • @HenriqueMuzzi 服务器应该有一个静态IP,是的,端口转发是通过路由器。但是,如果您通过 SSH 隧道,则不需要 mysql 端口转发。
    猜你喜欢
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    相关资源
    最近更新 更多