Python根据ssh远程桌面连接Mysql数据库操作

AI 摘要 / TL;DR

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联接相同。

01.png

02.png

  数据库服务器

  组装支持库

  如果想联接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注入风险

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。