我正在使用Sail进行我的副项目,并使用Homestead进行工作。我得到了3306端口的冲突,所以我把Sail移到了3307,但现在由于某种原因,我不能让TablePlus连接到数据库。只是为了弄清楚,网站加载在浏览器和sail tinker
,sail artisan:migrate
都可以正常工作,只是TablePlus不工作?!上周末当我使用它时,它工作得很好,但在使用3306
时遇到问题后,我决定将端口更改为3307
,我已经运行docker-compose down -v
来删除包括数据库在内的卷,并将其恢复,迁移后站点可以工作,但TP仍然无效。以下是我的.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=tall_events
DB_USERNAME=sail
DB_PASSWORD=password
FORWARD_DB_PORT=3307
和我的docker-compose.yml
文件:
mysql:
image: "mysql:8.0"
ports:
- "${FORWARD_DB_PORT:-3307}:3307"
environment:
MYSQL_ROOT_PASSWORD: "${DB_PASSWORD}"
MYSQL_DATABASE: "${DB_DATABASE}"
MYSQL_USER: "${DB_USERNAME}"
MYSQL_PASSWORD: "${DB_PASSWORD}"
MYSQL_ALLOW_EMPTY_PASSWORD: "no"
volumes:
- "sailmysql:/var/lib/mysql"
它在Docker Desktop上显示为端口3307
:
但是,当我尝试在3307
上连接TablePlus时,我得到了以下信息:
当我尝试3306
时,我会得到
发布于 2021-05-08 20:52:14
在TablePlus中检查您的主机。
在您的.env文件中,DB_HOST是"mysql“。TablePlus中的主机似乎被设置为"127.0.0.1“
另外,检查数据库名称。它看起来像是设置为"da"-something,而它应该是"tall_events“。
发布于 2021-05-09 05:21:37
当你运行sail up -d
时,docker-compose会创建一个虚拟网络。使用现有配置,mysql仍然监听该虚拟网络上的端口3306,但是在docker-compose.yml
中,您将机器上的端口3307映射到mysql容器上的3307。
您需要做的是将机器上的端口3307映射到mysql容器上的端口3306。为此,您可以更新docker-compose.yml
的端口部分,如下所示:
mysql:
ports:
- "3307:3306"
这意味着您可以使用TablePlus连接到localhost:3307
,但您的Laravel应用程序(在连接到虚拟网络的docker容器中运行)仍然可以连接到该虚拟网络上的mysql:3306
。
https://stackoverflow.com/questions/67446406
复制相似问题