参考文章:https://blog.csdn.net/qq_33385691/article/details/105249507?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1
对原代码进行了整理
基本功能:填好SSH与MysqL信息与sql语句,直接以数组的形式出结果
1 import pyMysqL 2 from sshtunnel import SSHTunnelForwarder 3 import pyMysqL.cursors 4 5 def querysql(ssh_config, db_config, sql): 6 with SSHTunnelForwarder( 7 (ssh_config['host'], ssh_config['port']), 8 ssh_password = ssh_config['password'], 9 ssh_username = ssh_config['username'], 10 remote_bind_address=(db_config['host'], db_config['port']) 11 ) as server: 12 db = pyMysqL.connect( 13 host = '127.0.0.1', 14 port = server.local_bind_port, 15 user = db_config['username'], 16 passwd = db_config['password'], 17 db = db_config['db_name'], 18 charset = "utf8", 19 cursorclass = pyMysqL.cursors.DictCursor) 20 cursor = db.cursor() 21 try: 22 cursor.execute(sql) 23 data = cursor.fetchall() 24 db.commit() 25 except: 26 db.rollback() 27 28 collect = [] 29 for result in data: 30 collect.append(result) 31 db.close() 32 cursor.close() 33 return collect 34 35 if __name__ == "__main__": 36 # 远程登录配置信息 37 ssh_config = { 38 'host': '', 39 'port': 22, 40 'username': '', 41 'password': '' 42 } 43 # 数据库配置信息 44 db_config = { 45 'host': 'localhost', 46 'port': 3306, 47 'username': '', 48 'password': '', 49 'db_name': '' 50 } 51 # 查询语句 52 sql = 'show tables' 53 # 查询 54 result = querysql(ssh_config, db_config, sql) 55 print (result)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。