【问题标题】:connecting to Microsoft SQL Server using sqlalchemy '1.4.22', python 3.9 [closed]使用 sqlalchemy '1.4.22',python 3.9 连接到 Microsoft SQL Server [关闭]
【发布时间】:2021-10-17 12:53:26
【问题描述】:

我有一个非常简单的设置。 Microsoft SQL Server 64b(版本 15),安装在 Windows 10 上。TCP/IP 属性上的 TP 端口为空白(不明白为什么要弄清楚它在哪个端口上运行如此困难)。

我可以使用 SQL Management Studio 连接到我的数据库:

服务器名称:DEVSERVER\MSSQLDEV2019

“Windows 身份验证”和“SQL Server 身份验证”。

但是,当我尝试使用 sqlalchemy 或 MySQLdb 时,我似乎无法连接,通常会出现两种类型的错误:

DATABASECONFIG = {
    'DEV': {
        'server': 'MSSQLDEV2019',
        'database': 'family',
        'username': 'famrwuser',
        'password': 'password'
    }
}

class SQLDBConnection(object):

    def __init__(self, configname):
        config = DATABASECONFIG[configname]
        self.server = config['server']
        self.database = config['database']
        self.username = config['username']
        self.password = config['password']
    def _connstring(self):
        connstring = 'mysql://%s:%s@%s/%s'%(
            self.username, self.password,  self.server, self.database)
        return connstring
    def engine(self):
        engine = create_engine(self._connstring(), echo=True)
        return engine

    def getrawresultset(self, sql):
        with self.engine().connect() as connection:
            results = connection.execute(sql)
        return results

x = SQLDBConnection('DEV')
x.engine()
print(x.getrawresultset('select % from dbo.members'))

使用 'server': 'DEVSERVER\MSSQLDEV2019' 也出现错误

"Unknown MySQL server host 'MSSQLDEV2019'

我也试过'server':'localhost',我得到了错误

"Can't connect to MySQL server on 'localhost'

我确实尝试在所有版本的主机上使用 MySQLdb,但没有任何成功

import MySQLdb
Con = MySQLdb.Connect(host="DEVSERVER\MSSQLDEV2019", user="famrwuser", passwd="password", db="family")
Cursor = Con.cursor()
sql = "SELECT * FROM dbo.members"
Cursor.execute(sql)

【问题讨论】:

  • MySQLdb 用于 MySQL。改用 pyodbc 或专门针对 SQL Server 的东西。
  • @mechanical_meat - 谢谢。你的建议有点帮助。我能够使它与pyodbc一起工作。但是,我更倾向于让 sqlalchemy 工作。尝试使用 mssql+pyodbc。没用。

标签: sql-server python-3.x sqlalchemy


【解决方案1】:

所以,终于成功了:

conntring = "mssql+pyodbc://famrwuser:password@DEVSERVER\MSSQLDEV2019:49764/family?driver=ODBC+Driver+17+for+SQL+Server"

关键是 (1) 端口号 - 不知道我如何/何时/为什么更改该端口号(是的,诅咒我)和 (2) ODBC+Driver+17+for+SQL+Server - + 是键而不是空格

【讨论】:

    猜你喜欢
    • 2016-04-14
    • 1970-01-01
    • 2011-09-13
    • 2015-09-03
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2018-06-09
    • 2013-03-22
    相关资源
    最近更新 更多