![](/img/trans.png)
[英]Connecting to SQL Server 2012 using sqlalchemy and pyodbc
[英]pyodbc connecting to SQL Server 2012 problems
下面是回溯。 我已经阅读了所有其他 SO 线程,用谷歌搜索了两个多小时,但无法弄清楚。 这是我尝试过的:
项目清单
回溯(最近一次调用):文件“pythonscript.py”,第 75 行,在 conn = pyodbc.connect(driver='{SQL Server}', server='ipaddress,1443', database='master', uid= 'XYZ\\login', pwd='password') pyodbc.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝。(17) ( SQLDriverConnect); [01000] [Microsoft][ODBC SQL Server 驱动程序][DBNETLIB]ConnectionOpen (Connect()).(53)'
以下是我为连接字符串尝试过的一些示例:
conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server}',server = '1.1.1.1,1443', database = 'master')
然后
conn = pyodbc.connect(driver='{SQL Server}', server='1.1.1.1,1443', database='master', uid='xyz\login', pwd='pwd'
然后我还使用服务器名称(文本)而不是 IP 地址尝试了上述两种方法。 我不知道如何让它在这一点上工作。
您是否确认服务器之间有连接? 尝试远程登录 -
telnet 服务器名称 1433
如果连接成功,那么您可以专注于 Python 或连接字符串的问题。
在您的连接字符串中,将其更改为使用 PORT 参数而不是 ,1433。 就像是 -
服务器=1.1.1.1;端口=1433;
我还要说你最好传递整个字符串。 这是我通常使用 FreeTDS 在 Linux 上所做的 -
self.db_connection = pyodbc.connect("DRIVER=FreeTDS;SERVER=1.1.1.1;PORT=1433;DATABASE=myDB;UID=myUser;PWD=myPass;TDS_Version=8.0;")
这里有一个示例,我使用自己的 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 设备连接到数据库,请从Windows转到 ODBC 数据源管理器,并检查您是否已安装驱动程序:
图像是西班牙语,但您只需单击“驱动程序”选项卡,然后检查驱动程序是否如图像所示。
如果您在Linux/Unix中工作,那么您应该安装一个 ODBC 管理器,如“ FreeTDS ”和“ unixODBC ”。 要配置它们,您可以在以下链接中找到一些示例:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.