簡體   English   中英

使用 laradock 遷移 Laravel 數據庫失敗

[英]Laravel database migration failed using laradock

我收到以下錯誤

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

當我跑 -

php artisan migrate

我在 laradock 工作區上運行這個命令。 我使用以下命令進入了工作區。

docker-compose exec workspace bash

我正在使用 Laravel 5.5。 我的項目文件夾中有 laradock 以下列方式。

 +testproject
              -Laradock

我的項目 .env (testproject/.env) 文件包含 mysql 的以下設置。

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=33060
DB_DATABASE=testdb
DB_USERNAME=root
DB_PASSWORD=root

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

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

我的 docker-compose.yml 包含 Mysql Container 的以下設置

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端口,我是第一次嘗試laradock。 在嘗試了幾種配置之后,我現在正在呼喚復仇者聯盟!!!

通過以下 mysql 設置解決了該問題。

測試項目/.env:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=testdb
DB_USERNAME=root
DB_PASSWORD=root

測試項目/ laradock/.env:

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

測試項目/ laradock/docker-compose.yml

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 文件夾中運行了以下兩個命令

docker-compose down

docker-compose up -d mysql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM