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

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

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

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 地址指明正确的端口

标签: python sql-server pandas dataframe pyodbc


【解决方案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;")

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多