Flask在另一台服务器上时在本地查找db

时间:2020-07-30 09:14:51

标签: python mysql flask sqlalchemy

我正在尝试将Flask应用程序设置为与托管在其他服务器上的数据库一起使用。我的整个设置工作正常,如果我尝试使用简单的PyMysql脚本,我将能够连接到数据库,但是当我尝试从Flask进行连接时,我会遇到任何问题。

我将数据库配置保留在 config.py

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:pass@external_ip/mydb'

但是,每当我尝试执行查询时,都会出现以下错误:

SELECT command denied to user 'user'@'local_ip'

因此,由于某些原因,flask正在本地查找数据库,即使我将其设置为指向外部服务器也是如此。有人可以帮我吗?

在相同的环境中,以下内容将连接并允许我进行查询:

connection = pymysql.connect(host='external_ip', user='user', password='pass', db='mydb', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)

1 个答案:

答案 0 :(得分:1)

此错误看起来更像是db服务器错误,而不是本地flask客户端错误。

如果是无法连接到mysql服务器的Flask本地错误,则应该以以下内容结束:

  • 无法连接到服务器
  • 主机名不可访问
  • 连接被拒绝(例如,如果您到达服务器但端口错误)

读取此错误,我想您已经到达服务器,但是对于该用户+ IP +数据库组合,您没有读取权限

有关更多详细信息,请参见GRANT Statement文档