![](/img/trans.png)
[英]Can't connect django to exist MS SQL Server using mssql-django
[英]Django 4.0.3 and mssql-django 1.1.2 will not connect to SQL Server Express 2019
我一直在學習 mssql-django 的本教程https://docs.microsoft.com/en-us/samples/azure-samples/mssql-django-samples/mssql-django-samples/
我的設置是 Django 4.0.3,mssql-django 1.1.2 將無法連接到 Windows 10 上的 SQL Server Express 2019,而 SQL Server Express 2019 在本地運行。
我已經在 GitHub 和 Stack Overflow 上搜索了 mssql-django 配置的示例,但發現的並不多。
我不確定我做錯了什么。
我一直在嘗試的主要事情是押注 NAME、USER 或 HOST 參數不正確,因為其他參數似乎是正確的。
avxdb
或mxlaptop\\avxdb
還是其他?pyadmin@mxlaptop
還是只是pyadmin
?mxlaptop\SQLEXPRESS
、 mxlaptop\ss2019
、 mxlaptop
還是127.0.0.1
?DATABASES = {
'default': {
"ENGINE": "mssql",
"NAME": "avxdb",
"USER": "pyadmin@mxlaptop",
"PASSWORD": "Python",
"HOST": "mxlaptop\SQLEXPRESS",
"PORT": "1433",
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",
},
}
}
編輯:對不起,我沒有發布錯誤:
Traceback (most recent call last):
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 244, in ensure_connection
self.connect()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 225, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\mssql\base.py", line 329, in get_new_connection
conn = Database.connect(connstr,
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: No connection could be made because the target machine actively refused it.\r\n (10061) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid connection string attribute (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (10061)')
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\metamuas\source\vscode\avx\avx_backend\manage.py", line 22, in <module>
main()
File "C:\Users\metamuas\source\vscode\avx\avx_backend\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\__init__.py", line 446, in execute_from_command_line
utility.execute()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\__init__.py", line 440, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\base.py", line 414, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\base.py", line 460, in execute
output = self.handle(*args, **options)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\commands\inspectdb.py", line 46, in handle
for line in self.handle_inspection(options):
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\core\management\commands\inspectdb.py", line 62, in handle_inspection
with connection.cursor() as cursor:
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 284, in cursor
return self._cursor()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\mssql\base.py", line 230, in _cursor
conn = super()._cursor()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 260, in _cursor
self.ensure_connection()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 243, in ensure_connection
with self.wrap_database_errors:
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\utils.py", line 91, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 244, in ensure_connection
self.connect()
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\utils\asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\django\db\backends\base\base.py", line 225, in connect
self.connection = self.get_new_connection(conn_params)
File "C:\Users\metamuas\.virtualenvs\avx-BMkvCBKN\lib\site-packages\mssql\base.py", line 329, in get_new_connection
conn = Database.connect(connstr,
django.db.utils.OperationalError: ('08001', '[08001] [Microsoft][ODBC Driver 17 for SQL Server]TCP Provider: No connection could be made because the target machine actively refused it.\r\n (10061) (SQLDriverConnect); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]Invalid connection string attribute (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. (10061)')
我有一個普通的 Python 腳本,可以通過pyodbc
連接到數據庫:
connection = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};'
'SERVER=mxlaptop;'
'DATABASE=avxdb;'
'UID=pyadmin;'
'PWD=Python;')
所以事實證明,必須通過 SQL Server 配置啟用 TCP/IP。
此外,這是我發現的正確連接設置:
DATABASES = {
'default': {
"ENGINE": "mssql",
"NAME": "avxdb",
"USER": "pyadmin",
"PASSWORD": "Python",
"HOST": "mxlaptop",
"PORT": "1433",
"OPTIONS": {"driver": "ODBC Driver 17 for SQL Server",
},
}
}
所以我有錯誤的USER
和錯誤的HOST
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.