我尝试了几个选项,并且与设置与Laradock的mysql连接相混淆。我可以互换地将mysql版本更改为5.7和5.6,但仍然收到错误。
我每次收到
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = api and table_name = migrations)
Laravel项目.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3310
DB_DATABASE=api
DB_USERNAME=root
DB_PASSWORD=root
Laradock .env
### MYSQL #################################################
MYSQL_VERSION=latest
MYSQL_DATABASE=api
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_PORT=3310
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d
泊坞窗,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_PATH_HOST}/mysql:/var/lib/mysql
- ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
ports:
- "${MYSQL_PORT}:3310"
networks:
- backend
我不得不将端口从3306更改为3310,因为它抱怨已经分配了端口
我能够找出问题所在。帮助任何可能遇到这种丑陋的人。首先,我已经在端口3306上运行了MySQL,它是版本8.0并且尝试运行docker-compose up -d mysql,它标记了一个错误,所以我决定在docker-compose.yml和Laradock .env上将端口更改为3310并在项目.env上保留3306。它完美无缺。我试着登录到mysql控制台来读取端口。我在.env和phpmyadmin上将DB_HOST更改为mysql - 在端口8080,server = mysql上。