常用脚本:快速连接数据库工具(DatabaseClass.py)

本文档介绍了一个Python脚本,定义了一个名为xxxxDatabaseConn的类,用于简化数据库的连接操作。类中包含了初始化方法,根据传入的主机名选择不同的数据库连接方式,如通过SSH隧道连接或直接连接。此外,还提供了开启和关闭数据库连接的方法,以及针对不同数据库(如xx公司bass数据库和xx公司测试库)的连接示例。通过此类,可以避免重复书写数据库连接和管理的代码。
说明

公司的常用数据库,为了避免避免重复书写跳板机连入方式,以及开启关闭等脚本,编写成快捷的连接类。

脚本
# 常用数据库连接类
class xxxxDatabaseConn:
    # 初始化并开启数据库连接
    def __init__(self, choice_host:str, database='undefined'):
        print("初始化:xxxxDatabaseConn:对象 '{host}.{databasename}'".format(host = choice_host, databasename = database))
        self.host = choice_host
        self.databasename = database
        self.open(choice_host,database)
    
    def open(self, choice_host:str, database='undefined'):
        self.choice_host = choice_host

        # xx公司bass数据库
        if choice_host == "xx公司bass数据库":
            # 启动服务
            self.server = SSHTunnelForwarder(
                ssh_address_or_host=('{填入跳板机地址}', 9888),  # ssh 目标服务器 ip 和 port
                ssh_username="{填入跳板机用户名}",  # ssh 目标服务器用户名
                # ssh_password= "",           # ssh 目标服务器用户密码
                ssh_pkey="{填入私钥存放地址}",  # ssh 目标服务器证书
                # ssh_private_key_password="",  # ssh 目标服务器证书密码
                remote_bind_address=('127.0.0.1', 3306),  # mysql 服务ip 和 part
                local_bind_address=('127.0.0.1', 5101),  # ssh 目标服务器的用于连接 mysql 或 redis 的端口,该 ip 必须为 127.0.0.1
                set_keepalive=5
            )
            self.server.start()
            print("跳板机开启")
            # 在server环境下连接数据库
            self.conn = pymysql.connect(
                host=self.server.local_bind_host,  # server.local_bind_host 是 参数 local_bind_address 的 ip
                port=self.server.local_bind_port,  # server.local_bind_host 是 参数 local_bind_address 的 port
                user="{填入数据库用户名}",
                password="{填入数据库登录密码}",
                db=database,  # database为服务器下选定的数据库名称
                charset="utf8"
            )
            print("数据库连接")

        # xx公司测试库
        if choice_host == "xx公司链测试库":
            # 在server环境下连接数据库
            self.conn = pymysql.connect(
                host="{填入服务器地址}",  # server.local_bind_host 是 参数 local_bind_address 的 ip
                port=3306,  # server.local_bind_host 是 参数 local_bind_address 的 port
                user="{填入数据库用户名}",
                password="{填入数据库登录密码}",
                db=database,  # database为服务器下选定的数据库名称
                charset="utf8"
            )

        self.cursor = self.conn.cursor()
        print(choice_host + " 连接已开启...")

    # 关闭数据库连接
    def close(self):
        try:
            self.conn.close()
            print(self.choice_host + " 连接已关闭...")
        except Exception as e:
            print('出现异常:', e)
            self.conn.rollback()
            return False


if __name__ == "__main__":
    WaykichainDatabaseConn("本地数据库","test_db")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值