我不知道如何连接到远程数据库。
我已经尝试过运行
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 上的 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
在其中。
关于php - Laravel Homestead 连接远程数据库 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41338669/