无法通过 Python 连接到 SQL Server

Posted

技术标签:

【中文标题】无法通过 Python 连接到 SQL Server【英文标题】:Can not connect to SQL Server via Python 【发布时间】:2020-11-09 16:14:56 【问题描述】:

这是我下面的代码,我只是试图将 df 发送到服务器,当我使用没有用户的本地服务器并通过时,相同的代码正在工作,我已经尝试了所有组合。有没有其他方法或者我错过了什么?

补充说明:SQL server 是通过公司 *** 连接的,有影响吗?

import pandas as pd
from fast_to_sql import fast_to_sql as fts
df=pd.read_excel(r'C:\Users\han.37\Desktop\test\Copy of 01012020.xlsx')
#send to SQL server
sql_conn = (
r'DRIVER=SQL Server Native Client 11.0;'
r'SERVER=GRATHDB03\REPLICA;'
r'DATABASE=DATAWRHS-PM;'
r'Trusted_Connection=yes;'
r'UID=EMEA\han.37;'
r'PWD=****;'
)
conn_db = pyodbc.connect(sql_conn)

create_statement = fts.fast_to_sql(df, "Contact Patterntest2", conn_db, if_exists="append", temp=False)

conn_db.commit()
conn_db.close()

错误是;

OperationalError: ('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]SQL Server 网络接口:查找指定的服务器/实例时出错 [xFFFFFFFF]。(-1) (SQLDriverConnect); [08001] [Microsoft][SQL Server Native Client 11.0]登录超时已过期 (0);[08001] [Microsoft][SQL Server Native Client 11.0]在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。(-1)')

【问题讨论】:

当您使用 SSMS 或 Azure Datastudio 时这是否有效?还有具体的端口在哪里? SSMS 肯定不工作但不知道 azure data studio? 尝试使用IP地址连接。顺便说一句,如果你的连接是可信的,你不需要指明uid/pwd 是的,我刚刚尝试了所有的组合:) 请显示您的“组合”与 IP 地址。你有一个 NAMED 实例,所以你应该用 IP 地址指明正确的端口 【参考方案1】:

我就是这样做的。

import pypyodbc 
cnxn = pypyodbc.connect("Driver=SQL Server Native Client 11.0;"
                        "Server=server_name\\SQLEXPRESS;"
                        "Database=TestDB;"
                        "Trusted_Connection=yes;")

#cursor = cnxn.cursor()
#cursor.execute("select * from Actions")
cursor = cnxn.cursor()
cursor.execute('SELECT * FROM Actions')

for row in cursor:
    print('row = %r' % (row,))


# with login creds


pyodbc.connect("Driver = SQL Server Native Client 11.0;"               
               "Server = Server_Name;"
               "Database = Database_Name;"
               "username = User_Name;"
               "password = User_Password;"
               "Trusted_Connection = yes;")

【讨论】:

以上是关于无法通过 Python 连接到 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

python 通过Python连接到SQL Server

如何通过 Swift 连接到本地 Firebase 服务器?

无法通过 java 或其他工具连接到本地 sql server sqlexpress 实例

无法通过Excel VBA连接到SQL数据库。

Python 无法通过 Docker 连接到 Cassandra

无法通过 python 通过 SSH 连接到 postgres 服务器