【发布时间】:2019-04-28 16:53:11
【问题描述】:
操作系统:MacOS
MySQL 版本:8.0.16
连接 MySQL 的代码:
app.config['MYSQL_HOST']='localhost'
app.config['MYSQL_USERNAME']='root'
app.config['MYSQL_PASSWORD']='123456'
app.config['MYSQL_DB']='Teaching_Sys'
app.config['MYSQL_CURSORCLASS']='DictCursor'
密码是正确的,里面没有任何特殊字符,我已经选择了“使用旧密码加密”来初始化数据库(有人用这个技巧解决了这个问题)
我已经设置了一个名为 Teaching_Sys 的表
使用flask将新数据插入表中的代码:
username=form_reg.username.data
email=form_reg.username.data
password = sha256_crypt.hash(form_reg.password.data)
#create cursor
cur=mysql.connection.cursor()
cur.execute("INSERT INTO users(username,email,password) VALUES(%s,%s,%s)",(username,email,password))
#commit to db
mysql.connection.commit()
cur.close()
完整的错误信息是:
MySQLdb._exceptions.OperationalError: (1045, "Access denied for user 'yiling'@'localhost' (using password: YES)")
发生在队列中
cur=mysql.connection.cursor()
虽然yiling是我系统账号的名字。
我还检查了root@localhost的用户权限
【问题讨论】:
-
因此,如果您认为您以“root”身份登录,但系统拒绝“yiling”,那就是您的问题。就mysql而言,'yiling'和'root'并不相同。
-
但我告诉烧瓶登录“root”,作为代码的第一部分。为什么报错信息中有“yiling”?
-
因为您没有部署更新的代码或错误来自不同的文件。