2024-05-23 06:34:45 发布
网友
我在Python 2.7中使用MySqldb来允许Python连接到另一个MySQL服务器
MySqldb
import MySQLdb db = MySQLdb.connect(host="sql.domain.com", user="dev", passwd="*******", db="appdb")
与其像这样正常连接,如何使用SSH密钥对通过SSH隧道进行连接?
SSH隧道最好由Python打开。SSH隧道主机和MySQL服务器是同一台计算机。
我猜你需要港口转运。我建议sshtunnel.SSHTunnelForwarder
sshtunnel.SSHTunnelForwarder
import mysql.connector import sshtunnel with sshtunnel.SSHTunnelForwarder( (_host, _ssh_port), ssh_username=_username, ssh_password=_password, remote_bind_address=(_remote_bind_address, _remote_mysql_port), local_bind_address=(_local_bind_address, _local_mysql_port) ) as tunnel: connection = mysql.connector.connect( user=_db_user, password=_db_password, host=_local_bind_address, database=_db_name, port=_local_mysql_port) ...
Paramiko是进行ssh隧道的最佳python模块。在这里查看代码: https://github.com/paramiko/paramiko/blob/master/demos/forward.py
正如评论中所说,这一个工作完美。 SSH Tunnel for Python MySQLdb connection
只有这对我有效
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder from os.path import expanduser home = expanduser('~') mypkey = paramiko.RSAKey.from_private_key_file(home + pkeyfilepath) # if you want to use ssh password use - ssh_password='your ssh password', bellow sql_hostname = 'sql_hostname' sql_username = 'sql_username' sql_password = 'sql_password' sql_main_database = 'db_name' sql_port = 3306 ssh_host = 'ssh_hostname' ssh_user = 'ssh_username' ssh_port = 22 sql_ip = '1.1.1.1.1' with SSHTunnelForwarder( (ssh_host, ssh_port), ssh_username=ssh_user, ssh_pkey=mypkey, remote_bind_address=(sql_hostname, sql_port)) as tunnel: conn = pymysql.connect(host='127.0.0.1', user=sql_username, passwd=sql_password, db=sql_main_database, port=tunnel.local_bind_port) query = '''SELECT VERSION();''' data = pd.read_sql_query(query, conn) conn.close()
我猜你需要港口转运。我建议
sshtunnel.SSHTunnelForwarder
Paramiko是进行ssh隧道的最佳python模块。在这里查看代码: https://github.com/paramiko/paramiko/blob/master/demos/forward.py
正如评论中所说,这一个工作完美。 SSH Tunnel for Python MySQLdb connection
只有这对我有效
相关问题 更多 >
编程相关推荐