【问题标题】:How to Connect Remote Database in Laravel 5 using ssh如何在 Laravel 5 中使用 ssh 连接远程数据库
【发布时间】:2016-04-21 23:03:57
【问题描述】:

我正在使用 Laravel 5.0。我想知道如何使用 SSH 访问远程数据库。

数据库.php

'mysql' => [
            'driver'    => 'mysql',
            'host'      => 'www.xxxxx.in',
            'port' => '2222',
            'database'  => 'xxxx_xxx',
            'username'  => 'xxxxx_xx',
            'password'  => 'xxxx0xx',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
            'engine'    => null,
        ],

【问题讨论】:

  • 我对这个问题的答案很感兴趣。不仅适用于 Laravel 场景,也适用于其他场景

标签: php laravel ssh


【解决方案1】:

您应该创建 SSH 隧道。

关于 SSH 隧道的更多信息和一些示例: http://chxo.com/be2/20040511_5667.html

例子:

ssh -fNg -L 3307:127.0.0.1:3306 myuser@remotehost.com
mysql -h 127.0.0.1 -P 3307 -u dbuser -p db

当然,那么您需要更改凭据:

'mysql' => [
            'driver'    => 'mysql',
            'host'      => 'www.xxxxx.in',
            'port'      => '3307',
            'database'  => 'xxxx_xxx',
            ...
        ],

【讨论】:

  • 我正在寻找一个很好的答案来指出这个问题的重复项 - 就是这样,但显示的配置是错误的,并且会让提出这个问题的人感到困惑。我建议在这里将www.xxxxx.in 更改为127.0.0.1 以避免混淆。
【解决方案2】:

您需要创建一个 SSH 隧道as Alexey says

您还需要将 MySQL 连接端口端口转发到您的本地;就像 Alexey 所做的那样。

然后在您的 Laravel 配置中,将端口设置为转发端口。因此,根据 Alexey 的回答,您的数据库配置将是这样的

'mysql' => [
      'driver'    => 'mysql',
      'host'      => 'www.xxxxx.in',
      'port'      => '3307',
      'database'  => 'xxxx_xxx',
      'username'  => 'xxxxx_xx',
      'password'  => 'xxxx0xx',
      'charset'   => 'utf8',
      'collation' => 'utf8_unicode_ci',
      'prefix'    => '',
      'strict'    => false,
      'engine'    => null,
],

编辑
万一阿列克谢的回答消失了,这些是我回答的相关部分

创建 ssh 隧道

ssh -fNg -L 3307:127.0.0.1:3306 myuser@remotehost.com

使用本地连接

mysql -h 127.0.0.1 -P 3307 -u dbuser -p db

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2019-07-15
    • 2017-04-25
    • 2021-04-05
    • 2018-11-06
    • 2016-10-29
    • 2014-10-19
    相关资源
    最近更新 更多