Получить данные из удаленного MySQL через SSH с sqlalchemy - PullRequest
0 голосов
/ 24 марта 2019

Мне нужен доступ к базе данных Mysql на удаленном сервере, но я должен использовать туннель ssh. Без Python я могу получить доступ к БД с помощью клиента управления sql. С кодом Python я использую sqlalchemy и sshtunnel. sshtunnel должен работать, но я не могу получить какие-либо данные, используя read_sql. Вот скрипт, который я использовал:

from sqlalchemy import create_engine
import sshtunnel
import pandas as pd

with SSHTunnelForwarder(
    (ssh_host, ssh_port),
    ssh_username=ssh_user,
    ssh_pkey =private_key,
    remote_bind_address=(mysql_host, mysql_port)
    ) as server:

    print('Server connected via SSH') 

    local_port = str(server.local_bind_port)
    engine = create_engine('mysql+mysqlconnector://{}:{}@{}:{}/my_db'.format(mysql_user, mysql_password, '127.0.0.1', local_port), echo=True)

    query = 'select count(*) from asset'

    data = pd.read_sql(query, engine)

Он работает и не остановится. На самом деле я только получаю некоторую информацию, но я не знаю, что значит и что я должен делать, чтобы получить правильные данные. Вот возвращаемая информация:

Server connected via SSH

2019-03-24 22:42:47,316 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'sql_mode'

2019-03-24 22:42:47,317 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:47,637 INFO sqlalchemy.engine.base.Engine SHOW VARIABLES LIKE 'lower_case_table_names'

2019-03-24 22:42:47,638 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:48,587 INFO sqlalchemy.engine.base.Engine SELECT DATABASE()

2019-03-24 22:42:48,587 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:49,239 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS CHAR(60)) AS anon_1

2019-03-24 22:42:49,240 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:49,571 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS CHAR(60)) AS anon_1

2019-03-24 22:42:49,572 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:50,022 INFO sqlalchemy.engine.base.Engine DESCRIBE `select count(*) from asset`

2019-03-24 22:42:50,023 INFO sqlalchemy.engine.base.Engine {}

2019-03-24 22:42:50,144 INFO sqlalchemy.engine.base.Engine ROLLBACK

2019-03-24 22:42:50,582 INFO sqlalchemy.engine.base.Engine select count(*) from asset

2019-03-24 22:42:50,583 INFO sqlalchemy.engine.base.Engine {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...