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

一、利用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
# 代理成功

二、编写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

你可能感兴趣的:(mysql,数据库)