由于两个原因,我们需要与 mysql 服务器建立远程连接。
- 测试/更改:我们想要连接到远程 mysql 服务器来管理数据库,例如使用 sqlYOG
- 我们的生产 Web 服务器将使用不在同一 IP 上运行的 mysql 服务器,因此我们需要配置我们的应用程序以使用外部远程 mysql 服务器
我读过关于使用 ssh 隧道并根据 IP 限制用户对 mysql 的访问的文章。我们的 IP 大约每 24 小时变化一次,所以这可能会有点扫兴。
我们正在寻找一种安全而又灵活的方法来设置与 mysql 的远程连接。对此有什么建议吗?
答案1
只需使用 MySQL 本身的 SSL 功能。您甚至可以使用 SSL 客户端证书进行身份验证。
看使用 SSL 进行安全连接了解详情。
答案2
限制 MySQL 用户从 localhost/127.0.0.1 访问,然后在每台客户端机器上执行以下操作:
ssh -L 127.0.0.1:3306:127.0.0.1:3306 user@remotehost
现在,您只需连接到 localhost 即可连接到每台客户端计算机上的 MySQL 数据库。客户端计算机上已运行 MySQL 服务器?只需将行更改为:
ssh -L 127.0.0.1:3307:127.0.0.1:3306 user@remotehost
并使用端口 3307。直观地看,客户端计算机环回接口上的端口 3306(或 3307)实际上秘密地是远程计算机环回接口上的端口 3306。值得注意的是,这适用于所有操作系统,尽管您发出的确切命令可能略有不同。