首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel数据库迁移使用laradock失败

Laravel数据库迁移使用laradock失败
EN

Stack Overflow用户
提问于 2017-10-25 11:26:41
回答 1查看 2.3K关注 0票数 1

我收到以下错误

代码语言:javascript
复制
[Illuminate\Database\QueryException]                                                                                                                 
  SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = testdb and table_name = migrations)

当我跑的时候-

代码语言:javascript
复制
php artisan migrate

我在laradock工作区上运行这个命令。我使用以下命令输入工作区。

代码语言:javascript
复制
docker-compose exec workspace bash

我用的是拉拉5.5。我有拉拉在我的项目文件夹中以下列方式。

代码语言:javascript
复制
 +testproject
              -Laradock

我的项目.env (testproject/..env)文件包含mysql的下列设置。

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=33060
DB_DATABASE=testdb
DB_USERNAME=root
DB_PASSWORD=root

我的laradock .env(testproject/laradock/..env)文件包含mysql的以下设置。

代码语言:javascript
复制
MYSQL_VERSION=8.0
MYSQL_DATABASE=testdb
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=33060
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

for包含以下Mysql容器的设置

代码语言:javascript
复制
mysql:
      build:
        context: ./mysql
        args:
          - MYSQL_VERSION=${MYSQL_VERSION}
      environment:
        - MYSQL_DATABASE={MYSQL_DATABASE}
        - MYSQL_USER={MYSQL_USER}
        - MYSQL_PASSWORD={MYSQL_PASSWORD}
        - MYSQL_ROOT_PASSWORD={MYSQL_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
        - "${MYSQL_PORT}:3306"
      networks:
        - backend

docker中的Mysql安装在端口33060中。我第一次试拉拉。在尝试了几种配置后,我现在呼唤复仇者!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 15:13:14

通过以下mysql设置解决了这个问题。

testproject/..env:

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=testdb
DB_USERNAME=root
DB_PASSWORD=root

testproject/laradock/..env:

代码语言:javascript
复制
MYSQL_VERSION=8.0
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=33060
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

testproject/laradock/docker-compose.yml

代码语言:javascript
复制
mysql:
      build:
        context: ./mysql
        args:
          - MYSQL_VERSION=${MYSQL_VERSION}
      environment:
        - MYSQL_DATABASE=${MYSQL_DATABASE}
        - MYSQL_USER=${MYSQL_USER}
        - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
        - TZ=${WORKSPACE_TIMEZONE}
      volumes:
        - ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
        - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
      ports:
        - "${MYSQL_PORT}:3306"
      networks:
        - backend

我还在laradock文件夹中运行了以下两个命令

代码语言:javascript
复制
docker-compose down

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

https://stackoverflow.com/questions/46931196

复制
相关文章

相似问题

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