[英]Cannot connect to MYSQL using SQLAlchemy
I am not able to connect to my mysql. 我无法连接到我的MySQL。 I am using pymysql for connecting to Mysql.
我正在使用pymysql连接到Mysql。
Here is my code in Flask: 这是我在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")
And this is my docker-compose file 这是我的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"
When I am hitting a route this says 当我上路线时,这说
"(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)"
Any clue on what I am doing wrong here? 关于我在这里做错什么的任何线索吗?
And here is my config file 这是我的配置文件
"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
Change DB host name in your config file - 在配置文件中更改数据库主机名-
"MYSQL_DATABASE_HOST": "db", #docker compose service name
Seems like you are using SERVER_HOST_NAME
to repesent DB host, change below - 似乎您正在使用
SERVER_HOST_NAME
来代表数据库主机,请在下面进行更改-
"SERVER_HOST_NAME": "db", #docker compose service name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.