Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel Homestead连接到远程数据库SSH_Php_Mysql_Laravel - Fatal编程技术网

Php Laravel Homestead连接到远程数据库SSH

Php Laravel Homestead连接到远程数据库SSH,php,mysql,laravel,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项

我被困在如何连接到远程数据库

我已经试过跑步了

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

任何其他解决方案?

在这种情况下,您的.env文件应该具有设置
DB_HOST=127.0.0.1
,因为您正在通过隧道将(本地)流量从端口3307上的宅地服务器传输到端口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

在这种情况下,您的.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