Pythonからのmysql接続で詰まったので相談させてください。
あるMYSQLのDBにSSH経由で接続したいと思っていますが、うまくいきません。
Mac OSで、Python3.6です。
下記にpythonのコードと、エラーメッセージを転記します。
python
1 2# -*- coding: utf-8 -*- 3 4from sshtunnel import SSHTunnelForwarder 5import MySQLdb #package:mysqlclient 6 7with SSHTunnelForwarder( 8 ("[www.abc.com]",22), 9 ssh_host_key=None, 10 ssh_pkey=None, 11 ssh_username="[ssh_username]", 12 ssh_password="[ssh_password]", 13 remote_bind_address=("127.0.0.1", 3306) 14 ) as ssh: 15 conn = MySQLdb.connect( 16 host="127.0.0.1", 17 user="[db_username]", 18 password="[db_password]", 19 db = "[db_name]", 20 charset="utf8" 21 ) 22 c = conn.cursor() 23 c.execute( 'show tables' ) 24 conn.commit() #施した変更を保存する 25 26 for row in c.fetchall(): 27 print(row) 28 print('=====') 29 30 conn.close()
上記を実行し、表示されたエラーメッセージが下記。
sh
1$ python mysql_ssh_test.py 2Traceback (most recent call last): 3 File "mysql_ssh_test.py", line 21, in <module> 4 charset="utf8" 5 File "/Users/user_name/Python/lib/python3.6/site-packages/MySQLdb/__init__.py", line 86, in Connect 6 return Connection(*args, **kwargs) 7 File "/Users/user_name/Python/lib/python3.6/site-packages/MySQLdb/connections.py", line 204, in __init__ 8 super(Connection, self).__init__(*args, **kwargs2) 9_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' (61)")
ちなみに、通常そのDBに接続する際は、SeaquelProを利用しており、SSHを通じてDBにアクセスができています。その設定画面が下記です。
とりあえずSSH経由でMYSQL接続が成功できればと思っています。
どうぞよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/18 11:05