我有几个想要访问的远程数据库,但它们位于只能通过 SSH 使用密钥访问的服务器上。
In Sequel Pro, I connect to this remote DB something like this:
我将如何配置我的 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 来使用 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 [email protected] /cdn-cgi/l/email-protection
(我们将SSH密钥传入i参数并建立SSH连接,绑定到端口13306)
第三,像平常在 Laravel 应用程序中一样使用数据库:
$users = DB::connection('mysql_EC2')
->table('users')
->get();
var_dump($users);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)