【问题标题】:Connect a remote mysql server to symfony(doctrine) over ssh通过 ssh 将远程 mysql 服务器连接到 symfony(doctrine)
【发布时间】:2019-09-15 20:12:00
【问题描述】:

我正在创建一个 symfony 应用程序,我需要访问另一个服务器上的数据库(通过 ssh)。我该怎么做?

我在教义文档中找不到任何选项。

【问题讨论】:

  • 您需要在另一台服务器上公开数据库,然后就好像您连接到本地主机一样。只要您的 DBMS 侦听外部套接字(localhost 以外的任何内容),您就应该能够连接到 DB,只要您通常可以连接到服务器。

标签: php mysql symfony ssh doctrine


【解决方案1】:

如果数据库服务器没有开放数据库端口,那么你必须像这样使用ssh作为中间协议。

$host = 'remote host';
$sshuser = 'ssh user';
$sshpass = 'ssh password';
$dbuser = 'db user';
$dbpass = 'db pass';
$dbname = 'db name';

shell_exec("ssh -p$sshpass ssh -o StrictHostKeyChecking=no -f -L 3307:127.0.0.1:3306 $sshuser@$host");

$dbh = new PDO('mysql:host=127.0.0.1;port=3306;dbname=' .$dbname. '', $dbuser, $dbpass);

然后使用 $dhb 与您的数据库进行交互。

也许你必须在教义库上写一些代码来实现你的想法。

【讨论】:

    【解决方案2】:

    您必须打开一个 SSH 隧道。

    请参阅Can I SSH to MySQL with the GUI tools?Access Your MySQL Server Remotely Over SSH

    对于parameters.yml,这看起来像一个本地MySql服务器,这意味着没有什么特别的。

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2016-11-18
      • 2011-04-16
      • 1970-01-01
      • 2016-02-13
      • 2021-07-08
      • 2019-03-30
      • 2010-12-24
      相关资源
      最近更新 更多