我的计算机上有一个 SQL 数据库,我正在尝试使用 python 连接该数据库。 首先,当我使用 SQL Server Management Studio 连接到数据库时,我使用了选项“通过 Windows 身份验证连接”。现在我正在尝试使用 python 以相同的方式连接到它。这是我的代码
import pyodbc
cnxn = pyodbc.connect(r'Driver={SQL Server};Server=localhost; \
Database=fatigue_life_test_db;Trusted_Connection=yes;')
cursor = cnxn.cursor()
cnxn.close()
第二行抛出以下错误:
pyodbc.OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. (17) (SQLDriverConnect); [08001] [Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()). (5); [08001] [Microsoft][ODBC SQL Server Driver]Invalid connection string attribute (0)')
我还尝试用服务器的名称替换 localhost
(MSSQLSERVER)
,但它仍然给出相同的错误。我对 SQL
数据库很陌生,所以我可能在这里遗漏了一些明显的东西。即使进行了大量的谷歌搜索,我也找不到解决这个问题的方法。
您可以通过以下几点解决此问题:
import pyodbc try: cnxn = pyodbc.connect( r'Driver={SQL Server};' r'Server=localhost,1433;' # Assuming the default port 1433 r'Database=fatigue_life_test_db;' r'Trusted_Connection=yes;' ) cursor = cnxn.cursor() print("Connection established.") except pyodbc.Error as e: print("Error in connection:", e) finally: if 'cnxn' in locals() and cnxn: cnxn.close()
那里!我相信您的连接字符串缺少用户名和密码。尝试这样:
cnxn = pyodbc.connect(r'Driver={SQL 服务器};服务器=localhost;数据库=fatigue_life_test_db;Trusted_Connection=yes;UID={USERNAME};PWD={PASSWORD}')
您可以在下面的链接 (learn.microsoft.com) 中获取有关“步骤 3:使用 pyodbc 连接到 SQL 的概念验证”第 5 项的更多信息: