小编gpa*_*anb的帖子

将 Docker 上的 SQL Server 连接到 Python

我正在尝试使用 pyodbc 在使用 Docker 托管的 SQL Server 2017 数据库上执行表创建。我还使用网络,以便稍后可以从另一个 Docker 映像连接到它。但是,我收到以下错误

pyodbc.OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)

这就是我创建连接的方式。

要创建并运行数据库服务器,

docker run --name mssqldocker -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<password>' -e 'MSSQL_PID=Express' -p 7000:7000 --network=lambda-local-mssql -v <my_path> -d mcr.microsoft.com/mssql/server:2017-latest-ubuntu
Run Code Online (Sandbox Code Playgroud)

我也尝试添加

-h "mssqldocker"
Run Code Online (Sandbox Code Playgroud)

到运行 Docker 映像的命令,然后使用“mssqldocker”而不是 localhost,但无济于事,因为不匹配的主机名似乎是同时使用 DB 和 Docker 时反复出现的主题。也尝试添加\sqlexpress也没有效果。Python代码如下

import pyodbc
import sql_clauses
from settings import ENDPOINT, PORT, USERNAME, PASSWORD

cnxn = pyodbc.connect(
       'DRIVER={ODBC Driver 17 for SQL Server}' + 
       ';SERVER=' + ENDPOINT …
Run Code Online (Sandbox Code Playgroud)

python sql-server pyodbc docker

6
推荐指数
1
解决办法
7468
查看次数

标签 统计

docker ×1

pyodbc ×1

python ×1

sql-server ×1