我一直在尝试使用Python连接到我的Ubuntu 14.04笔记本电脑上的Azure SQL数据库。
我在Microsoft发现了这篇文章:Connect to SQL Database by using Python on Ubuntu Linux,它向我展示了如何使用 Python 2.7.6连接到我的SQL数据库
我确认在开始之前我遇到了Python 2.7.6的要求:
ryan@laptop:~$ python -V
的输出为 Python 2.7.6
我按照说明操作,将以下几行输入我的终端:
sudo apt-get --assume-yes update sudo apt-get --assume-yes install freetds-dev freetds-bin sudo apt-get --assume-yes install python-dev python-pip sudo pip install pymssql
按预期安装所有内容。
我创建了一个python脚本并输入了我的信息,这是我的代码:
#!/usr/bin/python
import pymssql
conn = pymssql.connect(server='ryans_server.database.windows.net', user='ryans_user@ryans_server', password='ryans_password', database='ryans_database')
但是,当我执行此代码时,这是输出:
Traceback (most recent call last):
File "./tp-database.py", line 3, in <module>
conn = pymssql.connect(server='ryans_server.database.windows.net', user='ryans_user@ryans_server', password='ryans_password', database='ryans_database')
File "pymssql.pyx", line 637, in pymssql.connect (pymssql.c:9508)
pymssql.OperationalError: (18456, "Login failed for user 'ryans_user'.DB-Lib error message 18456, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n")
我尝试过export TDSVER=7.0
,这会导致不同的错误:
pymssql.OperationalError: (20017, 'DB-Lib error message 20017, severity 9:\nUnexpected EOF from the server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')
如何连接到我的Azure SQL数据库?
答案 0 :(得分:4)
我能够使用我的Ubuntu框中的pymssql连接到ms sql server。
这就是我使用的:
#!/usr/bin/python
"Proof connection at pyqllevel."
# Test pyodbc connection. Result is 42.
# Note parameters in connection string, <PARAMETER>.
import pymssql
conn = pymssql.connect(server='serverName.database.windows.net',user='username@serverName',password='xxxxxxxxx',database='ustxazsql1')
cursor = conn.cursor()
此外,对于使用Windows VS + Python pymssql(通过VS安装)连接SQL Azure的其他用户,您可能会遇到PyanNHG指出的类似错误:
要在Windows上解决此问题,请从http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql重新安装pymssql lib:
通过pip,
从.whl安装pymssqlpython -m pip D:\ whlFile.whl
然后您可以使用pymssql成功连接到SQL Azure(请注意,重要的一步是将运行此代码的IP地址添加到Azure门户 - 允许使用ip地址连接sql azure数据库。)
答案 1 :(得分:4)
我目前正在使用以下代码连接到azure sql
def connect(server, database_name):
try:
conn = pymssql.connect(server=server['hostname'], user=server['db_user'], password=server['db_password'], database=database_name)
return conn
except:
logging.warning("connection Error will continue")
logging.exception('Got exception on connect to db {}, {}'.format(server, database_name))
return None
服务器结构基本上是一个带密码和用户的字典
我没有直接安装freetds并在虚拟环境中使用pip install pymssql
并且工作正常
您可以在https://gist.github.com/srgrn/71f0786ca4779e3178b9f5d9c6d1ee80
查看整个脚本答案 2 :(得分:1)
我有三个单独的问题连接到Azure SQL数据库,首先尝试pymssql
然后pyodbc
。
TDS_Version
。我可以与TDS_Version=7.1
或TDS_Version=7.2
联系,但7.3和8.0会失败。
我必须明确设置PORT=1433
(previous port issue)
我正在尝试连接我创建的user
,这是不正确的。使用login
:I can't login with a user I created in sql azure