ege*_*ter 21 mysql ssh laravel-4
我有几个我想访问的远程数据库,但它们只能通过带密钥的SSH访问服务器.
在Sequel Pro中,我连接到这个远程数据库,如下所示:

如何配置我的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' => '',
),
Run Code Online (Sandbox Code Playgroud)
ege*_*ter 32
这是一个可行的解决方案,通过SSH w/a密钥使用在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' => '',
),
Run Code Online (Sandbox Code Playgroud)
二,建立隧道:
ssh -i ~/dev/awskey.pem -N -L 13306:127.0.0.1:3306 ubuntu@54.111.222.333
Run Code Online (Sandbox Code Playgroud)
(我们将SSH密钥传递给i参数并建立SSH连接,绑定到端口13306)
第三,在Laravel应用程序中使用DB通常的方式:
$users = DB::connection('mysql_EC2')
->table('users')
->get();
var_dump($users);
Run Code Online (Sandbox Code Playgroud)
bub*_*bba 11
我写了一个Laravel包来处理我们. stechstudio/laravel-ssh-tunnel
composer require stechstudio/laravel-ssh-tunnel
注册TunnelerServiceProvider::class并设置您的配置.env.
| 归档时间: |
|
| 查看次数: |
22526 次 |
| 最近记录: |