SSHTunnelを使って、mysql serverに接続しようとしています。
構成は A:自宅のPC、 B:sshするサーバ、 C:mysqlが立っているサーバ、となっており、A→B→Cの順番に繋げようとしています。
Cのmysqlの立っているサーバは、Bのサーバのipアドレスからのみアクセスできるように設定してあります。
そのため、SSHTunnelを使って、Bを経由して、Cのサーバに接続を試みようとしています。

以下のコードを実行すると、タイムアウトになってしまい、2003のエラーがでます。
Portが違っているとタイムアウトになると思いますが、Cのサーバはmysqlサーバ標準の3306でアクセスできるようになっています。
remote_bind_address、local_bind_addressなどが怪しいと思っていますが、エラーがでてしまう原因は分かるでしょうか。

因みにterminal上で次のようなことを実行した場合は問題なく、mysql serverにアクセスできます。

ssh ssh_user@ssh_server_host_name -p 22 
mysql -h mysql_server_host_name -P 3306 -u mysql_user -p

python3.7での実装

# -*- coding: utf-8 -*-
from sshtunnel import SSHTunnelForwarder
# モジュール読み込み
import pymysql.cursors

# SSH関連の設定
with SSHTunnelForwarder(
  ("ssh_server_host_name", 22),
  ssh_username="ssh_user",
  ssh_password="ssh_pass",
  remote_bind_address=('mysql_server_host_name', 3306)
 ) as server:
    print("connected server")

    # # MySQLに接続する
    conn = pymysql.connect(host='mysql_server_host_name',
                           user='mysql_user',
                           password='pass',
                           db='db_name',
                           charset='utf8',
                           port=server.local_bind_port,
                           cursorclass=pymysql.cursors.DictCursor)
    # select
    # SQLを実行する
    cursor = conn.cursor()
    sql = "show tables"
    cursor.execute(sql)

    # Select結果を取り出す
    rets = cursor.fetchall()
    for r in rets:
        print(r)

    # MySQLから切断する
    conn.close()

エラーメッセージ

Traceback (most recent call last):
  File "/Users/user/venv/lib/python3.7/site-packages/pymysql/connections.py", line 582, in connect
    **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 727, in create_connection
    raise err
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/socket.py", line 716, in create_connection
    sock.connect(sa)
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/user/PycharmProjects/bitflyerPredict/database.py", line 25, in <module>
    cursorclass=pymysql.cursors.DictCursor)
  File "/Users/user/PycharmProjects/bitflyerPredict/venv/lib/python3.7/site-packages/pymysql/__init__.py", line 94, in Connect
    return Connection(*args, **kwargs)
  File "/Users/user/PycharmProjects/bitflyerPredict/venv/lib/python3.7/site-packages/pymysql/connections.py", line 327, in __init__
    self.connect()
  File "/Users/user/PycharmProjects/bitflyerPredict/venv/lib/python3.7/site-packages/pymysql/connections.py", line 629, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '(hostname)' (timed out)")