【问题标题】:SQL Alchemy with SQL ServerSQLAlchemy 与 SQL Server
【发布时间】:2020-09-12 17:09:05
【问题描述】:

我不知道给我的帖子取什么标题,如果你有更好的主意,请随时编辑标题。

我以前没有使用过 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][ODBC Driver 17 for SQL Server]命名管道 提供者:无法打开与 SQL Server [53] 的连接。 (53) (SQLDriverConnect); [08001] [Microsoft] [用于 SQL 的 ODBC 驱动程序 17 服务器]登录超时过期(0); [08001] [微软] [ODBC驱动程序17 对于 SQL Server]无效的连接字符串属性 (0); [08001] [Microsoft][ODBC Driver 17 for SQL Server]网络相关或 建立连接时发生特定于实例的错误 到 SQL Server。服务器未找到或无法访问。检查是否 实例名称是正确的,并且如果 SQL Server 配置为允许 远程连接。有关详细信息,请参阅 SQL Server 联机丛书。 (53)')

我不知道我在做什么有什么问题,有人有什么建议吗?

到目前为止我所做的尝试:

  1. 我已确认 SQL Server 已配置为允许远程连接。我按照说明进行了此检查here
  2. 删除服务器前的“@”符号,但这只会产生相同的错误消息。

【问题讨论】:

标签: python sql-server sqlalchemy sql-server-2014


【解决方案1】:

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

旧参数:

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

新参数:

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

这就是我的代码最终的样子:

database_connection =  'mssql+pyodbc://Q-20/AdventureWorks2017?trusted_connection=yes&driver=SQL+SERVER+NATIVE+CLIENT+11.0'

【讨论】:

    猜你喜欢
    • 2020-10-06
    • 2021-10-18
    • 2016-04-14
    • 2019-05-06
    • 1970-01-01
    • 2018-03-01
    • 2020-03-10
    • 2015-08-02
    • 2016-09-05
    相关资源
    最近更新 更多