运行print(pyodbc.drivers())
,它打印可用驱动程序列表…在docker中运行SQL容器,我试图从python脚本操纵数据库
connector = pyodbc.connect('Driver={ODBC Driver 18 for SQL Server};' 'Server=cbbcb967dacb;' 'Database=testdb;' 'UID=sa;' 'PWD=Working@2022' 'Trusted_Connection=yes;')
connector.execute()
cursor = connector.cursor()
cursor.execute('SELECT * FROM inventory')
for i in cursor:
print(i)
我得到的错误是:
pyodbc。OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 18 for SQL Server]Named Pipes Provider:无法打开到SQL Server的连接[53]。(53) (SQLDriverConnect);[08001] [Microsoft][ODBC Driver 18 for SQL Server]登录超时(0)[08001] [Microsoft][ODBC Driver 18 for SQL Server]在与SQL Server建立连接时发生了与网络相关或特定实例的错误。找不到服务器或无法访问服务器。检查实例名是否正确,以及SQL Server是否配置为允许远程连接。有关更多信息,请参阅SQL Server联机图书。(53)")
但是ODBC Driver已经安装
异常提示网络错误,cbbcb967dacb
看起来像容器的主机名,您可能想要直接尝试其IP地址或localhost,如果您按照文档在docker中运行SQL Server。
Are you able totelnet cbbcb967dacb 1433
根据评论中的讨论,如果您的docker容器正在运行并按照MSSQL教程启动,则以下连接字符串应该可以工作:
"DRIVER={ODBC Driver 18 for SQL Server};SERVER=localhost;UID=SA;PWD={Working@2022};DATABASE=testdb;"