Laravel Homestead连接到远程数据库SSH

时间:2016-12-27 03:30:09

标签: php mysql laravel

我遇到了如何连接到远程数据库的问题。

我已经尝试过

ssh -fNg -L 3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx

和我的.env

 DB_CONNECTION=mysql
 DB_HOST=128.xxx.xxx.xxx
 DB_PORT=3307
 DB_DATABASE=projectdb
 DB_USERNAME=forge
 DB_PASSWORD=password;

我可以使用HeidiSql连接远程数据库。但是,当我尝试使用laravel项目进行连接时,它总是返回我

 SQLSTATE[HY000] [2002] Connection timed out

还有其他解决方案吗?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您的.env文件应设置DB_HOST=127.0.0.1,因为您正在从端口3307上的Homestead服务器隧道传输(本地)流量到端口3306上的远程服务器流量,特别是在127.0上。 0.1。

另一种更明确地写出的方法是:

ssh -fNg -L 127.0.0.1:3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx

(但是,您可以保留当前ssh -fNg -L 3307:127.0.0.1:3306 forge@128.xxx.xxx.xxx的命令,我只是告诉您如何以另一种方式编写,以期更清楚地说明这一点。

因此,从Homestead,如果您向127.0.0.1:3307发送流量,它将通过隧道传输到远程服务器,然后连接到其中的127.0.0.1:3306