我尝试通过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()