利用跳板机连接mysql,导出数据到csv

这篇博客介绍了如何通过跳板机连接到外网环境的mysql数据库,利用pandas和sshtunnel库,循环导出900多万条店铺的点位信息,按省份字段生成34个csv文件,避免了人工操作。文中强调了使用TUNNEL.start()后必须调用TUNNEL.close()来关闭连接,以防线程悬挂问题。

需求:

数据库里有很多店铺的点位(经纬度)信息,大概有900多万条。现在需要将这900多万条店铺数据按照省份的字段导出,一共有34个省份。

其实人工可解,直接sql,按照省份导出就行,当时我就是这么做的,因为还没接触pandas哈哈。现在记录一下,以后就不需要人肉保存数据啦。

实现:

1.因为是外网环境,所以要用到跳板机连接

2.通过pandas循环导出数据到不同问价。

用到的库:

pandas,pymysql,sshtunnel

 

注意点:

使用TUNNEL.start() 之后一定要用TUNNEL.close(),否则这个线程会一直挂着。好像前段时间还因为这个坑了一下同事!

代码如下:

import pandas as pd
import pymysql
from sshtunnel import SSHTunnelForwarder
#通过查询数据库数据,导出excel表
TUNNEL = SSHTunnelForwarder(("111.111.111.111", 1111),       #跳板机的地址,端口
                    ssh_username="abcd", #跳板机用户名
                    ssh_password="abcd",   #跳板机访问密码
                    remote_bind_address=("172.11.11.11", 3306))  #目标数据库地址&端口
TUNNEL.start()

conn = pymysql.connect(host='127.0.0.1',
                       port=TUNNEL.local_bind_port,    #默认必填
           
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值