我正在尝试使用在docker-compose.yml文件中定义的mysql参数在容器下运行mysql。但是我运行时拒绝访问: mysql -utest -ptest
我只能与mysql -uroot -proot连接。 请帮帮我。 谢谢。
mysql:
container_name: mysql
image: mysql
restart: always
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_DATABASE: app
MYSQL_ROOT_PASSWORD: test
MYSQL_USER: test
MYSQL_PASSWORD: test
答案 0 :(得分:0)
我完整的docker-compose文件。
version: '3.2'
services:
apache:
container_name: apache
build: .docker/apache/
restart: always
volumes:
- .:/var/www/html/app/
ports:
- 80:80
depends_on:
- php
- mysql
links:
- mysql:mysql
php:
container_name: php
build: .docker/php/
restart: always
volumes:
- .:/var/www/html/app/
working_dir: /var/www/html/app/
mysql:
container_name: mysql
image: mysql
restart: always
volumes:
- .docker/data/db:/var/lib/mysql
environment:
MYSQL_DATABASE: app
MYSQL_ROOT_PASSWORD: test
MYSQL_USER: test
MYSQL_PASSWORD: test
答案 1 :(得分:0)
尝试使用指定的数据库名称启动,如下所示:
mysql -u test -p test app
说明:
MYSQL_USER,MYSQL_PASSWORD 这些变量是可选的,与创建新用户和设置该用户的密码一起使用。将为该用户授予MYSQL_DATABASE变量指定的数据库的超级用户权限(请参见上文)。这两个变量都是创建用户所必需的。
从MySQL docker hub页面
权限仅授予由环境变量指定的数据库。当您尝试登录默认数据库时,您仅对应用程序数据库没有权限。
答案 2 :(得分:0)
也许您可以按照以下步骤尝试将交互式bash进程附加到已运行的容器:
docker container ls
获取容器ID或名称(我说的是mysql容器,根据您的docker-compose.yml文件,该容器的名称应为mysql
)< / li>
docker exec -it mysql bash
将交互式bash进程与正在运行的容器相关联mysql --user=test --password=test
,您应该可以继续进行工作