第二个mariadb+phpmyadmin Docker容器访问被拒绝



我在本地开发计算机上使用了mariadb+phpmyadmin容器。我想创建另一个mariadb+phpmyadmin容器,但我收到错误:[警告]用户'root'@'127.0.0.1'的访问被拒绝(使用密码:YES(。我不知道哪里出了问题。我尝试添加参数:MYSQL_HOST: '%'并修改行:test: mysqladmin ping -h $$MYSQL_HOST -u $$MYSQL_USER --password=$$MYSQL_PASSWORD但仍然没有成功。

工作码头组合yml

version: '3.9'
networks:
rosetta_net:
driver: bridge
services:
maria_db_service:
image: mariadb:10.5.9
container_name: 'rosetta-api-db'
restart: always
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: 'root123'
MYSQL_USER: 'root'
MYSQL_PASSWORD: 'root'
MYSQL_DATABASE: 'rosetta'
volumes:
- ./docker/db/mariadb/data:/var/lib/mysql
- ./docker/db/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
networks:
- rosetta_net
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
interval: 5s
retries: 5
phpmyadmin_service:
image: phpmyadmin/phpmyadmin:5.1
container_name: 'rosetta-api-db-admin'
ports:
- '8081:80'
environment:
PMA_HOST: db_server
MAX_EXECUTION_TIME: 3600
UPLOAD_LIMIT: 128M
depends_on:
maria_db_service:
condition: service_healthy
volumes:
- ./docker/db/phpmyadmin/sites-enabled:/etc/apache2/sites-enabled
- db_rosetta_data:/var/www/html
networks:
- rosetta_net
volumes:
db_rosetta_data:

不工作docker-compose.yml(它与前一个非常相似(:

version: '3.9'
networks:
parkovisko_net:
driver: bridge
services:
maria_db_service:
image: mariadb:10.5.9
container_name: 'parkovisko-api-db'
restart: always
ports:
- '3307:3306'
environment:
MYSQL_ROOT_PASSWORD: 'root123'
MYSQL_USER: 'root'
MYSQL_PASSWORD: 'root'
MYSQL_DATABASE: 'parkovisko'
volumes:
- ./docker/db/mariadb/data:/var/lib/mysql
- ./docker/db/mariadb/my.cnf:/etc/mysql/conf.d/my.cnf
networks:
- parkovisko_net
healthcheck:
test: mysqladmin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
interval: 5s
retries: 5
phpmyadmin_service:
image: phpmyadmin/phpmyadmin:5.1
container_name: 'parkovisko-api-db-admin'
ports:
- '8083:80'
environment:
PMA_HOST: db_server
MAX_EXECUTION_TIME: 3600
UPLOAD_LIMIT: 128M
depends_on:
maria_db_service:
condition: service_healthy
volumes:
- ./docker/db/phpmyadmin/sites-enabled:/etc/apache2/sites-enabled
- db_parkovisko_data:/var/www/html
networks:
- parkovisko_net
volumes:
db_parkovisko_data:

问题是,您对两个docker compose文件都使用相同的卷,因此MYSQL无法初始化为2个容器安装相同的卷

有多种方法可以解决此问题:

将其更改为命名卷:

volumes:
- mariadb-data:/var/lib/mysql

使用cp将数据复制到另一个文件夹,然后再次装入(假设您希望在两个容器上都有相同的数据(。

这同样适用于.cnf和phpmyadmin容器

最新更新