我正在尝试写一个Flask小应用程序来连接一个MySQL数据库。为了连接数据库,我使用flask-mysql,这样调用它
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)但是,当我运行应用程序时,它显示以下错误
pymysql.err.OperationalError: (1044, "Access denied for user 'testusr'@'%' to database 'testDB'")如果我从Docker容器中运行它,我会得到一个类似的错误,将"%“替换为"localhost”(在这种情况下,它无法连接,因为数据库在容器之外)
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,但出现相同的错误
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)哪里可能是错误?
发布于 2021-06-24 03:44:31
解决了从flask-mysql改为mysql-connector的问题
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"
)https://stackoverflow.com/questions/68105446
复制相似问题