Mysql 无法查看docker容器中的表
以下是sql的容器内的代码:Mysql 无法查看docker容器中的表,mysql,docker,mariadb,Mysql,Docker,Mariadb,以下是sql的容器内的代码: mysql: image: mariadb command: --max_allowed_packet=32505856 environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_USER=abc - MYSQL_PASSWORD=xyz.123 - MYSQL_DATABASE=abc - MYSQL_ALLOW_EMPTY_PASSWORD=true r
mysql:
image: mariadb
command: --max_allowed_packet=32505856
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=abc
- MYSQL_PASSWORD=xyz.123
- MYSQL_DATABASE=abc
- MYSQL_ALLOW_EMPTY_PASSWORD=true
restart: always
ports:
- 3306:3306
volumes:
# Using volume mount to mimic prod setup
- /tmp/mysql:/vol_mount/
我一直在尝试访问数据库以查看表,但到目前为止无法访问
我尝试过运行以下命令:
docker exec -it container_name mysql -uabc -p
然后在提示输入密码时尝试bot“root”和“xyz.123”。但我会有个错误
“错误1045(28000):用户'abc'的访问被拒绝@'2001:db8:1::a7”
(使用密码:是)
我需要知道允许我访问DB和查看表的命令。谢谢。这将使用root用户打开mysql控制台:
docker exec-ti mariadb test sh-c'mysql-uroot-p${mysql\u ROOT\u PASSWORD}
请注意,我在compose文件中将容器命名为mariadb test
,如果您愿意,可以使用其他名称
同样,您也可以连接使用过的abc
:
docker exec-ti mariadb test sh-c'mysql-uabc-p${mysql\u PASSWORD}
更新:
运行以下命令检查容器中的环境变量。它们应该与docker-compose.yml中提供的值匹配
docker exec-ti mariadb test sh-c'env|grep MYSQL'
因为在我的解决方案中,你甚至不必输入密码,它应该可以工作。请尝试从干净的状态开始:关闭所有容器,删除卷,并使用此docker compose文件重新启动服务。运行您建议的命令后,我仍然收到相同的错误。我运行了docker exec-ti container_name sh-c'mysql-uroot-proot'和docker exec-ti tm_sql sh-c'mysql-uroot-p${root}并尝试了一系列密码。然后,您可能运行了不同的容器,并且试图连接到错误的容器。我将向帖子中添加一个命令,您可以运行该命令进行验证。我运行了您更新的命令,是的,它们确实与docker-compose.yml中提供的值匹配。然后停止容器,从主机中删除文件夹
/tmp/mysql
,然后重新启动它。安装程序在我的机器上运行(因此从干净的情况开始)。检查卷的功能,因为问题是不可复制的