[英]Unable to connect to MSSQL Server from Python on Windows
我無法在Windows 10上從Python(3.4.4 64位)連接到SQL Server。這就是我所做的:
easy_install pymssql
所以,此時我可以運行SQL Server並使用SQL Server Management Studio連接到我的數據庫。 當我登錄時,我使用DESKTOP-1JA5E9F\\SQLEXPRESS
作為服務器名稱, sa
作為登錄名,使用123
作為密碼。 此外,在Python shell中我可以導入pymssql
如:
>>> import pymssql
它不會引起任何錯誤。 但是,我無法連接到我的數據庫實例。 我嘗試了幾十次嘗試:
conn = pymssql.connect(host=r'DESKTOP-1JA5E9F\SQLEXPRESS',
user=r'sa', password=r'123', database=r'reestr')
上面的代碼^^^永遠不會完成(我看到在shell中只是閃爍_
,這是永遠閃爍)。 我也試過這個:
conn = pymssql.connect(host=r'SQLEXPRESS', user=r'sa', password=r'123', database=r'reestr')
這會導致pymssql.InterfaceError: Connection to the database failed for an unknown reason.
。 我試過這個:
conn=pymssql.connect(host=r'SQLEXPRESS:1433',user=r'sa',password=r'123', database=r'reestr')
它還會導致相同的錯誤消息。 所以,如果有人知道那些可以做到這一點的神奇伏都教法術,我們歡迎你。
根據文檔 ,不再有host
關鍵字arg,而是server
。 它也應該是服務器名稱,而不是實例名稱,或者是完整的實例名稱(帶有服務器名稱)。 請參閱connect()
描述以及Connection
類的名稱構造示例 。
在您的情況下,服務器名稱也是DESKTOP-1JA5E9F
.
和(local)
應該工作,因為你在本地機器上完成所有工作; 您的命名實例名稱是SQLEXPRESS
。
嘗試這樣:
import pymssql
#for instance with known name 'SQLEXPRESS'
conn = pymssql.connect(server=r'DESKTOP-1JA5E9F\SQLEXPRESS',
user=r'sa', password=r'123', database=r'reestr')
#on localhost this should work too
conn = pymssql.connect(server=r'.\SQLEXPRESS',
user=r'sa', password=r'123', database=r'reestr')
#for default instance with port taken from freetds.conf
#(this probably won't work for your case, because you use named instance
#instead of default instance, which is named MSSQLSERVER)
conn = pymssql.connect(server=r'DESKTOP-1JA5E9F', user=r'sa', password=r'123',
database=r'reestr')
#for instance on known port '1433'
conn = pymssql.connect(server=r'DESKTOP-1JA5E9F:1433', user=r'sa', password=r'123',
database=r'reestr')
如果這沒有幫助,請按照文檔中的描述測試與tsql
的連接,例如:
tsql -H DESKTOP-1JA5E9F -p 1433 -U sa -P 123 -D reestr
或者如果你有freetds.conf
:
tsql -S 'DESKTOP-1JA5E9F\SQLEXPRESS' -U sa -P 123 -D reestr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.