pymssql.connect() 似乎忽略了数据库字符串参数

Posted

技术标签:

【中文标题】pymssql.connect() 似乎忽略了数据库字符串参数【英文标题】:pymssql.connect() seems to ignore database string argument 【发布时间】:2014-10-16 10:14:30 【问题描述】:

我在 Azure 中有 3 个数据库,我尝试连接到其中一个。

conn = pymssql.connect(server='hostname.database.windows.net',
                  user='username@hostname',
                  password='*****',
                  database='my_db',
                  timeout=0,
                  login_timeout=60,
                  charset='UTF-8',
                  as_dict=False,
                  host='',
                  port='1433')


cursor = conn.cursor()
cursor.execute('select db_name()')  #to get the name of my db (which should be "my_db")
result = cursor.fetchone()
print result

但我得到的是“master”,它是默认的 Azure 数据库。这不应该发生,因为我已经为“my_db”指定了“databse”字符串参数。

请指教。

【问题讨论】:

【参考方案1】:

您的问题是您的pymssql 版本。 pip上的最新版本是2.1.0,但支持azure的版本是2.1.1。 因此,如果您从源代码安装它,它将起作用。另外,确保你有freeTDS > 0.91

【讨论】:

您可能想详细说明为什么freeTDS 是附加要求。否则,欢迎来到 SO pymssql 是freetds 的python 接口。

以上是关于pymssql.connect() 似乎忽略了数据库字符串参数的主要内容,如果未能解决你的问题,请参考以下文章

调用 pymssql.connect 时出现“类型‘NoneType’不可迭代”错误

pymssql.connect 错误 - 意外的关键字参数“服务器”

pymssql.connect() 错误:“自适应服务器不可用或不存在”

python - 使用 python 和 pymssql 获取一系列行号之间的行

pymssql.connect 错误 list.remove(x): x 不在列表中

使用 pymssql 将文本文件批量插入 SQL Server