首页 > 数据库 >python · ssh · SQL | python 连接远程 SQL 数据库

python · ssh · SQL | python 连接远程 SQL 数据库

时间:2023-10-07 21:11:06浏览次数:58  
标签:name python pymysql ssh SQL data connect


python 连接本地 SQL 的 教程存档


如果要连接远程的 SQL 数据库,需要先开一个 ssh 连接,在 ssh 连接里写 pymysql 的 connect 代码。

代码如下:

'''
pip install pymysql
pip install sshtunnel
'''

import pymysql
import pandas as pd
from sshtunnel import SSHTunnelForwarder


def get_all_data(cursor, table_name):
    cursor.execute("select * from " + table_name)
    results = cursor.fetchall()
    description = cursor.description
    # table head
    df = pd.DataFrame(data=results, columns=[item[0] for item in description])
    return df


if __name__ == '__main__':
    # 连接 ssh
    with SSHTunnelForwarder(
        ('10.10.87.7', 22), # 指定 ssh 登录的跳转机的 address,端口号
        ssh_username='ssh_guest', # 远程服务器的用户名,注意不是 DB 的用户名和密码
        ssh_password='password', # 远程服务器的密码
        remote_bind_address=('10.10.87.7', 3306), # 注意端口号不要加引号
        # local_bind_address=('127.0.0.1', 22) # 注意端口号不要加引号 # 13306
    ) as server:
        print('successfully connect ssh!')
        # 连接数据库
        try:
            with pymysql.connect(host='localhost',
                port=3306, # server.local_bind_port, 
                user='sql_username',
                password='password',
                database='database_wanna_read',
                connect_timeout=10,
            ) as conn:
                print('successfully connect sql!')
                df = get_all_data(conn.cursor(), table_name='cold_source_run_data_history')
                # 保存 excel
                df.to_excel('./cold_source_run_data_history.xls',
                    sheet_name='cold_source_run_data_history',
                    index=False)
                print('successfully save excel!')
                exit(0)
        except pymysql.err.OperationalError as e:
            print('mysql lost connection')


标签:name,python,pymysql,ssh,SQL,data,connect
From: https://www.cnblogs.com/moonout/p/17747484.html

相关文章

  • sqlplus下执行sql脚本的方法
    平时,我们在sqlplus下调用某个SQL语句,一般是使用@sql脚本路径即可比如sql>@/home/oracle/startdb.sql最近开到某些文档上,使用的sql>start/home/oracle/startdb.sql也是可以的就是start和@这里等价。......
  • 在Python中,元类是什么?
    内容来自DOChttps://q.houxu6.top/?s=在Python中,元类是什么?什么是元类(metaclasses)?它们用于什么目的?元类是Python中的一种高级概念,它们是创建类的类。在Python中,类也是对象,因此它们也可以被看作是对象的模板。元类允许您控制类的创建过程,例如修改类的属性或方法,或者添加新的......
  • mysql 基础
    win+r  services.msc 可以查看mysql是否启动,也可以停止配置环境变量后,就可以在任意位置执行mysql了 ,这里在文件访问了mysql 一SQL分类一、DDL数据库操作 1、表的查询 前提是先use+数据库名进入数据库 showtables; 2、创建表 createtable+表......
  • 【Azure Function App】Python Function调用Powershell脚本在Azure上执行失败的案例
    问题描述编写PythonFunction,并且在Function中通过 subprocess 调用powershell.exe执行powershell脚本。importazure.functionsasfuncimportloggingimportsubprocessapp=func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)defrun(cmd):completed......
  • 【Azure Function App】Python Function调用Powershell脚本在Azure上执行失败的案例
    问题描述编写PythonFunction,并且在Function中通过 subprocess 调用powershell.exe执行powershell脚本。importazure.functionsasfuncimportloggingimportsubprocessapp=func.FunctionApp(http_auth_level=func.AuthLevel.FUNCTION)defrun(cmd):compl......
  • python过滤以#;//号开头的行注释行 startswith()
    作用:过滤指定符号开头的行(过滤注释行)Pythonstartswith()方法用于检查字符串是否是以指定子字符串开头,如果是则返回True,否则返回False。如果参数beg和end指定值,则在指定范围内检查。方法(函数):str.startswith(substr,beg=0,end=len(string));参数:str--......
  • python28days
    面向过程编程面向对象编程类的定义和对象的产生定制对象自己独有的属性属性的查找顺序(类属性,对象属性)—————————————————————————————————————————————————————————————在编程中,面向过程和面向对象是编程的两大......
  • Python 图片管理工具介绍(筛像素+从文件夹取出图片并放到文件夹内+excel读取)
    功能介绍:这是一个Python脚本工具,用于批量管理和复制图片。其主要功能如下:从Excel表格读取数据:程序使用openpyxl库从Excel文件中读取数据,其中A列包含源图片的路径(可以有多个路径,用逗号分隔),B列包含目标目录。图片筛选:仅复制最小维度大于800像素的图片,这可以确保目标目录中的......
  • Python3.12 新特性——GIL 重大突破!
    Python3.12新特性2023年10月2日,Python3.12正式发布了,和之前版本相比,Python3.12有比较大的更新,核心最主要的就是能够支持解释器之间的隔离了,在一个Python进程当中能够有多个解释器,这在一定程度上缓解了GIL带来的问题,在这个版本当中主要有下面的一些主要的新特性:更灵......
  • openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-M
    openGauss学习笔记-92openGauss数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOTSQL覆盖和限制MOT设计几乎能够覆盖SQL和未来特性集。例如,大多数支持标准的PostgresSQL,也支持常见的数据库特性,如存储过程、自定义函数等。下面介绍各种SQL覆盖和限制。92.1不支持......