1. 程式人生 > >密碼錯誤導致的sqlalchemy pymysql網站連接出錯

密碼錯誤導致的sqlalchemy pymysql網站連接出錯

Flask網站連線mariadb時提示:

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'jack'@'master' (using password: YES)")

但是DBvisual連線正常:

檢視使用者發現jack在外部%訪問時和從localhost時的密碼不一樣導致的,換個密碼就對了。

Database changed
MariaDB [mysql]> select user,host,password from user;
+------+-----------+-------------------------------------------+
| user | host      | password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *7FB5824FA44505598280159F029E3520E34A0D43 |
| root | centos    | *7FB5824FA44505598280159F029E3520E34A0D43 |
| root | 127.0.0.1 | *7FB5824FA44505598280159F029E3520E34A0D43 |
| root | ::1       | *7FB5824FA44505598280159F029E3520E34A0D43 |
| jack | %         | *0A7E2C93A6ADFE3F4894F4DB8D67D41B0CF995DE |
| jack | localhost | *0A7E2C93A6ADFE3F4894F4DB8D67D41B0CF995DE |
+------+-----------+-------------------------------------------+
6 rows in set (0.001 sec)

MariaDB [mysql]> 

 

MariaDB [mysql]> show grants for jack;
+-----------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'jack'@'%' IDENTIFIED BY PASSWORD '*0A7E2C93A6ADFE3F4894F4DB8D67D41B0CF995DE' |
| GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON `mysql`.* TO 'jack'@'%'                              |
| GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON `xtdt`.* TO 'jack'@'%'                               |
+-----------------------------------------------------------------------------------------------------+

Sqlalchemy的url改一下密碼就可以了

#修改jack:jackdb,jackdb是外部連線時的密碼
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://jack:[email protected]:3306/xtdt?charset=utf8'