使用Python通过SSH连接到mariadb

时间:2019-06-20 15:56:51

标签: python-3.x ssh mariadb

我尝试通过SSH连接到mariadb。 与我在Internet上发现的类似问题不同,我没有任何反应(甚至没有错误消息)。该系统可以轻松地连接到服务器SSH,并且似乎可以连接到数据库,但随后完全阻塞。 (它也不完成程序) -我的数据是正确的(如果我尝试更改一个数据,例如密码/用户/端口/数据库,则会显示错误消息)
-我可以使用iTerms连接到服务器
-我可以使用Navicat连接到数据库。

我的代码:

from sshtunnel import SSHTunnelForwarder
import mysql.connector
import paramiko
import json

with open('config.json', 'r') as conf_file:
    config = json.load(conf_file)
private_key = paramiko.RSAKey.from_private_key_file(config['Private_Key_path'])

ssh_data = config['SSH_Data']
ssh_db_config = ssh_data['config']

with SSHTunnelForwarder(
        (ssh_db_config['hostname'], ssh_db_config['port']),
        ssh_username=ssh_db_config['username'],
        ssh_pkey=private_key,
        remote_bind_address=(config['SP01_Database']['host'], config['SP01_Database']['port'])
) as tunnel:
    print(tunnel.local_bind_port)
    config['SP01_Database']['port'] = tunnel.local_bind_port
    saml_connector = mysql.connector.connect(
        host='127.0.0.1',
        port=tunnel.local_bind_port,
        user='root',
        passwd='')
# Nothing happens anymore after this line
    print(saml_connector.get_sql_data('''SELECT VERSION();'''))
    saml_connector.close()

0 个答案:

没有答案