我想使用sqlalchemy和python连接到SQL Server数据库。但是,当我在下面运行代码时,我会收到以下错误
OperationalError :( Pyodbc.operationalerror(('08001','[08001] [Microsoft] [SQL Server本地客户端11.0] SQL Server网络 接口:指定服务器/实例的错误[XFFFFFFFF]。 (-1((sqldriverConnect(;[08001] [Microsoft] [SQL Server本地客户端 11.0]登录超时过期(0(;[08001] [Microsoft] [SQL Server本地客户端11.0]发生了与网络相关或特定实例的错误 在建立与SQL Server的连接时。无法找到服务器或 无法访问。检查实例名称是否正确,以及SQL Server是否为 配置为允许远程连接。有关更多信息,请参见SQL 在线服务器书。(-1('((此错误的背景: http://sqlalche.me/e/e3q8(
我认为这个问题与驾驶员有关,但我似乎无法理解。
这是我的代码:
from sqlalchemy.sql import text
from sqlalchemy import create_engine
import secrets
engine = create_engine( 'mssql+pyodbc://servername/test_db? driver=SQL+Server+Native+Client+11.0')
conn = engine.connect()
s = text("SELECT * FROM user_tab ")
result = conn.execute(s).fetchall()
print(result)
你能帮我!
您在没有用户,密码,主机名或端口的情况下连接到DB。
当您查看文档中的示例时,请写下:
# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')
您可以看到,此URL包含的信息比您在URL中的信息更多。
您刚刚有一个名称和dbname的URL。我不知道名字代表什么。
大多数情况下,主机名是localhost和端口1434。但是请确保您的MSSQLServer在哪里运行以及允许哪个用户在DB上进行查询!
文档:https://docs.sqlalchemy.org/en/13/core/engines.html