flask_sqlalchemy 利用sqlalchemy模型在mysql创建表错误

版权声明:大家一起学习,欢迎转载,转载请注明出处。若有问题,欢迎纠正! https://blog.csdn.net/memory_qianxiao/article/details/83002555

最近在学flask(小巧网站搭建的第三方python库),连接mysql后,报如下错误:

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1142, "REFERENCES command denied to user 'gust'@'localhost' for table 'authors'") [SQL: '\nCREATE TABLE books (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tname VARCHAR(16), \n\tauthor_id INTEGER, \n\tPRIMARY KEY (id), \n\tUNIQUE (name), \n\tFOREIGN KEY(author_id) REFERENCES authors (id)\n)\n\n'] (Background on this error at: http://sqlalche.me/e/e3q8)

接下来看我的flask数据库配置代码:

app.config['SQLALCHEMY_DATABASE_URI']='mysql://gust:[email protected]/flask_books_demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False

最开始也是一脸懵逼,后来乱搞尝试把root用户权限给了,成功了,就不会报错.了..

所以错误原因是gust用户权限不够,因为我创建了一个gust用户,没有权限去管理flask_books_demo这个库

我的gust用户只给了两个数据库的权限,如下图navicat所示:

解决方法:1(暴力快速).者把root用户(最高级权限)给flask配置(不建议不最高级权限配置出去)

更改配置代码:

app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:(root用户密码)@127.0.0.1/flask_books_demo

2.给gust用户添加我们需要操作的数据库管理权限:

a.进入navicat点击用户:有我们自己配置的用户以及root用户

b.1.点击gust用户,里面有当前用户能够管理的数据库和对某个数据库的所有权限

b.我们点击添加权限,添加需要当前用户操作的数据库

c.勾选当前用户(gust)需要操作的数据,顺便把需要的右边权限勾选上,就有权限了,再去flask中执行就不会报上面的错误

最后完美解决!

猜你喜欢

转载自blog.csdn.net/memory_qianxiao/article/details/83002555