python - 在不同机器上运行时,sqlalchemy 连接相同的凭据被拒绝

标签 python mysql linux windows sqlalchemy

我有一个对我来说似乎不可能的问题,这意味着我从根本上误解了一些东西。我使用 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 地址信息。查看 MySQL 文档。或者本教程:

https://alvinalexander.com/blog/post/mysql/add-user-mysql/

关于python - 在不同机器上运行时,sqlalchemy 连接相同的凭据被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25693234/

相关文章:

mysql - Spring启动: i try to made O R mapping to MySql DB, i GET错误

linux - 在 vim 中折叠代码让我感到困惑

python - Django 总共只允许一个用户 session

mysql - 如何在 MySQL 5.7 中组织这个查询?

python - 保存和加载 selenium 的浏览器历史记录

php - 提交表单后如何从(国际电话输入)插件获取国家代码?

linux - 如何运行带参数的 cron 作业并将结果传递到日志?

linux - 将 base64 svg 数据解码为 svg 文件

python - 在 poke 游戏的技巧中迭代元组时更新 defaultdict

python - 从 Pandas 数据框中获取同比百分比