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