最近在學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.我們點擊添加權限,添加需要當前用戶操作的數據庫