Laravel数据库迁移失败使用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容器

 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。 现在尝试几个configuration后,我呼吁复仇者!

有以下的MySQL设置解决了这个问题。

testproject / .ENV:

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

testproject / 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 

testproject / laradock /搬运工-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