在Windows 10上无法使用pyodbc建立与sql-server的连接

时间:2017-07-19 18:24:57

标签: python sql-server django azure pyodbc

尝试在django上运行开发服务器时出现此错误。

django.db.utils.Error: ('08001', '[08001] [Microsoft][SQL Server Native Client 11.0]Named Pipes Provider: Could not open a connection to SQL Server [53].  (53) (SQLDriverConnect)')

这是我的settings.py数据库

DATABASES = {
'default': {
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'mydata',
    'USER': 'user@mydata',
    'PASSWORD': '**password**',
    'HOST': 'mydata.database.windows.net',
    'PORT':'**port**',

    'OPTIONS': {
        'driver': 'SQL Server',
        'host_is_server': True,
        'MultipleActiveResultSets': False,
        'Encrypt': True,
        'TrustServerCertificate': False,
        'Connection Timeout': 30,
        'Persist Security Info': False,
    },
},
}

我安装了django-pyodbcdjango-pyodbc-azure

使用django版本1.11。

任何帮助都会很棒!谢谢。

编辑1

我将驱动程序更改为SQL Sever并更新了驱动程序。现在我收到了这个错误。

django.db.utils.Error: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect)')

我在Azure上设置了数据库。

1 个答案:

答案 0 :(得分:1)

根据您的错误信息,导致此问题的原因有两种,如下所示。

  1. driver选项值应为ODBC Driver 13 for SQL Server,如下图所示,来自Azure门户。请更改它,然后重试。
  2. enter image description here

    1. 如果未将客户端IP添加到Azure SQL数据库的防火墙以允许访问,则可能导致access denied错误,如下图所示。
    2. enter image description here

      希望它有所帮助。