flask_sqlalchemy 利用sqlalchemy模型在mysql創建表錯誤

 

最近在學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中執行就不會報上面的錯誤
 
最後完美解決!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章