Python pyodbc连接到SQL Server 2012问题
下面是回溯。我已经阅读了所有其他的线索,在谷歌上搜索了两个多小时,但我无法理解这一点。以下是我尝试过的:Python pyodbc连接到SQL Server 2012问题,python,sql-server,sql-server-2012,pyodbc,Python,Sql Server,Sql Server 2012,Pyodbc,下面是回溯。我已经阅读了所有其他的线索,在谷歌上搜索了两个多小时,但我无法理解这一点。以下是我尝试过的: 连接字符串的SQL身份验证和Windows身份验证版本 使用SQL Server名称(文本)和服务器的IP地址 包括和排除端口1443(SQL server的默认tcp/ip端口) 在Windows防火墙中创建新规则以允许端口1443处的入站/出站TCP 列表项 回溯(最近一次呼叫最后一次): 文件“pythonscript.py”,第75行,在 conn=pyodbc.connect(驱
- 连接字符串的SQL身份验证和Windows身份验证版本
- 使用SQL Server名称(文本)和服务器的IP地址
- 包括和排除端口1443(SQL server的默认tcp/ip端口)
- 在Windows防火墙中创建新规则以允许端口1443处的入站/出站TCP
- 列表项 回溯(最近一次呼叫最后一次): 文件“pythonscript.py”,第75行,在 conn=pyodbc.connect(驱动程序={SQL Server}',服务器='ipaddress,1443',数据库='master',uid='XYZ\login',pwd='password') pyodbc.Error:('08001','[08001][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]SQL Server不存在或访问被拒绝。(17)(SQLDriverConnect);[01000][Microsoft][ODBC SQL Server驱动程序][DBNETLIB]连接打开(Connect())(53)'
conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',server = '1.1.1.1,1443', database = 'master')
然后
然后,我还使用服务器名称(文本)而不是IP地址尝试了上述两种方法。我不知道如何在这一点上实现这一点。您确认了服务器之间的连接吗?请尝试telnet- telnet服务器名1433 如果这样连接,那么您可以关注Python或连接字符串的问题 在连接字符串中,将其更改为使用端口参数,而不是1433- 服务器=1.1.1.1;端口=1433 我还想说,传递整个字符串可能会更好- self.db_connection=pyodbc.connect(“DRIVER=FreeTDS;SERVER=1.1.1;PORT=1433;DATABASE=myDB;UID=myUser;PWD=myPass;TDS_Version=8.0;”)从WINDOWS到MS SQL SERVER数据库的连接: 这里有一个示例,我使用自己的Python脚本连接到MS SQL数据库表:
import pyodbc
server = 'ip_database_server'
database = 'database_name'
username = 'user_name'
password = 'user_password'
driver = '{SQL Server}' # Driver you need to connect to the database
port = '1433'
cnn = pyodbc.connect('DRIVER='+driver+';PORT=port;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+
';PWD='+password)
cursor = cnn.cursor()
如果试图从Windows设备连接到DB,请从Windows转到ODBC数据源管理员,检查是否安装了驱动程序:
图像是西班牙文的,但您只需单击“驱动程序”选项卡,并检查驱动程序是否如图像中所示
从LINUX/UNIX到MS SQL SERVER数据库的连接:
如果您使用的是Linux/Unix,那么您应该安装一个ODBC管理器,如“FreeTDS”和“unixODBC”。要配置它们,以下链接中有一些示例:
我应该提到这一点……是的,我已通过telnet成功连接到服务器,但我也尝试在连接字符串中使用完全相同的服务器名称,但没有得到任何结果。我已在上面的回答中添加了更多详细信息。希望这会有所帮助!该示例提供了FreeTDS驱动程序的连接字符串,在*nix上使用。如果您使用的是Windows machine,继续使用DRIVER=SQL Server;相反,您可以删除TDS_版本=8.0。干杯。
import pyodbc
server = 'ip_database_server'
database = 'database_name'
username = 'user_name'
password = 'user_password'
driver = '{SQL Server}' # Driver you need to connect to the database
port = '1433'
cnn = pyodbc.connect('DRIVER='+driver+';PORT=port;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+
';PWD='+password)
cursor = cnn.cursor()