【问题标题】:Cannot connect to MYSQL using SQLAlchemy无法使用 SQLAlchemy 连接到 MYSQL
【发布时间】:2019-04-22 09:42:24
【问题描述】:

我无法连接到我的 mysql。我正在使用 pymysql 连接 Mysql。

这是我在 Flask 中的代码:

app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://"+config.get_config("MYSQL_DATABASE_USER")+":"\
                                        + config.get_config("MYSQL_DATABASE_PASSWORD")+"@"\
                                        + config.get_config("SERVER_HOST_NAME")+":"\
                                        + config.get_config("MYSQL_DATABASE_PORT")+"/"\
                                        + config.get_config("MYSQL_DATABASE_DB")

这是我的 docker-compose 文件

version: "3"
services:
  db:
    build: ./db
    restart: always
    ports:
      - "3308:3306"
    environment:
      - MYSQL_USER=root
      - MYSQL_ROOT_PASSWORD=root@123
  flask:
    build: ./python-backend
    links:
      - db
    depends_on:
      - db
    ports: 
      - "7000:7000"
  angular:
    build: ./angular-template
    depends_on:
      - flask
    ports:
      - "4200:4200"

当我到达一条路线时,这会说

"(pymysql.err.OperationalError) (2003, \"Can't connect to MySQL server on '0.0.0.0' ([Errno 111] Connection refused)\")\n(Background on this error at: http://sqlalche.me/e/e3q8)"

我在这里做错了什么有什么线索吗?

这是我的配置文件

"SERVER_SECRET":"winter is coming",
            "MYSQL_DATABASE_USER": "root",
            "MYSQL_DATABASE_PASSWORD": "root@123",
            "MYSQL_DATABASE_DB": "template",
            "MYSQL_DATABASE_HOST": "172.17.0.1", #localhost
            "MYSQL_DATABASE_CHARSET": "utf-8",
            "MYSQL_DATABASE_PORT": "3306",
            "SERVER_HOST_NAME": "0.0.0.0", #localhost
            "SERVER_PORT": 7000,
            "SERVER_DEBUG": True

【问题讨论】:

    标签: python-3.x docker flask-sqlalchemy


    【解决方案1】:

    在配置文件中更改数据库主机名 -

    "MYSQL_DATABASE_HOST": "db", #docker compose service name
    

    好像你正在使用SERVER_HOST_NAME 来表示数据库主机,更改如下 -

    "SERVER_HOST_NAME": "db", #docker compose service name
    

    【讨论】:

    • 尝试从你的烧瓶容器远程登录到db:3306
    • 使用服务器的主机名是愚蠢的:)。谢谢
    猜你喜欢
    • 2011-07-06
    • 2021-07-12
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2022-01-22
    • 1970-01-01
    • 2017-04-18
    相关资源
    最近更新 更多