【发布时间】: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