pythonanywhere에서 Azure가 호스트하는 MSSQL 서버에 pymssql
을 통해 연결할 수 없었습니다. 필자는 이전의 리눅스 경험이 전혀 없었으므로, 그렇게하기가 힘들었습니다.pythonanywhere의 linux cloud에서 Azure mssql에 대한 문제 해결
나는 지침을 제공하는이 샘플 스크립트를 시도하고있다 :
host = "123.456.789.012"
username = "yourusername"
password = "yourpassword"
database = "yourdatabasename"
conn = pymssql.connect(host, username, password, database)
cursor = conn.cursor()
을하지만이 오류 얻을 : 나는 그것이 버전은 내가 실행하고있는 TDS와 함께해야 할 일을했을 생각
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')
을하는 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 콘솔이나 파이썬 콘솔을 다시 시작해야합니까? 나는 그렇게 생각하지 않아.
[global]
tds version = 7.1
[azure]
tds version = 7.4
다른 대안은 pyodbc을 사용하는 것입니다, 그러나 그것은 또한 다음 좀 더 구성 FreeTDS를하고 참여 것이다, 그래서이 가지게되는 것이없는 것 같습니다 다음은 파일의 내용이다. 모든 웹 ADRESS에 대한 액세스를 허용하지 않는 PythonAnywhre에서
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)
빠른 것은 체크 - 당신 무료 사용자 인 두 배로? PythonAnywhere는 무료 사용자가 임의의 외부 인터넷 연결을 허용하지 않습니다. 무료 사용자를위한 화이트리스트가 있습니다. – conrad
@conrad, 아니요. 서비스에 대한 느낌을 얻기 위해 가장 낮은 계층에 서명했습니다. 사이트에서 제공되는 모든 지시 사항을 시도했습니다. – mvbentes
업그레이드 후 콘솔을 다시 시작 했습니까? – hwjp