0

我一直试图弄清楚如何在使用 podman-compose 时连接到 mariadb 容器,但我一直收到错误消息。

这是我所做的:

软件版本

podman version = 3.3.1
podman-compose version = podman-compose-0.1.7-2.git20201120.el8.noarch`

码头工人-compose.yml

version: '3'
services:
  db:
    image: mariadb:latest
    environment:
      MARIADB_USER: user
      MARIADB_PASSWORD: pass
      MARIADB_DATABASE: testdb
      MARIADB_ROOT_PASSWORD: rootpass
    volumes:
      - db_data:/var/lib/mysql

当我使用以下方法旋转这个容器时:podman-compose up -d

然后尝试使用以下命令连接到该数据库:

podman exec -it project_db_1 mariadb -uroot -prootpass

我收到此错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

作为普通用户和 root 用户,我都会收到此错误。

然而,当我使用 podman 运行同一个容器时:

Podman 命令

podman run -d \
--name mariadb \
-e MARIADB_USER=user \
-e MARIADB_PASSWORD=pass \
-e MARIADB_DATABASE=testdb \
-e MARIADB_ROOT_PASSWORD=rootpass \
mariadb:latest

然后尝试使用以下命令连接到该数据库:

podman exec -it mariadb mariadb -uroot -prootpass

我能够成功登录。

谁能向我解释一下我在使用 podman-compose 时做错了什么,或者为什么它不允许我使用我提供的凭据登录?

4

1 回答 1

0

好的,对于任何想知道我做了什么来解决这个问题的人......首先,我卸载了 podman 和 podman-compose,因为它存在太多问题,所以我安装了 docker 和 docker-compose。

其次,当我在 docker-compose 中运行这个脚本时,我得到了一个没有出现在 podman-compose 中的错误。

错误:services.db.environment must be a mapping

谷歌搜索该错误后,我发现我需要像这样格式化环境部分:

version: '3'
services:
  db:
    image: mariadb:latest
    environment:
      - MARIADB_USER=user
      - MARIADB_PASSWORD=pass
      - MARIADB_DATABASE=testdb
      - MARIADB_ROOT_PASSWORD=rootpass
    volumes:
      - db_data:/var/lib/mysql

修复该问题后,docker-compose 运行良好,我可以连接到我的数据库,甚至可以从另一个容器连接。我确实使用 podman-compose 和此代码修复进行了测试,但它仍然无法正常工作。所以我只会使用 docker,直到 podman 解决了他们的问题。

于 2022-01-12T22:04:05.487 回答