我为 elasticsearch 和 mysql 制作了 docker-compose。所有容器都“安全地”安装,但是当我尝试使用管理员登录我的数据库并尝试多次时,我不能,并且出现了一些错误:SQLSTATE[HY000] [2002] Connection refused
。我不知道为什么,我试图重新启动我的 docker,但我的 db_container 一直在重新启动 SQLSTATE[HY000] [2002] Host is unreachable
。在我的 db_container 不断重新启动之前,我已经尝试使用 docker exec -it db_container_name bash
手动创建数据库,但仍然出现相同的错误,我的意思是无法连接。
问题:
我的 .env:
DB_MASTER_HOST= $DB_MASTER_HOST
DB_CONNECTION=mysql
DB_MASTER_USERNAME= mysql
DB_MASTER_PASSWORD= mysql
DB_MASTER_NAME= horde
DB_MASTER_PORT= 3306
我的 docker-composer.yml:
version: "3.7"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.0
environment:
- node.name=elastic
- cluster.name=es-docker-cluster
- cluster.initial_master_nodes=elasticsearch
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- /mnt/y/new/app/docker/elasticsearch/data
ports:
- 9200:9200
adminer:
image: adminer
restart: always
ports:
- 9000:8080
environment:
- ADMINER_DESIGN='nette'
mysql_db:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
restart: "on-failure"
environment:
MYSQL_DATABASE: "horde"
MYSQL_USER: "mysql"
MYSQL_PASSWORD: "mysql"
MYSQL_ROOT_PASSWORD: "mysql"
volumes:
- /mnt/y/new/app/docker/database/data:/var/lib/mysql
- /mnt/y/new/app/docker/database/conf.d:/etc/mysql/conf.d
ports:
- 3306:3306
mysql_slave:
image: mysql:latest
command: --default-authentication-plugin=mysql_native_password
restart: "on-failure"
environment:
MYSQL_DATABASE: "horde"
MYSQL_USER: "mysql"
MYSQL_PASSWORD: "mysql"
MYSQL_ROOT_PASSWORD: "mysql"
ports:
- 3307:3306
日志:
2021-04-16 06:53:04+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-04-16 06:53:07+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2021-04-16 06:53:07+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
2021-04-16 06:53:08+00:00 [Note] [Entrypoint]: Initializing database files
2021-04-16T06:53:08.860057Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.23) initializing of server in progress as process 42
2021-04-16T06:53:08.954226Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2021-04-16T06:53:08.954244Z 0 [ERROR] [MY-013236] [Server] The designated data directory /var/lib/mysql/ is unusable. You can remove all files that the server added to it.
2021-04-16T06:53:08.955403Z 0 [ERROR] [MY-010119] [Server] Aborting
2021-04-16T06:53:08.962536Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.23) MySQL Community Server - GPL.