如何通过PhpStorm Database Tools访问Docker中Laravel Sail的数据库?
在PhpStorm Database Tools中连接Laravel Sail的PostgreSQL数据库
1. 确认数据库端口映射信息
Laravel Sail会将容器内的数据库端口转发到主机端口,先确认具体端口:
- 运行终端命令查看容器端口映射:
在输出的sail pspgsql服务行中,PORTS列会显示类似0.0.0.0:5432->5432/tcp,其中冒号前的5432就是主机的映射端口。 - 或者直接查看项目根目录的
.env文件,找到FORWARD_DB_PORT配置项,其值就是主机端口(默认是5432)。
2. 配置PhpStorm数据库连接
- 打开PhpStorm的Database工具面板,先删除所有旧的残留连接(避免干扰)。
- 新建PostgreSQL连接,填写以下信息:
- Host:
localhost - Port: 刚才查到的主机端口(比如默认
5432) - Database:
.env文件中的DB_DATABASE值(默认是laravel) - User:
.env文件中的DB_USERNAME值(默认是sail) - Password:
.env文件中的DB_PASSWORD值(默认是password)
- Host:
- 点击「Test Connection」测试连接,成功后保存配置。
3. 解决连接失败的额外排查点
如果测试连接仍失败:
- 检查主机防火墙是否允许该端口的入站连接,必要时临时关闭防火墙测试。
- 重启Sail服务确保容器正常运行:
sail down && sail up -d - 验证数据库本身是否可用,进入容器执行命令:
若能正常进入数据库交互界面,说明数据库服务无问题。sail exec pgsql psql -U sail laravel
4. 清理PhpStorm缓存解决表列表异常
如果连接成功后仍显示旧的表列表:
- 按
Ctrl+Shift+A(Windows/Linux)或Cmd+Shift+A(Mac)打开快速搜索框,输入「Invalidate Caches...」。 - 选择「Invalidate and Restart」,等待PhpStorm重启后重新加载数据库连接,旧的残留内容会被清除。
内容的提问来源于stack exchange,提问作者vbulash
相关产品推荐
相关产品推荐

