Python-使用pyodbc使用Excel数据连接中的信息连接到远程服务器

Python-使用pyodbc使用Excel数据连接中的信息连接到远程服务器,python,sql,sql-server,pyodbc,Python,Sql,Sql Server,Pyodbc,我有一个excel(尽管它在我们公司的服务器上),它与我们的SQL数据库有数据连接,所以我们可以制作漂亮的数据透视表 我想把这些数据输入python(在我的本地计算机上),这样我可以做一些更快的分析 我已经安装了pyodbc 以下是excel中的“连接字符串”: Provider=SQLOLEDB.1;Password=**mypassword**;Persist Security Info=True;User ID=**myusername**;Initial Catalog=**catalo

我有一个excel(尽管它在我们公司的服务器上),它与我们的SQL数据库有数据连接,所以我们可以制作漂亮的数据透视表

我想把这些数据输入python(在我的本地计算机上),这样我可以做一些更快的分析

我已经安装了pyodbc

以下是excel中的“连接字符串”:

Provider=SQLOLEDB.1;Password=**mypassword**;Persist Security Info=True;User
ID=**myusername**;Initial Catalog=**catalogename**;Data 
Source=**datasourcename**;Use Procedure for Prepare=1;Auto 
Translate=True;Packet Size=4096;Workstation ID=**workstationid**;Use 
Encryption for Data=False;Tag with column collation when possible=False
现在我有了python脚本:

import pyodbc
cnxn = pyodbc.connect(DRIVER='{SQL Server}',SERVER='***server ip address**',DATABASE='**cataloguename**',UID='**myusername**',PWD='**mypassword**')
cursor = cnxn.cursor()
我得到的错误是SQL Server不存在或访问被拒绝


非常感谢您的帮助

每个字段不需要单引号,可能需要一个端口。。。试着这样做:

cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.123.456;PORT=1433;DATABASE=yourdb;UID=your_user;PWD=your_pw;')

祝你好运

请转到“控制面板-管理工具-ODBC连接”安装SQL server驱动程序。要连接到远程服务器SQL,我发现此解决方案可行。 这里,端口号为1433

import pyodbc
server = 'tcp:***your_server_name*,1433' (i.e your_server_name = abcd.mydomain.com)
database = 'your_DB_NAME' 
username = 'Your_USER_NAME' 
password = 'YOUR_PASSWORD' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()`enter code here`
cursor.execute('SELECT top 1 * FROM [DBNAME].[SchemaNAME].[YourTable]')
for row in cursor:
    print(row)
如果您没有用户名和密码,只需删除用户名和密码并添加
Trusted\u Connection=yes

参见此处示例:

import pyodbc
server = 'tcp:***your_server_name*,1433' (i.e your_server_name = abcd.mydomain.com)
database = 'your_DB_NAME' 
cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER='+server+';DATABASE='+database+';Trusted_Connection=yes')
cursor = cnxn.cursor()
cursor.execute('SELECT top 1 * FROM [DBNAME].[SchemaNAME].[YourTable]')
for row in cursor:
    print(row)

你好,FlipperPA,谢谢你的建议,但我仍然无法连接。。我收到以下错误:错误:('08001','[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SqlDriverConnection);[01000][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]连接打开(Connect())(2);[01S00][Microsoft][ODBC SQL Server驱动程序]无效的连接字符串属性(0)]无论我使用的凭据是什么,都是相同的。这表明我使用了错误的详细信息,但我不知道哪一个可能是错误的?您是否试图在从Excel连接的同一台计算机上从pyodbc进行连接?是的,我刚刚意识到,对于服务器,不是使用IP地址,而是使用COMPANYSQLSERVER,这就成功了!好极了我很高兴你解决了这个问题。如果你能将答案标记为正确,以帮助有相同连接字符串问题的人,那就太好了。包括一些安装步骤,可能还有一些链接。