mysql OperationalErrorr: (2059, <null>)

时间:2018-05-17 14:58:26

标签: flask mysql-python

When trying to connect to my local server (making a database entry - registration of a new user within a flask app) I'm getting the following error:

**_mysql_exceptions.OperationalError: (2059, <NULL>)**

Screenshot of the error Traceback

传递后,将Ajax对象响应解析为数组

这是MySQL导入Python:

from flask_mysqldb import MySQL

MySQL配置:

# Config MySQL
app.config["MYSQL_DATABASE_HOST"] = "localhost"
app.config["MYSQL_DATABASE_USER"] = "root"
app.config["MYSQL_DATABASE_PASSWORD"] = "<password_ph>"
app.config["MYSQL_DATABASE_DB"] = "myfirstdb"
app.config["MYSQL_DATABASE_CURSORCLASS"] = "DictCursor"
# init MYSQL
mysql = MySQL(app)

MySQL workbench

这是MySQL的用法(下面的代码在Python的注册函数中)

# Create cursor
cur = mysql.connection.cursor()
# Execute query
cur.execute("INSERT INTO myfirstdb.firstflaskapp(name, email, username, password) VALUES(%s, %s, %s, %s)", (name, email, username, password))
# Commit to DB
mysql.connection.commit()
# Close connection
cur.close()

该错误似乎在以下行中弹出:

cur = mysql.connection.cursor()

知道还有什么可能导致这个错误吗?非常感谢提前

2 个答案:

答案 0 :(得分:2)

谢谢@ dominik-remetei,如果您不想降级MySQL,那是对的,此外您还可以使用mysql.connector: pip安装mysql-connector-python

将MySQL导入到Python:

from flask import Flask
from flask_mysqldb import MySQL
import mysql.connector

MySQL配置:

#config my db
db = mysql.connector.connect(
   host="localhost",
   user="root",
   passwd="<password_ph>",
   database='myfirstdb'
)
mysql = MySQL(app)

这里是您的路线中MySQL的用法:

cur = db.cursor()
cur.execute('insert into ...')
db.commit()
db.close()

答案 1 :(得分:0)

这里有同样的错误。 在我的案例中,问题是MySql的版本。

Mysql版本8与flask-sqlalchemy不兼容。

我把它降级到5.7.22并且一切正常。