gpt4 book ai didi

python - 在 pythonanywhere 的 linux 云上对 pymssql 与 Azure mssql 的连接进行故障排除

转载 作者:行者123 更新时间:2023-11-28 19:29:02 25 4
gpt4 key购买 nike

我无法通过 pythonanywhere 上的 pymssql 连接到 Azure 托管的 MSSQL 服务器。我以前的 Linux 经验为零,所以这比它应该做的要难。

我正在尝试随说明一起提供的示例脚本:

host = "123.456.789.012"
username = "yourusername"
password = "yourpassword"
database = "yourdatabasename"

conn = pymssql.connect(host, username, password, database)
cursor = conn.cursor()

但是我得到这个错误:

Traceback (most recent call last):
File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734)
File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821)
File "_mssql.pyx", line 637, in _mssql.MSSQLConnection.__init__ (_mssql.c:6581)
File "_mssql.pyx", line 1630, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:17524)
_mssql.MSSQLDatabaseException: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (my_server_name.database.windows.net:1433)\n')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824)
pymssql.OperationalError: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (my_server_name.database.windows.net:1433)\n')

我认为这与我正在运行的 TDS 版本有关,我通过在 bash 上运行 tsql -C 得到 4.2。这是输出:

Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 4.2
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes

我已经尝试在 home/myuser/home/myuser/my_virtual_env/ 中放置一个 .freetds.conf 文件,但是这并没有改变任何行为。我应该重新启动 bash 控制台还是 python 控制台?我不这么认为。以下是文件内容:

[global]
tds version = 7.1


[azure]
tds version = 7.4

另一种选择是使用 pyodbc,但这也涉及配置 freetds,然后还有更多,所以看起来没有什么可做的。


我应该指出,我有 pymssql 使用以下连接字符串在我的 win10 机器上连接到 azure:

arguments = dict(server=db_server_add, user=db_usn+"@my_server",
password=db_pswd, database=db_name, charset="utf8")
AZURE_ENGINE = create_engine('mssql+pymssql:///', connect_args=arguments)

最佳答案

在免费帐户的 Python Anywhere 中,它不允许访问所有网址。仅来自特定列表的地址。

“如果您有付费的 Python Anywhere 计划”

https://help.pythonanywhere.com/pages/MSSQLServer/

关于python - 在 pythonanywhere 的 linux 云上对 pymssql 与 Azure mssql 的连接进行故障排除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41970388/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com