gpt4 book ai didi

php - Docker 中的 MySQL 数据库访问被拒绝

转载 作者:行者123 更新时间:2023-11-29 10:15:31 27 4
gpt4 key购买 nike

我的 Docker (v.2) docker-compose.yml 文件有 2 个 Ubuntu 镜像和 2 个 MariaDB 镜像:

app:
container_name: app
image:php-apache-dev:ubuntu-16.04
links:
- mysql
depends_on:
- mysql
ports:
- '8443:443'
volumes:
- .:/app
environment:
docker: 'true'
PHP_DEBUGGER: 'xdebug'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '\.(.*)$$'
working_dir: '/app'
CONF_FILE: 'conf/local/develop.php'
test:
container_name: test
image:php-apache-dev:ubuntu-16.04
links:
- mysql_test
depends_on:
- mysql_test
ports:
- '8444:443'
volumes:
- .:/app
environment:
docker: 'true'
WEB_DOCUMENT_ROOT: '/app/public'
WEB_NO_CACHE_PATTERN: '\.(.*)$$'
working_dir: '/app'
CONF_FILE: 'conf/local/test.php'
mysql:
image: mariadb:latest
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'
mysql_test:
image: mariadb:latest
ports:
- '3307:3306'
environment:
MYSQL_ROOT_PASSWORD: 'dev'
MYSQL_DATABASE: 'dev_test'
MYSQL_USER: 'dev'
MYSQL_PASSWORD: 'dev'

一种用于开发,一种用于测试。当我访问第一个(在 localhost:4443 上)时,它可以工作。当我访问第二个网站(在 localhost:4444 上)时,我可以查看该网站,但它拒绝用户访问:

Access denied for user 'dev'@'%' to database 'dev_test'

我对第二个站点的配置设置为访问第二个 MySQL 端口/用户:

'db_port'             => env('DB_PORT', '3307'),
'db_name' => env('DB_NAME', 'dev_test'),

我尝试了 this question 的答案但没有成功。如果我docker exec bash进入测试数据库镜像,并运行SHOW GRANTS FOR dev,它会说:

GRANT ALL PRIVILEGES ON `dev_test`.* TO 'dev'@'%'

最佳答案

您可能忘记在第二个站点中使用正确的 MySQL 主机。

关于php - Docker 中的 MySQL 数据库访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177757/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com