如何使用django-mssql连接到SQL Server 2008 R2?

3

我无法弄清楚为什么django不能与sql server 2008 r2连接。我在我们的服务器和sql server上都有管理员权限。我构建了一个虚拟的Windows服务器2008 sp2,因为我认为我可能会在django-mssql上有些运气。我在Windows服务器上尝试了django-pyodbc和django-mssql,但尚未成功。以下是我的数据库设置:

DATABASES = {
    'default': {
        'ENGINE': 'sqlserver_ado',  # Have also tried sql_server.pyodbc
        'NAME': 'TMSEPLAY',                      
        'USER': '***', # Omitted for post
        'PASSWORD': '*******', # Omitted for post
        'HOST': '172.16.1.14',                      
        'PORT': '1434',                   
        'OPTIONS': {
            'provider': 'SQLCLI10', # Have also tried 'SQLCLI11' and 'SQLOLEDB'
            'extra_params': 'DataTypeCompatibility=80'
            }
    }
}

The error I get:

C:\Python27\CourseData\mysite>manage.py syncdb
Traceback (most recent call last):
  File "C:\Python27\CourseData\mysite\manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
443, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line
382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 196,
 in run_from_argv
    self.execute(*args, **options.__dict__)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 232,
 in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 371,
 in handle
    return self.handle_noargs(**options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\syncdb.py"
, line 57, in handle_noargs
    cursor = connection.cursor()
  File "C:\Python27\lib\site-packages\django\db\backends\__init__.py", line 306,
 in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 193, in _curs
or
    self.__connect()
  File "C:\Python27\lib\site-packages\sqlserver_ado\base.py", line 168, in __con
nect
    use_transactions=self.use_transactions,
  File "C:\Python27\lib\site-packages\sqlserver_ado\dbapi.py", line 151, in conn
ect
    raise OperationalError(e, "Error opening connection: " + connection_string)
sqlserver_ado.dbapi.OperationalError: (com_error(-2147352567, 'Exception occurre
d.', (0, u'ADODB.Connection', u'Provider cannot be found. It may not be properly
 installed.', u'C:\\Windows\\HELP\\ADO270.CHM', 1240655, -2146824582), None), 'E
rror opening connection: DATA SOURCE=172.16.1.14,1434;Network Library=DBMSSOCN;I
nitial Catalog=TMSEPLAY;UID=***;PWD=********;PROVIDER=SQLCLI10;MARS Connection=Tr
ue;DataTypeCompatibility=80;MARS Connection=True')

我很感激您的帮助和见解。谢谢。

1个回答

2

我能在日志中看到一个错误信息:

$Error opening connection: DATA SOURCE=172.16.1.14 port:1434

因此,我会检查所有实例是否正在运行,并且通过端口1434可以访问该机器。

此外,以下链接可能有所帮助: 设置django-mssql问题


Hari,非常感谢!我在Microsoft SQL Server的注册表中搜索了“SuperSocketNetLib”,并打开了TCP。结果发现管理员连接TCP端口是1434,而非管理员端口都是1433。最终我使用'SQLOLEDB'作为'provider'成功进入。非常感谢! - Justin O Barber
我也会看一下这个问题,因为它涉及到相同的原始错误信息(提供程序无法找到。可能未正确安装。):http://stackoverflow.com/questions/22967989/django-giving-error-exception-typeoperationalerror/22985901#comment54235850_22985901 - Mr. Napik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接