mysql - 使用 SSH 的 Laravel MySql 数据库连接

标签 mysql ssh laravel-4

我有几个想要访问的远程数据库,但它们位于只能通过 SSH 使用 key 访问的服务器上。

在 Sequel Pro 中,我连接到这个远程数据库,如下所示: enter image description here

如何配置我的 Laravel 应用程序以连接到这样的数据库?

'mysql_EC2' => array(
        'driver'    => 'mysql',
        'host'      => '54.111.222.333',
        'database' => 'remote_db',
        'username' => 'ubuntu',
        'password' => 'xxxxxxxxxxxxxxxxxxxx',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

最佳答案

这是一个可行的解决方案,可以通过 SSH 使用 key 使用 EC2 实例上托管的数据库。

首先,在数据库配置中设置相应的连接:

'mysql_EC2' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1:13306',
        'database' => 'EC2_website',
        'username' => 'root',
        'password' => 'xxxxxxxxxxxxxxxx',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

二、建立隧道:

ssh -i ~/dev/awskey.pem -N -L 13306:127.0.0.1:3306 ubuntu@54.111.222.333

(我们将SSH key 传入i参数并建立SSH连接,绑定(bind)到端口13306)

第三,按照您通常在 Laravel 应用程序中的方式使用数据库:

$users = DB::connection('mysql_EC2')
        ->table('users')
        ->get();

var_dump($users);

关于mysql - 使用 SSH 的 Laravel MySql 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27796641/

相关文章:

php - Laravel 更改数据库

php - 如何使用 laravel 4 安静地返回图像?

java - 如何在java中执行mysql查询时运行进度条?

mysql - 仅当我重新声明数据类型时,修改才有效吗?

java - 使用 Tomcat 和 Mysql 将应用程序部署到 Heroku 时出错

mysql - 通缉 : SQL query to count records meeting certain criteria & return info about highest count

linux - 在 jenkins gerrit 触发器中添加 ssh key 文件 : "/...../.ssh/id_rsa" does not exist

php - 找不到 Laravel 4 迁移基表

python - rsync over ssh - 使用 Paramiko 在 Python 中创建的 channel

c# - SFTP 和 "FTP over SSH"的区别