PYmssql Строка подключения Python
Я загрузил Pymssql для подключения к базе данных sqlserver, но строка подключения выдает error-pymssql.connect(pymssql.c.:7990)
import pymssql
pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master')
Кому-нибудь повезло при подключении к sqlserver?
Error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pymssql.pyx", line 556, in pymssql.connect (pymssql.c:7990)
raise OperationalError(e[0])
pymssql.OperationalError: (20009, 'Net-Lib error during Unknown error')
3 ответа
Я столкнулся с тем же Net-Lib error during Unknown error
сообщение об ошибке. Для меня проблема заключалась в том, что мне нужно было включить TCP/IP и именованные каналы в моем экземпляре SQL Server Express.
Попробуйте зайти в диспетчер конфигурации SQL Server и включить как TCP/IP, так и именованные каналы.
Моя настройка:
- Microsoft Windows XP SP3.
- Microsoft SQL Server 2008 (не R2).
- CPython 2.7.4.
- pymssql 2.0.0 (устанавливается с
easy_install
IIRC).
Я забыл создать sa
логин, так что я помню, как несколько недель назад удалил способ его создания; Ранее я входил (например, с помощью SQL Server Management Studio) с аутентификацией Windows. Я следовал за /questions/3729224/kak-izmenit-parol-v-sql-server-2008-express/3729226#3729226 чтобы создать sa
учетная запись пользователя.
После этого промежуточного шага я запустил Python.
import pymssql
conn = pymssql.connect(host=r'MACHINE\SQLEXPRESS', user=r'sa', password=r'password', database=r'MYDB')
cur = conn.cursor()
cur.execute(r'SELECT COUNT(*) FROM mytable')
row = cur.fetchone()
print row[0]
cur.close()
conn.close()
Я полагаю, что с вашей проблемой вы должны были использовать необработанные строки в параметрах соединения - особенно host
параметр, который принимает обратную косую черту.
Я также пробовал это делать на 64-битной машине CentOS 5.8 (pymssql 1.0.2, freetds 0.91). Для этого я также создал $HOME/.freetds.conf
файл с содержимым как
[global]
tds version = 10.0
[MACHINE]
host = 192.168.1.2
port =1433
tds version = 10.0
encryption = request
Я забыл, откуда я взял пример конфигурации этого файла.
Надеюсь, это поможет.
Вы должны объявить образец charset:
pymssql.connect(host='username\SQLEXPRESS',user='username',password='pwd',database='master',chartset="your_charset")