You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Sail双站点共用同一数据库出现连接拒绝问题求助

核心问题排查方向

1. 自有数据库3310端口连接拒绝问题

  • 容器内部通信无需使用宿主机映射端口:你在宿主机用DBeaver连接的127.0.0.1:3310是Docker映射到宿主机的端口,但第二个站点的Laravel容器和自身的MariaDB容器同属一个内部网络,.env里的DB_PORT应该填容器内部的默认端口3306,而非对外映射的3310,MariaDB容器内部本身只监听3306端口,写3310自然会触发连接拒绝。
  • 确认DB_HOST配置:同compose组内的数据库服务直接填服务名mariadb即可,不要填127.0.0.1或者宿主机IP。

2. 跨容器连接第一个站点3306数据库的1044权限问题

  • 先修正连接地址配置:
    不要用宿主机IP+3306的方式连接,同sail网络下直接填写第一个站点的MariaDB容器名作为DB_HOST(可执行docker ps查看容器名,通常格式为「第一个站点目录名-mariadb-1」),DB_PORT固定填3306即可。
    注意两个站点的compose配置里数据库服务都叫mariadb,如果直接填mariadb作为主机名,会默认解析到当前站点自身的MariaDB容器,不会指向第一个站点的数据库。
  • 校验数据库用户权限:
    进入第一个站点的数据库,执行SQL查询SELECT user,host FROM mysql.user WHERE user='你的数据库用户名';,确认对应用户的host字段为%(允许任意来源访问),如果是localhost或者仅限定同组容器域名,需要手动执行授权语句:
    GRANT ALL PRIVILEGES ON 目标数据库名.* TO '你的用户名'@'%';
    FLUSH PRIVILEGES;
    
  • 确认网络归属:执行docker network inspect sail,确认两个站点的Laravel容器、第一个站点的MariaDB容器都已加入该网络,没有网络隔离的情况。

内容的提问来源于stack exchange,提问作者Michalis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:57:00