Код: Выделить всё
import pymssql
c = pymssql.connect(host = r'servername\instance',
user = 'username',
password = 'userpassword')
Я достаточно уверен, что информация о соединении верна, поскольку она работает, когда я использую adodbapi, со следующими командами:
Код: Выделить всё
import adodbapi
c = adodbapi.connect(r'Provider=sqloledb;Data Source=servername\instance;User ID=username;password=userpassword;'
c.close
Кстати, я прочитал ответы в разделе «Невозможно подключиться к SQL Server через pymssql». В конечном итоге ОП решил свою проблему, правильно настроив FreeTDS, который, насколько я могу судить, не используется pymssql в Windows.
Основываясь на рекомендации @cha0site, я попробовал использовать только имя хоста, а не имя хоста и экземпляр. Это привело к той же ошибке, но, похоже, для ее генерации потребовалось больше времени (хотя обратная трассировка по-прежнему указывает на ту же строку). Причина, по которой я указал экземпляр, заключается в том, что я не мог подключиться с помощью SSMS, пока не указал экземпляр, поэтому я предположил, что это будет необходимо для других подключений.
Я теперь также попробовал pymssql.connect(host='servername', user='username', пароль='userpassword', data='instance') с тем же результатом (на основе комментария @Sid). Основываясь на документации pymssql, я считаю, что параметр базы данных используется для указания исходной базы данных, к которой должен подключиться пользователь, а не экземпляра.
Просто чтобы уточнить: «экземпляр» — это имя, указанное во время установки SQL Server, а не база данных в рамках этой установки. Мне приходит в голову, что, возможно, pymssql не поддерживает эту нотацию, поэтому я рассмотрю возможность перенастройки экземпляра SQL Server, чтобы он не требовался.
Теперь я переустановил SQL Server как экземпляр по умолчанию, а не как именованный экземпляр, что позволяет мне подключаться без указания имени экземпляра. adodbapi по-прежнему работает (без /instance), но pymssql по-прежнему возвращает ту же ошибку. Я также удалил и переустановил pymssql из свежезагруженного архива (все та же версия).
Подробнее здесь: https://stackoverflow.com/questions/916 ... ng-pymssql
Мобильная версия