通过python管理MySQL

a
内⽹主机 不可以被⽹络访问
b
外⽹主机 可以被外⽹通过ip或者域名访问
使⽤b代理a主机,通过访问b主机管理a主机
访问b主机的特定端⼝,管理a主机的22端⼝
现在我们说b为服务端,提供代理服务
a主机是客户端,被代理了
服务端
开启端⼝

复制代码
# 打开控制台⾯板端⼝
[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public
--add-port=7500/tcp --permanent
# 打开frp服务端⼝
[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public
--add-port=7000/tcp --permanent
# 打开⼀组客户端⼝
[root@hcss-ecs-e083 ~]# firewall-cmd --zone=public
--add-port=6000-6100/tcp --permanent
# 加载防⽕墙更新
[root@hcss-ecs-e083 ~]# firewall-cmd --reload

⽂件

复制代码
[root@hcss-ecs-e083 ~]# ls -l
frp_0.33.0_linux_amd64/frps*
-rwxrwxr-x 1 yuanyu yuanyu 12976128 Apr 27 2020
frp_0.33.0_linux_amd64/frps
-rw-rw-r-- 1 yuanyu yuanyu 4639 Apr 27 2020
frp_0.33.0_linux_amd64/frps_full.ini
-rw-rw-r-- 1 yuanyu yuanyu 114 Jul 18 21:41
frp_0.33.0_linux_amd64/frps.ini

配置⽂件

复制代码
[root@hcss-ecs-e083 ~]# vim
~/frp_0.33.0_linux_amd64/frps.ini
---------------------------------------------------
-----------
# 服务名称
[common]
# 服务端⼝
bind_port = 7000
# 控制台⾯板账号
dashboard_user=xxxxxx
# 控制台密码
dashboard_pwd=xxxxxxx
# 控制台端⼝
dashboard_port=7500
# 代理标识
token=xxxxxxxx

客户端
⽂件

复制代码
[root@hcss-ecs-e083 ~]# ls -l
frp_0.33.0_linux_amd64/frpc*
-rwxrwxr-x 1 yuanyu yuanyu 10629120 Apr 27 2020
frp_0.33.0_linux_amd64/frpc
-rw-rw-r-- 1 yuanyu yuanyu 7575 Apr 27 2020
frp_0.33.0_linux_amd64/frpc_full.ini
-rw-rw-r-- 1 yuanyu yuanyu 126 Apr 27 2020
frp_0.33.0_linux_amd64/frpc.ini

配置⽂件

复制代码
# 服务器名称
[common]
# 服务器ip
server_addr = x.x.x.x
# 服务器端⼝
server_port = 7000
# 代理标识
token=xxxxxxx
# 被代理的主机名称,不允许和其他重复
[被代理主机名称xxx]
# 代理服务类型
type = tcp
# 本地ip
local_ip = 127.0.0.1
# 本地被代理的端⼝
local_port = 22
# 选择代理后的端⼝
remote_port = ⾃选端⼝xxxxxxx60000

1.⽅法⼀

复制代码
pip3 config set global.index-url
https://pypi.tuna.tsinghua.edu.cn/simple
yum -y install sqlalchemy
pip3 install pandas
import pandas as pd
from sqlalchemy import create_engine
class Python_Mysql(object):
def __init__(self):
print("test")
def getEngine(seft):
host=input("sign mysql server
host:")
username=input("sign mysql
username:")
password=input("sign mysql
password:")
databasename=input("sign database
name:")
port=input("sign mysql port:")
engine=create_engine(f"mysql+pymysql://{username}:
{password}@{host}:{port}/{databasename}")
return engine
def querySql(self,conn):
sql=input("sign your sql:")
return
pd.read_sql(sql=sql,con=conn)
if __name__=="__main__":
demo=Python_Mysql()
#sql=input("sign sql:")
# sql="select * from user"
rs=demo.querySql(demo.getEngine())
print(rs)

2.⽅法⼆

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

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

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

    pip3 config set global.index-url
    https://pypi.tuna.tsinghua.edu.cn/simple
    yum -y install pandas
    yum -y install pymysql

    import pandas as pd
    import pymysql
    conn=pymysql.connect(
    ... host='10.1.1.100',
    ... user='zhangmin',
    ... password='zhangmin',
    ... database='test',
    ... port=3306
    ... )
    conn
    <pymysql.connections.Connection object at
    0x7f9e24ba2c88>
    cursor=conn.cursor()
    cursor
    <pymysql.cursors.Cursor object at 0x7f9e24ba2668>
    sql="select * from user"
    cursor.excute(sql)
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    AttributeError: 'Cursor' object has no attribute
    'excute'
    cursor.execute(sql)
    3
    cursor.description
    (('id', 3, None, 11, 11, 0, False), ('username',
    253, None, 180, 180, 0, False), ('password', 253,
    None, 180, 180, 0, False))
    desc=cursor.description
    res
    3
    res=cursor.fetchall()
    res
    ((1, 'aaa', '123'), (8, 'baba', 'pipi'), (20,
    'aaaaaaaa', 'bbbbbbbb'))
    desc
    (('id', 3, None, 11, 11, 0, False), ('username',
    253, None, 180, 180, 0, False), ('password', 253,
    None, 180, 180, 0, False))
    [item[0] for item in desc]
    ['id', 'username', 'password']
    col=[item[0] for item in desc]
    df=pd.DataFrame(res,columns=col)
    df
    id username password
    0 1 aaa 123
    1 8 baba pipi
    2 20 aaaaaaaa bbbbbbbb

总结

  1. 和shell脚本⼀样python⽂件也可以称为py脚本,也是将pyhton指令做⼀个集合
  2. 为了脚本更加的智能化和⾃动化,添加选择语句(智能)循环语句(⾃动化)
  3. 同时为了开发效率,可读性,做了⽅法,类,模块,
相关推荐
Jetev1 天前
golang如何实现审计日志记录_golang审计日志记录实现教程
jvm·数据库·python
yexuhgu1 天前
Redis如何解决哨兵通知延迟问题_优化客户端连接池动态刷新拓扑的订阅监听机制
jvm·数据库·python
洛水水1 天前
Redis 协议与异步通信深度解析
数据库·redis·缓存
S1998_1997111609•X1 天前
论当今社会主义与人文关怀人格思想下的恶意仿生注入污染蜜罐描述进行函数值非法侵入爬虫的咼忄乂癿〇仺⺋.
数据库·网络协议·百度·ssh·开闭原则
倔强的石头_2 天前
kingbase备份与恢复实战(六)—— 备份自动化与保留策略:Windows任务计划+日志追溯
数据库
轻刀快马2 天前
别被 ORM 框架宠坏了:从一场“订单消失”悬案,看懂 MySQL 为什么要强推 InnoDB
数据库·mysql
后端漫漫2 天前
Redis 客户端工具体系
数据库·redis·缓存
PaperData2 天前
1988-2025年《中国人口和就业统计年鉴》全年份excel+PDF
数据库·人工智能·数据分析·经管
星河耀银海2 天前
C语言与数据库交互:SQLite实战与数据持久化
c语言·数据库·sqlite·交互
过期动态2 天前
MySQL中的约束
android·java·数据库·spring boot·mysql