我遇到的问题对我来说似乎是不可能的,这意味着我从根本上误解了某些东西。我已经使用flask(Python库)编写了一个简单的API。除其他外,此api连接到在远程Web服务器上运行的mysql服务器。我正在使用sqlalchemy库执行此连接。
连接字符串非常简单。看起来像这样:
db =create_engine('mysql+mysqlconnector://{user}:{password}@{host}:{port}/{database}'.format(user=Constants.Sql.USER, password=Constants.Sql.PASS, host=Constants.Sql.HOST, port=Constants.Sql.PORT, database=Constants.Sql.DATABASE))
connection = db.connect()
在我的开发机器上,一切正常。但是,当我将api部署到其他远程计算机时,它不起作用。我得到了错误:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) 1045 (28000): Access denied for user 'user'@'domain' (using password: YES) None None
这对我来说没有任何意义,因为它使用的是完全相同的凭据(它们是硬编码的)。
工作环境是Windows机器,抛出错误的环境是ubuntu 14.04。Windows和ubuntu机器都位于运行数据库的Web服务器的远程位置,因此这不是什么奇怪的本地主机。
我对此深感困惑。如果有人可以给我一些建议,我将不胜感激!
也许数据库仅接受来自特定IP地址的连接。这可以解释为什么相同的用户名和密码在一个成功,而在另一个失败。
GRANT包含IP地址信息:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句