Mysql 无法查看docker容器中的表

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

以下是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
    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
,然后重新启动它。安装程序在我的机器上运行(因此从干净的情况开始)。检查卷的功能,因为问题是不可复制的