sqlalchemy引擎正在尝试连接到127.0.0.1而不是提供的IP

2024-05-19 23:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里写作是因为我找不到关于这个特定bug的任何其他信息

每当我尝试使用

engine = sqlalchemy.create_engine(f'mysql+pymysql://{creds.user}:{creds.dbpassword}@{creds.host}:{creds.port}/{creds.database}')

它告诉我:

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2003, "Can't connect to MySQL server on '127.0.0.1' ([WinError 10061] No connection could be made because the target machine actively refused it)")
(Background on this error at: http://sqlalche.me/e/e3q8)

我显式地将creds.host设置为服务器的IP,并且当我将它直接放入引擎时,我会得到相同的错误。这在根目录下的远程机器上有效,但对我不起作用,对运行完全相同代码的合作伙伴也有效。我发现的一些链接建议更改mysql配置中的绑定地址。我卸载了本地的mariadb/mysql服务器,找到了带有bind address的配置文件,并取消了注释,因此在重新启动后它是bind address=0.0.0.0,它仍然不工作,所以我不得不认为是我的机器不允许我连接到服务器

新信息:我的搭档无法再通过pymysql连接。我仍然可以通过datagrip和mysql workbench进行连接。端口已打开,mysql正在侦听端口3306。据我所知,我拥有适当的权限,因为我可以通过datagrip和mysql workbench进行连接。我认为这是美国的问题,不是服务器的问题,但我不知道为什么,因为在问题开始之前没有任何变化


Tags: 服务器机器信息hostsqlalchemybindonaddress