我无法通过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上运行4.2
来获得tsql -C
。这是输出:
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
我尝试在.freetds.conf
和home/myuser/
放置home/myuser/my_virtual_env/
文件,但这并没有改变任何行为。我应该重新启动bash控制台还是python控制台?我不这么认为。以下是文件内容:
[global]
tds version = 7.1
[azure]
tds version = 7.4
另一个替代方案是使用pyodbc,但这也需要配置freetds然后再配置一些,所以看起来没有任何东西可供使用。
我应该指出,我在win10机器上使用以下连接字符串pymssql
正好连接到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)
答案 0 :(得分:-1)
在免费帐户的Python Anywhere中,它不允许访问所有网址。仅限特定列表中的地址。
“如果您有付费的Python Anywhere计划”