首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLState[HY000]与docker的连接被拒绝

SQLState[HY000]与docker的连接被拒绝
EN

Stack Overflow用户
提问于 2021-01-13 00:33:09
回答 1查看 141关注 0票数 0

我正在使用Docker在我的本地机器上设置一个现有的Laravel项目。我意识到类似的问题已经被问了很多次,常见的重复是“将DB_HOST更改为127.0.0.1,然而,我的项目已经设置了该设置。”

每当我尝试运行:docker-compose exec app php artisan migrate:install来设置数据库时,我得到这个错误:

代码语言:javascript
复制
In Connection.php line 664:

  SQLSTATE[HY000] [2002] Connection refused (SQL: create table `migrations` (`id` int unsigned not null auto_increment prima
  ry key, `migration` varchar(255) not null, `batch` int not null) default character set utf8mb4 collate utf8mb4_unicode_ci)


In Connector.php line 67:

  SQLSTATE[HY000] [2002] Connection refused

.env:

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3385*
DB_DATABASE=project
DB_USERNAME=user
DB_PASSWORD=password

docker-compose.yml:

代码语言:javascript
复制
services: 
...
  mysql:
    image: mysql:5.5
    ports:
      - 3385:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=project
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
    volumes:
      - data:/var/lib/mysql

使用上述凭据,我能够通过SQLPro或docker-compose exec mysql bash等工具成功连接到数据库。我知道这可能是一个配置问题,但我不确定问题出在哪里,Laravel,甚至PHP世界,都不是我的强项。

*这不是默认端口,默认端口也不起作用,我更改了端口号,这样它就不会与我在本地运行的MySQL实例冲突。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-13 00:43:26

您的app容器服务需要连接到mysql:3306,因此

代码语言:javascript
复制
DB_HOST=mysql
DB_PORT=3306

如果不需要从主机连接到MySQL,则根本不需要ports部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65688042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档