【问题标题】:Use SSH tunneling to connect to a remote mysql server using "localhost"使用 SSH 隧道通过“localhost”连接到远程 mysql 服务器
【发布时间】:2016-11-18 11:30:52
【问题描述】:

嘿,我对这种东西有点陌生,我希望标题有意义。

基本上我有一个在 LAMP 堆栈上运行的 mysql 服务器,带有一些平均遗留代码,所有到数据库的连接都使用mysql_connect("localhost", "user", "pass")。 (我知道不好,不是我写的!)。

我想运行我自己的本地版本的网站以进行调试/开发,但我不知道如何连接到我们的数据库(我们有一个远程运行的测试数据库,每天都会更新实时数据)。我已经尝试过远程连接,但我无法弄清楚。

我想知道我是否保留代码(写入“localhost”连接),并使用某种 SSH 隧道来“欺骗”代码连接到远程数据库?或者在我的本地机器上设置某种mysql“服务器”会更容易吗?使用 phpstorm 内置的“数据库”功能,我设法使用 ssh 隧道连接到我们的数据库,但从那里我完全迷路了。再说一次,我对此很陌生,所以如果这听起来很幼稚,我深表歉意。

任何对解决方案的帮助都会很棒。

【问题讨论】:

  • 您应该能够连接到远程数据库,很可能需要将具有测试数据库的远程服务器配置为允许从本地环境进行连接。
  • 我确实将我的用户设置为拥有完整的“授权”'k4kuz0'@'%',我相信这意味着我可以从“任何地方”连接。但我什至不确定它是否可以接受远程连接?在服务列表中,mysql 正在运行但 mysqld 没有?我认为哪个是“远程”连接部分?
  • 不光是数据库用户,服务器本身也有防火墙,需要确保可以连接。
  • 嗯,我不知道我的理解是否正确。你的 web 服务器和 mysql 服务器在同一台服务器上吗?如果没有,你应该设置 mysql 绑定地址。阅读以下链接:help.ubuntu.com/community/ApacheMySQLPHP
  • 我的/etc/mysql/my.cnf 中还有bind-address = 127.0.0.1,需要注释掉吗...?

标签: php mysql database ssh


【解决方案1】:

如果您使用的是 Linux,则必须在客户端和服务器上都安装 Stunnel。

看这里:https://blog.thesysadmins.co.uk/using-stunnel-to-encrypt-unsecure-connections.html

通过正确配置 Stunnel,您将能够在实际引用远程服务器时将 mysqli_connect 与“locahost”一起使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 2017-09-27
    • 2020-09-30
    • 2014-05-03
    • 2020-07-05
    • 2019-08-01
    • 2019-11-19
    相关资源
    最近更新 更多