2017-02-01 7 views
2

pythonanywhereのAzureでホストされているMSSQLサーバーにpymssqlで接続できませんでした。 私は以前のLinuxの経験がないので、それは必要以上に困難になっています。pythonanywhereのLinuxクラウド上のAzure mssqlへのpymssql接続のトラブルシューティング

私は命令で提供されるこのサンプルスクリプトしようとしています:

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バージョンとしなければならなかった考え出しました私はtsql -Cをbashで動かすことによって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系の構成は含まして、いくつかのより多くの、そうそこにいたことに何もないように見えます。すべてのWebアドレスへのアクセスを許可していません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) 
+0

check-を倍増するための簡単な事は、あなたは無料のユーザーですか? PythonAnywhereは、フリーユーザーが任意の外部インターネット接続を行うことを許可していません。彼らは無料のユーザーのためのホワイトリストを持っています。 – conrad

+0

@conrad、いいえ、私はサービスのための感じを得るために、最低の階層にサインしました。私はサイト上で利用可能なすべての指示を試しました。 – mvbentes

+0

アップグレード後にコンソールを再起動しましたか? – hwjp

答えて

-1

無料accaunt上:


私はpymssqlは、次の接続文字列と私のwin10マシン上AZUREするだけで罰金を結ぶ持っていることを指摘しなければなりません。リストからのみ選択してください。 私の英語を残念に思っています。

「あなたが支払ったPythonAnywhere計画を持っている場合は、」

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

+1

コメントに記載されているように、OPには有料アカウントがあります。 – FabienP

関連する問題