我正在尝试通过 python 和 SqlAlchemy 将数据集推送到 Azure SQL 数据库中,该数据库在没有 docker 的情况下工作正常,但当我与 docker 一起使用时,它会抛出错误。错误是:
2024-12-09 16:11:53 Error pushing data to the database: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
2024-12-09 16:11:53 (Background on this error at: https://sqlalche.me/e/20/e3q8)
2024-12-09 16:11:53 Error encountered: (pyodbc.OperationalError) ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
2024-12-09 16:11:53 (Background on this error at: https://sqlalche.me/e/20/e3q8)
2024-12-09 16:11:53 No data has been pushed to the database or Blob storage.
有人可以告诉我出了什么问题吗?
我增加了超时和连接超时,但仍然不起作用
这里的超时是针对登录的,因此如果您的凭据在 Docker 与非 Docker 上相同,那么您的问题可能与连接有关。
从 docker 中,您能够访问 Azure SQL 数据库吗?默认情况下,连接策略是使用代理进行 Azure 外部连接并重定向到来自 Azure 的连接。
除了端口 1433 之外,重定向还需要打开端口范围 11000 到 11999。检查 Docker 是否可以使用此端口。
这里有很多假设,但如果您提供有关您正在使用的网络设置的更多详细信息,才能提供更多帮助。 SQL Server 设置、Docker 从何处连接、防火墙规则等