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数据框 DataFramereturn pd.DataFrame(data=data,columns=head) if __name__=="__main__":# 初始化Pyhton_Mysql01类,创建实例:pmp,之后所有的方法都可以在实例中调用pmp=Python_Mysql01()# 获得connconn=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