首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-MySQL忽略主机参数

Flask-MySQL忽略主机参数
EN

Stack Overflow用户
提问于 2021-06-24 02:37:46
回答 1查看 31关注 0票数 0

我正在尝试写一个Flask小应用程序来连接一个MySQL数据库。为了连接数据库,我使用flask-mysql,这样调用它

代码语言:javascript
复制
from flask import Flask, render_template, redirect
from flaskext.mysql import MySQL

SECRET_KEY='5f352379324c22463451387a0aec5d2f'

app = Flask(__name__)
app.secret_key = SECRET_KEY

mydb = MySQL(app, prefix="mydb", host='172.17.0.2', user='testusr', password='test', db='testDB')

(...)

if __name__ == "__main__":
        app.run(host='0.0.0.0', port=5000)

但是,当我运行应用程序时,它显示以下错误

代码语言:javascript
复制
pymysql.err.OperationalError: (1044, "Access denied for user 'testusr'@'%' to database 'testDB'")

如果我从Docker容器中运行它,我会得到一个类似的错误,将"%“替换为"localhost”(在这种情况下,它无法连接,因为数据库在容器之外)

代码语言:javascript
复制
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)")
172.17.0.1 - - [23/Jun/2021 18:00:29] "GET / HTTP/1.1" 500 -

我尝试以这种方式使用other初始化flask-mysql,但出现相同的错误

代码语言:javascript
复制
app.config['MYSQL_HOST'] = '172.17.0.2'
app.config['MYSQL_USER'] = 'testusr'
app.config['MYSQL_PASSWORD'] = 'test'
app.config['MYSQL_DB'] = 'testDB'

mydb = MySQL(app)

哪里可能是错误?

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 03:44:31

解决了从flask-mysql改为mysql-connector的问题

代码语言:javascript
复制
import mysql.connector 

SECRET_KEY='5f352379324c22463451387a0aec5d2f'

app = Flask(__name__)
app.secret_key = SECRET_KEY

mydb = mysql.connector.connect(
  host="172.17.0.2",
  user="testusr",
  password="test",
  database="testDB"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68105446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档