sqlalchemy无法连接到“127.0.0.1”上的MYSQL服务器

2024-06-12 07:52:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试dockersize powerdns admin,它需要通过sqlalchemy连接到我的mariadb。 docker编写: docker-compose.yml

version: "3"

services:
  app:
    image: ngoduykhanh/powerdns-admin:latest
    container_name: powerdns_admin
    ports:
      - "9191:80"
    logging:
      driver: json-file
      options:
        max-size: 50m
    environment:
      - SQLALCHEMY_DATABASE_URI=mysql://root:dbpass@127.0.0.1/powerdns
      - GUNICORN_TIMEOUT=60
      - GUNICORN_WORKERS=2
      - GUNICORN_LOGLEVEL=DEBUG
      - OFFLINE_MODE=False # True for offline, False for external resources

当我运行docker compose up时,它只输出以下错误:

sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (2002, "Can't connect to MySQL server on '127.0.0.1' (115)")

当我执行mysql -uroot -pdbpass操作时,我可以成功连接。 我也一样:

mysql -uroot -pdbpass -h 127.0.0.1
mysql -uroot -pdbpass -h localhost

怎么了


Tags: composedockerfalseforadminsqlalchemyymlmysql
1条回答
网友
1楼 · 发布于 2024-06-12 07:52:59

当您运行docker容器时,您会发现它的行为非常像一台单独的机器。当您尝试连接到127.0.0.1时,您正在尝试连接到容器本身。由于容器不包含数据库,因此连接失败

从容器内部,您可以访问ip地址为172.17.0.1的主机。所以您的数据库URI应该是

SQLALCHEMY_DATABASE_URI=mysql://root:dbpass@172.17.0.1/powerdns

相关问题 更多 >