利用frp将内网MySQL发布至外网、编写python脚本连接MySQL查询表信息

1、利用frp将内网MySQL发布至外网

获得frp服务端信息

创建frp客户端

vim frpc.ini
[common]
server_addr =123.249.27.70   
# frp服务端ip地址
server_port = 7000
# 服务器端口
token=15773141955
# 代理标识
[kk]
# 被代理的主机名称
type = tcp
# 代理服务类型
local_ip = 127.0.0.1
# 本地ip
local_port = 3306
# 本地被代理端口
remote_port = 6077
# 选择代理后的端口
[root@master_sql frp_0.33.0_linux_amd64]# ./frpc -c ./frpc.ini
2024/08/09 09:41:04 [I] [service.go:282] [35411ff5ed285277] login to server success, get run id [35411ff5ed285277], server udp port [0]
2024/08/09 09:41:04 [I] [proxy_manager.go:144] [35411ff5ed285277] proxy added: [kk]
2024/08/09 09:41:04 [I] [control.go:179] [35411ff5ed285277] [kk] start proxy success
# 代理成功
2、编写python脚本连接MySQL查询表信息

1.设置清华镜像站(从国内下载安装包,提⾼下载和安装速度)

pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

2.安装pandas数据分析⼯具(pandas是知名的数据分析⼯具,pandas有完整的读取数据的⼯具,以及DateFrame数据框架,⽤于保存从数据库中读取的数据)

yum -y install pandas

3.安装pymysql连接器(oracle为开发者提供的python管理mysql的⼯具,通过这个⼯具,就恶意在不替原有代码的情况下,应对数据库软件的升级)

yum -y install pymysql

4.编写脚本

import pymysql as pm
import pandas as pd
​
class Python_Mysql01(object):
        def __init__(self):
                print("test")
                print("=====================")
​
        def getConn(self):
                conn=pm.connect(
                        host=input("sign host_ip|name:"),
                        user=input("sign database user:"),
                        password=input("sign database password:"),
                        database=input("sign database name:"),
                        port=int(input("sign port on:"))
                )
#               print(conn)
                return conn
​
        def getRes(self,cursor,sql):
                cursor.execute(sql)
                # 获得查询的数据
                data=cursor.fetchall()
​
                # 获得表头
                head=[item[0] for item in cursor.description]
​
                # 组成pandas数据框 DataFrame
                return pd.DataFrame(data=data,columns=head)
​
if __name__=="__main__":
        # 初始化Pyhton_Mysql01类,创建实例:pmp,之后所有的方法都可以在实例中调用
        pmp=Python_Mysql01()
        # 获得conn
        conn=pmp.getConn()
​
        # 获得游标
        cursor=conn.cursor()
#       print(cursor)
​
        tablename=input("sgin tablename:")
        df=pmp.getRes(cursor,"select * from " + tablename)
        print(df)
​
        print("OK!")
        print("=====================")

5.部署为⼀个二进制的可执⾏⽂件

(1)安装pyinstaller

pip3 install pyinstaller

(2)使⽤pyinstaller⽣成可执⾏⽂件

pyinstaller --onefile xxx.py
# py⽂件中必须是有 if __name__=="__main__":
# xxxxx

6.python模块 发布web服务

python3 -m http.server 9971
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值