Python根据ssh远程桌面连接Mysql数据库操作
Python根据ssh远程桌面连接Mysql数据库操作 来源: https://www.ucloud.cn/yun/130278.html 作者: 89542767 发布日期: 发布于2023 01 14 10:18 本文关键给大家介绍了Python根据ssh远程桌面连接Mysql数据库操作实例详细说明,感兴趣的小伙伴
来源: https://www.ucloud.cn/yun/130278.html 作者: 89542767 发布日期: 发布于2023-01-14 10:18
本文关键给大家介绍了Python根据ssh远程桌面连接Mysql数据库操作实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪
环境
如果有需要浏览虚拟服务器的Mysql数据库系统,但是该Mysql数据库系统为了安全起见期内,安全保护措施设为只可以宽带连接(也就是说你需要验证到该台网络服务器才能进行),别的远程桌面连接是不能够访问外网,而且对应的端口号都做了改动,那就需要根据ssh来联接该数据库系统。这种方法数据库服务器与Navicat里边页面化根据ssh联接相同。


数据库服务器
组装支持库
如果想联接Mysql,首先要组装pymysql
pipinstallpymysql
组装根据ssh的库sshtunnel
pipinstallsshtunnel#现阶段全新0.3.1版
提议组装最新sshtunnel库,旧版库也有一些bug
联接Mysql
根据ssh联接Mysql可以查询sshtunnel的文本文档,里边也有一些实例
withSSHTunnelForwarder(
('192.168.1.1',2222),
ssh_password='123456',
ssh_username='root',
remote_bind_address=('127.0.0.1',3306))asserver:
print('SSH配对成功')
conn=pymysql.connect(host='127.0.0.1',
port=server.local_bind_port,
user='root',
database='data',
charset='utf8')
print('mysql数据库服务器取得成功')
cursor=conn.cursor()
...#获取数据操作,此处省略
cursor.close()
conn.close()
自定查看函数公式
能够对上边的联接开展封装形式为一个函数,便捷别的地方应用
defmysql_ssh(sql,args=None):
withSSHTunnelForwarder(
('192.168.1.1',2222),
ssh_password='123456',
ssh_username='root',
remote_bind_address=('127.0.0.1',3306))asserver:
print('SSH配对成功')
conn=pymysql.connect(host='127.0.0.1',
port=server.local_bind_port,
user='root',
database='data',
charset='utf8')
print('mysql数据库服务器取得成功')
cursor=conn.cursor()
print('游标卡尺获得取得成功')
try:
print(f'实行查询语句:{sql}主要参数:{args}')
cursor.execute(sql,args)
print('数据查询取得成功')
conn.commit()
print('事务提交成功')
datas=cursor.fetchall()
success=True
except:
print('数据查询失败')
datas=None
success=False
print('正在关闭数据库服务器')
cursor.close()
conn.close()
returndatas,success
注意事项:
在操作数据库时,conn.commit()、cursor.close()、conn.close()这种必须要正确使用,避免不必要bug
调用方法时提议通过这种方式cursor.execute(sql,args),避免sql注入风险
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。