带有SQL Server的SQL炼金术

问题描述 投票:0回答:1

我不确定标题的标题,如果您有更好的主意,请随时编辑标题。

我以前没有使用过SQL Alchemy,并且我在以下地方查看过的文档没有帮助:

这是我使用的代码:

import sqlalchemy as sal
from sqlalchemy import create_engine
#Here are the parameters I am using:

 - server = 'Q-20/fake_example'
 - database = 'AdventureWorks2017'
 - driver = 'ODBC Driver 17 for SQL Server' 
 - trusted_connection='yes'

DATABASE_CONNECTION = 'mssql+pyodbc://@server = ' + server + '/database = ' + database + '?trusted_connection = ' + trusted_connection + '&driver=' + driver

engine = sal.create_engine(DATABASE_CONNECTION)

所有这些似乎都很好,没有任何问题;但是,当我添加此行时:

connection=engine.connect()

我收到以下错误消息:

sqlalchemy.exc.OperationalError:(pyodbc.OperationalError)('08001','[08001] [Microsoft] [用于SQL Server的ODBC驱动程序17]命名管道提供程序:无法打开与SQL Server的连接[53]。 (53)(SQLDriverConnect); [08001] [Microsoft] [用于SQL的ODBC驱动程序17服务器]登录超时已过期(0); [08001] [Microsoft] [ODBC驱动程序17对于SQL Server]无效的连接字符串属性(0); [08001][Microsoft] [用于SQL Server的ODBC驱动程序17]与网络相关或建立连接时发生特定于实例的错误到SQL Server。找不到服务器或无法访问服务器。检查是否实例名称正确,并且SQL Server是否配置为允许远程连接。有关更多信息,请参见SQL Server联机丛书。(53)')

我不确定我在做什么,有什么建议吗?

到目前为止我尝试过的:

  1. 我已经确认SQL Server已配置为允许远程连接。我按照说明here
  2. 进行了此检查
  3. 删除服务器之前的“ @”符号,但这只会生成相同的错误消息。
python sql-server sqlalchemy sql-server-2014
1个回答
0
投票

我想出了我需要做的一部分。我需要更改参数。

旧参数:

  • 服务器='Q-20 / fake_example'
  • 数据库='AdventureWorks2017'
  • driver ='用于SQL Server的ODBC驱动程序17'
  • trusted_connection ='是'

新参数:

  • 服务器='Q-20'
  • 数据库='AdventureWorks2017'
  • 驱动程序='SQL + SERVER + NATIVE + CLIENT + 11.0'
  • trusted_connection ='是'

这是我的代码最终的外观:

database_connection =  'mssql+pyodbc://Q-20/AdventureWorks2017?trusted_connection=yes&driver=SQL+SERVER+NATIVE+CLIENT+11.0'
© www.soinside.com 2019 - 2024. All rights reserved.