2016-04-23 12 views
0

"arvixe"(およびcPanelで管理)でホストされているMySQLデータベースがあります。私はそれを私のPCから "MySQL Workbech"によって接続することができるので、私はそれを正しく作成することをお勧めします。Cloud9 PythonアプリケーションからMySQLデータベース(arvixeでホストされています)に接続できません

IはCloud9でホストPythonアプリケーション(電報ボット)を有しているので、私は、データベースに接続するために次のコードを使用します

import MySQLdb 

# Open database connection 
db = MySQLdb.connect("weongame.com","weonwii_ceux","<here my pass>","weonwii_Forms_Bot") 

結果が長時間(後私はそれをsupose、ということです「タイムアウト」のいずれかの種類)、コンソールは次のトレースバックを表示:

Traceback (most recent call last):                                            
    File "/home/ubuntu/workspace/bot.py", line 9, in <module>                                      
    db = MySQLdb.connect("weongame.com","weonwii_ceux","<here my pass>","weonwii_Forms_Bot")                               
    File "/usr/local/lib/python3.4/dist-packages/MySQLdb/__init__.py", line 81, in Connect                              
    return Connection(*args, **kwargs)                                           
    File "/usr/local/lib/python3.4/dist-packages/MySQLdb/connections.py", line 204, in __init__                             
    super(Connection, self).__init__(*args, **kwargs2)                                       
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'weongame.com' (110)") 

は、だから私は校長エラーに焦点を当て:_mysql_exceptions.OperationalError:(2003年は、「weongame」上のMySQLサーバに接続できませんが。 com(110)」)

と私はcPanelの "リモートMySQL"セクションを見つけました。私はそこに導入しなければならなかった正確なIPを知りませんでしたので、私はhttps://forms-bot-ceuxdruman.c9users.io(Cloud9は私のアプリが動いていると言いますが、単純なスクリプトですが)と同じc9.ioをホスト名とIPアドレスとして書きました、webpage/webappではなく)、IPアドレスは私のCloud9ワークスペースをUbuntuコンソールに要求します。しかし、それらのすべてを導入した後(IPが動的である可能性があることを考慮すると)、結果はまったく同じでした。

私はarvixeがこのような外部接続を許可していることも知っています。そういうわけではありません。

何が原因でエラーが発生する可能性がありますか?前もって感謝します。

EDIT:私は私のボットを実行していた本当のIPを見つけるために

import socket 
socket.gethostbyname(socket.gethostname()) 

を使用して、私は他の人のように「リモートMySQL」セクションにそれを含まれていますが、結果は再び、でした、 まったく同じ。

答えて

0
  • リモートホストのIP。あなたは、ホスト名を記述する場合、このホスト名はIPに解決されなければならないとMySQLは解決ホスト名のconfig環境なければなりません(MySQLを設定するには、さまざまな方法があります)
    • hostname -f
    • host c9.io
  • リモートサーバー上で確認してください3306ポートということは、リモートマシンのオープンまたはIPです
    • iptables -L -n |grep 3306
    • iptables -L -n |grep IP_remote_machine
  • ファイアウォールが開いているかファイアウォールがない場合は、mysqlの問題を検索してください。MySQLサーバ上のラム酒のmysqlのコンソール(一部circunstantesでCPanelの上のリモートアクセスのためのCPanelのツールは、インターフェイスに障害が発生したアカウント)

以下トライコード(それはあなたのMySQLサーバのmysql -uルート-pの構成に応じて可能な必要性の資格情報です)

[email protected]:~# mysql 
MariaDB [(none)]> SELECT user, host, password FROM mysql.user WHERE user LIKE 'user_with_permission'; 
+----------------+--------------------+-------------------------------------------+ 
| user   | host    | password         | 
+----------------+--------------------+-------------------------------------------+ 
| user_perm_remo | XXX.31.31.227  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | XX.45.170.221  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | localhost   | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | XX.184.17.102  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | kvm401.xxxxxxx.com | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | xxxxxxx.com  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | %.xxxxxxx.com  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
| user_perm_remo | xxx.33.112.218  | *3ED850F72DSHWBDS195D51D6A18EEFE0149DDA3F | 
+----------------+--------------------+-------------------------------------------+ 
8 rows in set (0.00 sec) 

リモート接続のユーザ/ホスト/パスワードのペアがない場合、あなたのmysqlサーバに間違った権限が与えられます。手動でユーザーを追加する必要があります。

GRANT ALL PRIVILEGES ON DATABASESNAME TO 'USERNAME'@'HOSTNAME_FDQN_OR_IP' IDENTIFIED BY 'PASSWORD'; FLUSH PRIVILEGES; 

これは何の接続を働かない後であれば(また、それが最善の方法だ前に)あなたがチェックする必要があります。

  • あなたのマシンからリモートconecctionsオフファイアウォールとMySQLの設定をテスト

    のtelnet mysql_server 3306

  • あなたのmysqlログ。 my.confを読んで、どこにmysqlエラーログ(通常は/var/lib/mysql/.err)があるのか​​を知り、エラーを読んでください。エラーの場合は、mysqlの問題ですが、ここにあります。

注:ホストにダイナミックIPが設定されている場合、動的IPへのリモートアクセスを許可するには、%を使用する必要があります。 %。%。%。%を使用して、リモートマシンの可能なIPのブロックを許可するように調整できます。

関連する問題