【Python】SSH接続経由で、MySQLサーバーに接続してみる

Python を使って、レンタルサーバーにSSH接続してから、

MySQLに接続して、insert したり、select したりしてみました。

from sshtunnel import SSHTunnelForwarder import mysql.connector

def connect(sql):

with SSHTunnelForwarder( ('【SSH接続先サーバー】', 22), ssh_username='【SSHユーザー名】', remote_bind_address=('【サーバーのアドレス】', 3306), local_bind_address=('localhost', 3306), ssh_pkey="~/.ssh/id_rsa" ) as ssh:

conn = mysql.connector.connect( host='127.0.0.1', user='【MySQLユーザー名】', password='【MySQLパスワード】', database='【データベース名】', charset="utf8" )

# SELECT: cur = conn.cursor(dictionary=True) cur.execute(sql) self.data = cur.fetchall() conn.close()

# INSERT or UPDATE: cur = conn.cursor() cur.execute(sql) conn.commit() print(cur.rowcount) conn.close()