相关疑难解决方法(0)

用于Python MySQLdb连接的SSH隧道

我尝试使用创建SSH隧道

ssh -L 3306:localhost:22 <hostip>
Run Code Online (Sandbox Code Playgroud)

然后运行我的python脚本通过localhost连接

conn = MySQLdb.connect(host'localhost', port=3306, user='bob', passwd='na', db='test')
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)")
Run Code Online (Sandbox Code Playgroud)

我怎样才能确保我找到正确的主机而不仅仅是绑定的一些问题?

python mysql ssh

19
推荐指数
2
解决办法
2万
查看次数

如何使用 Pyspark 通过 SSH 隧道读取 MySQL 数据库?

我对 Pyspark 这种奇怪的行为感到困惑,但在互联网上找不到任何东西。

我们在专用网络中有一个 MySQL 集群,可以通过 SSH 隧道访问它。我正在尝试使用 Pyspark 和 SSHTunnelForwarder 从该数据库读取数据,我这样做是这样的:

  1. 创建隧道:
server = SSHTunnelForwarder(
        (target_tunnel_ip_address, 22),
        ssh_username=tunnel_username",
        ssh_private_key=private_key_filepath",
        remote_bind_address=(mysql_address, 3306)
        )

server.start()
Run Code Online (Sandbox Code Playgroud)
  1. 使用数据库信息创建 JDBC URL,如下所示:
hostname = "localhost" #Because I forwarded I forwarded the remote port to my localhost
port = server.local_bind_port #To access which port the SSHTunnelForwarder used
username = my_username
password = my_password
database = my_database
jdbcUrl = "jdbc:mysql://{}:{}/{}?user={}&password={}".format(hostname, port, database, username, password)
Run Code Online (Sandbox Code Playgroud)
  1. 从数据库中读取数据:
data = spark.read \
                  .format("jdbc") \
                  .option("url", jdbcUrl) \
                  .option("driver", "com.mysql.cj.jdbc.Driver") \ …
Run Code Online (Sandbox Code Playgroud)

mysql apache-spark pyspark

5
推荐指数
1
解决办法
1557
查看次数

如何使用python打开SSH隧道?

我正在尝试使用django连接到远程mysql数据库.
该文档指定首先需要打开SSH隧道才能连接到数据库.
是否有一个python库可以在设置某些设置时打开SSH隧道?

python django ssh-tunnel

4
推荐指数
3
解决办法
2万
查看次数

标签 统计

mysql ×2

python ×2

apache-spark ×1

django ×1

pyspark ×1

ssh ×1

ssh-tunnel ×1