2015-07-08 3 views
1

Я пытался подключиться к моей базе данных Azure SQL на своем ноутбуке Ubuntu 14.04 с использованием Python.Подключение к базе данных Microsoft Azure SQL с использованием Python на Ubuntu 14.04

Я нашел эту статью от Microsoft: Connect to SQL Database by using Python on Ubuntu Linux, который показал мне, как подключиться к базе данных SQL с помощью Python 2.7.6


Я подтвердил я встретил требование Python 2.7.6 перед началом работы :

выход [email protected]:~$ 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 

Все установленной, как ожидалось.


Я создал питон скрипт и вошел в мою информацию, вот мой код:

#!/usr/bin/python 
import pymssql 
conn = pymssql.connect(server='ryans_server.database.windows.net', user='[email protected]_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='[email protected]_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 базы данных?

+1

Я использую pyobbc, см. http://askubuntu.com/a/567960 для деталей. – user272735

+1

Я сдался на pymssql. Более простая альтернатива, называемая pyodbc, закончилась для меня работой. Для тех, кто борется с ужасами pymssql, следуйте этому руководству: https://snakeycode.wordpress.com/2013/12/04/installing-pyodbc-on-ubuntu-12-04-64-bit/ – RyanNHG

ответ

3

Мне удалось подключиться к серверу ms sql, используя pymssql из моего окна Ubuntu.

Это то, что я использовал:

#!/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='[email protected]',password='xxxxxxxxx',database='ustxazsql1') 
cursor = conn.cursor() 

Кроме того, для других пользователей, которые используют Windows, VS + Python pymssql (устанавливаются с помощью VS) для подключения SQL Azure, вы можете столкнулись с подобной ошибкой, которая указала на PyanNHG :

enter image description here

Чтобы решить эту проблему на Windows, пожалуйста, повторно установить pymssql экспромты из http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql:

  1. Скачать файл pymssql .whl, что выравнивать с версией Python
  2. Установка pymssql из этого .whl через пип,

    питона -m пип D: \ whlFile.WHL

Тогда вы могли бы успешно подключиться к SQL Azure с использованием pymssql (Пожалуйста, обратите внимание, важным шагом является добавление адреса IP-, из которого вы работаете этот код на Лазурном портал - Разрешить IP-адреса для подключения база данных SQL Azure.)

+0

он работал для меня, большое спасибо – ssanga

0

У меня было три отдельных вопроса, связанных с базой данных Azure SQL, сначала с pymssql, затем pyodbc.

  1. TDS_Version должен был быть установлен в (pyodbc) строки подключения. Я мог бы подключиться с TDS_Version=7.1 или TDS_Version=7.2, но 7.3 и 8.0 потерпит неудачу.

  2. Я должен был явно установить PORT=1433 (previous port issue)

  3. Я пытался связаться с user я создал, что неправильно. Подключение к лазурного с login: I can't login with a user I created in sql azure

3

В настоящее время я использую следующий код для подключения к лазурным 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 в виртуальном env, и он отлично работает

You ca n посмотреть весь скрипт на https://gist.github.com/srgrn/71f0786ca4779e3178b9f5d9c6d1ee80

Смежные вопросы