我对使用sqlalchemy wih python的sql server有连接问题

时间:2019-07-05 11:39:35

标签: python sql-server sqlalchemy

我想使用sqlalchemy和python连接到sql服务器数据库。 但是当我运行下面的代码时,出现以下错误

  

OperationalError:(pyodbc.OperationalError)('08001','[08001]   [Microsoft] [SQL Server Native Client 11.0] SQL Server网络   接口:错误定位指定的服务器/实例[xFFFFFFFF]。   (-1)(SQLDriverConnect); [08001] [Microsoft] [SQL Server本机客户端   11.0]登入逾时(0); [08001] [Microsoft] [SQL Server Native Client 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)

能帮我吗!

1 个答案:

答案 0 :(得分:0)

您要连接到没有用户名,密码,主机名或端口的数据库。

当您查看文档中的示例时,将这样写:

# pymssql
engine = create_engine('mssql+pymssql://scott:tiger@hostname:port/dbname')

如您所见,此url包含的信息比url中的信息更多。

您刚刚获得了一个带有名称和dbname的URL。我不知道名字代表什么。

在大多数情况下,主机名将是localhost和端口1434。但是请确保mssqlserver在何处运行以及允许哪个用户在数据库上进行查询!

  

文档:https://docs.sqlalchemy.org/en/13/core/engines.html