我正在计算机上运行SQL Server Express 2017实例。我正在尝试使用以下连接字符串连接到它:
in <module> . ()
----> 1 import musdb
/usr/local/envs/py2env/lib/python2.7/site-packages/musdb/__init__.py in <module>()
1 from __future__ import print_function
----> 2 from .audio_classes import Track, Source, Target
3 from os import path as op
4 from six.moves import map
5 import multiprocessing
/usr/local/envs/py2env/lib/python2.7/site-packages/musdb/audio_classes.py in <module>()
2 from __future__ import division
3 import os
----> 4 import soundfile as sf
5 import numpy as np
6 import stempeg
/usr/local/envs/py2env/lib/python2.7/site-packages/soundfile.py in <module>()
140 _libname = _find_library('sndfile')
141 if _libname is None:
--> 142 raise OSError('sndfile library not found')
143 _snd = _ffi.dlopen(_libname)
144 except OSError:
OSError: sndfile library not found
我已经成功使用这些连接手动连接到服务器,并使用SQL Server Management Studio成功连接了SQL Server身份验证。
防火墙应该不是问题,因为它是本地托管的服务器,但是无论如何,我已经为入站和出站连接打开了端口1433。
过去,这种连接字符串格式已在Azure上托管的数据库中起作用(我再也负担不起)。
错误消息:
"Driver=ODBC Driver 13 for SQL Server;Server=COMPUTERNAME\\SQLEXPRESS,1433;Database=databasename;Uid=testuser;Pwd=testpassword;Encrypt=yes;TrustServerCertificate=no;Connection Timeout=30;"
还有其他建议吗?
答案 0 :(得分:2)
我会回答这个问题,以防其他人发现它,即使它很旧。 对我来说效果很好的是:
Network Library=DBMSSOCN
来避免有关命名实例的问题(无法以这种方式工作)这样做:
pyodbc.connect('driver={SQL Server Native Client 11.0};server='+DBIPAddress+';port='+DBPort+';Network Library=DBMSSOCN;database='+DBName+';uid='+DBUser+';pwd='+DBPass)
哪里
DBIPAddress
是 SQL Server 服务器的 IP 地址DBPort
是端口DBName
是您尝试连接的数据库的名称DBUser
是您使用的用户名DBPass
是密码我猜你也可以使用 {SQL Server}
驱动程序,但我没试过。我们正在做的是强制使用 IP 和端口进行连接,而不管命名实例是否存在。