首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python pypyodbc连接到ProgrammingError

使用python pypyodbc连接到ProgrammingError
EN

Stack Overflow用户
提问于 2017-02-06 21:10:26
回答 1查看 1.9K关注 0票数 1

我正在尝试使用Python和pypyodbc连接到Azure (mssql服务器),但收到一个错误消息"pypyodbc.ProgrammingError:('','SQL_ERROR')“

我尝试了许多不同的方法来建立连接,但每次都给出相同的错误。例如,使用Tableau,我可以进入数据库,所以我的凭证可以工作。

代码语言:javascript
复制
pypyodbc.connect("DRIVER={SQL Server};server='tcp:mssql-server',Database='analytics',uid='me@analytics',pw='secret'")

代码语言:javascript
复制
pypyodbc.connect('Driver={SQL Server};Server=tcp:mssqlserver;Database=analytics;UID=me@analytics;PWD=secret')

代码语言:javascript
复制
pypyodbc.connect('Driver={SQL Server};Server=tcp:mssqlserver;Database=analytics;Uid=me@analytics;Pwd=secret;')

还有很多其他的,看起来像这样,但是有不同的引用类型,不同的大写字母等等,但我在那里输入了什么凭据都无关紧要,无论我做什么,它都会给出一个编程错误。我是否需要安装其他软件包才能使pypyodbc正常工作?我使用'dir‘检查了包,它显示了包括connect函数在内的全部内容。

有人能看到我遗漏了什么关键的部分吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-08 00:27:20

您是否安装了msodbcsql?根据您的操作系统,对ODBC驱动程序执行Install操作:

对于MacOS

代码语言:javascript
复制
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap microsoft/msodbcsql https://github.com/Microsoft/homebrew-msodbcsql
brew update
brew install msodbcsql
sudo pip install pyodbc

对于Linux

代码语言:javascript
复制
sudo su
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql.list
exit
sudo apt-get update
sudo apt-get install msodbcsql mssql-tools unixodbc-dev-utf16
sudo pip install pyodbc

去掉单引号,用ODBC Driver 13 for SQL替换SQL Server,你应该会得到:

代码语言:javascript
复制
pypyodbc.connect("DRIVER={ODBC Driver 13 for SQL Server};SERVER=tcp:mssqlserver;DATABASE=analytics;UID=me@analytics;PWD=secret;TrustServerCertificate=no;Connection Timeout=60")

如果出现这个错误pypyodbc.OperationalError: (u'HYT00', u'[HYT00] [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expired'),请检查您的代码,它可能是一个拼写错误。

我敢肯定这会解决你的问题。如果没有,您可以尝试使用pyodbc。它同样工作得很好。

代码语言:javascript
复制
import pyodbc

server = 'tcp:myserver.database.windows.net'
database = 'myDB'
username = 'username'
password = 'Secretpassword'
connectObj = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password)

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42068638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档