密码错误导致的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 jack@%                                                                                   |
+-----------------------------------------------------------------------------------------------------+
| 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'

猜你喜欢

转载自blog.csdn.net/sharkandshark/article/details/83545537