python 要在远程服务器上运行 SQLite 查询

news/2024/10/8 7:20:27/文章来源:https://www.cnblogs.com/music-liang/p/18450892

 

 

要在远程服务器上运行 SQLite 查询,你可以使用 `paramiko` 库通过 SSH 连接远程服务器并执行 SQLite 命令。下面是一个完整的 Python 示例,演示如何通过 SSH 连接到 `192.168.21.21` 机器上的 SQLite 数据库,查询 `userInfo` 表中 `userId` 小于 100 的所有用户信息。

### Python 代码示例

```python
import paramiko

# 设置远程服务器的连接信息
hostname = '192.168.21.21'
port = 22
username = 'admin'
password = 'admin123'

# SQLite 数据库和查询
remote_db_path = '/usr/data/db/main.db'
query = "SELECT * FROM userInfo WHERE userId < 100;"

# SQLite 命令
command = f"sqlite3 {remote_db_path} \"{query}\""

# 创建SSH客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
# 连接到远程服务器
ssh.connect(hostname, port, username, password)

# 执行 SQL 查询
stdin, stdout, stderr = ssh.exec_command(command)

# 读取并打印查询结果
result = stdout.read().decode()
error = stderr.read().decode()

if result:
print("查询结果:")
print(result)
if error:
print("错误信息:")
print(error)

finally:
# 关闭连接
ssh.close()
```

### 代码说明:
- `hostname`, `username`, 和 `password` 是远程服务器的 SSH 连接凭据。
- `remote_db_path` 是远程 SQLite 数据库的文件路径。
- `query` 是你要执行的 SQL 查询。
- `command` 将 SQLite 的 `SELECT` 语句封装成命令行形式,通过 SSH 在远程服务器上执行。
- 结果会通过 `stdout.read()` 读取并打印到控制台,任何错误信息会通过 `stderr.read()` 获取。

### 运行结果:
- 查询成功时,你会看到 `userId` 小于 100 的所有用户信息。
- 如果有任何错误,会显示在 `error` 输出中。

确保你有权限访问远程机器并读取 SQLite 数据库文件!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/809779.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round)

致敬传奇调题王 HDK A.Meaning Mean给定一个序列 \(a\),每次选择 \(i,j\ (i\neq j)\),使得其缩成一个值为 \(\lfloor\frac{a_i+a_j}{2}\rfloor\) 的数,直至剩余一个数,求最终答案的最大值一开始想的是最小化 \(\lfloor\frac{a_i+a_j}{2}\rfloor\) 的损失,后来发现这点损失…

读数据工程之道:设计和构建健壮的数据系统02数据工程师

数据工程师1. 背景和技能 1.1. 数据工程是一个快速发展的领域,关于如何成为一名数据工程师仍然存在很多问题 1.2. 进入数据工程领域的人在教育、职业和技能方面有着不同的背景1.2.1. 每个进入该领域的人都应该投入大量的时间进行自学1.3. 从一个邻近的领域转到数据工程是最容易…

销售秘籍:故事+观点+结论

在销售的浩瀚宇宙中,隐藏着一个不朽的秘诀——利用人类共有的“错失恐惧”,激发客户内心的渴望与行动。正如村上春树所言,每个故事都深深植根于灵魂,而大仲马则揭示,灵魂之眼所见,比肉眼更为长久铭记。 错失恐惧:销售心理学的隐形推手 作为社会性生物,我们天生害怕错过…

面相快速入门教程5水性

5 水性 在本章中,我将介绍水元素的基本知识,并让你学会如何识别水元素。首先,我们来快速参考一下水元素的特征:能量:黑暗、静止、漂浮、安静、夜晚、冬天、死亡、出生前 特质:睿智、勇敢、恐惧、顽强、果断、任性、独立、坚强、忧郁、固执、神秘、反思、多梦、艺术、神秘…

修改PE入口点方式注入自己编写的DLL——《英雄无敌》1代小回城术修改成大回城术

《英雄无敌》每代都有回城术,而第一代的回城术则是所谓的“小回城术”,就是到达的城堡不能选择。到了《英雄无敌》2代和3代,都有大小回城术了,而大回城术可以使英雄回到己方的任意一座没有自己的英雄所在的城堡,有了这样的魔法,使得英雄能兼顾整个地图,是每个玩家都是首…

Architecture 1001: x86-64 Assembly 汇编

编程语言心法参考:http://www.yinwang.org/blog-cn/2017/07/06/master-pl 英语阅读速成:http://www.yinwang.org/blog-cn/2018/11/23/grammar 前置条件 必须熟悉 C 编程。 https://www.learn-c.org/ https://www.edx.org/certificates/professional-certificate/dartmouth-im…

《机器学习》 学习记录 - 第二章

好多看不懂的高数内容。。。 第2章 模型评估与选择 2.1 经验误差与过拟合错误率(error rate):分类错误的样本数占样本总数的比例。 若在m个样本中有a个样本分类错误,则错误率\(E=a/m\); 而常说的 精度 则等于\(1-a/m\),即 “精度=1-错误率” ,常写为百分比形式。训练误差(…

git push代码失败,鉴权失败

github 无法push 代码 1、确保设置了用户名和邮箱 git config --global user.name "mars" git config --global user.email "mars3603@163.com" 2、修改 .git/config 中的URL,将https的方式修改为 ssh https方式:url = https://github.com/Mars3603/grpc…

织物图像的配准和拼接算法的MATLAB仿真,对比SIFT,SURF以及KAZE

1.算法运行效果图预览 (完整程序运行后无水印)SIFT: surf:kaze: 2.算法运行软件版本 MATLAB2022a3.部分核心程序 (完整版代码包含注释和操作步骤视频)img1 = imread(Images\F1.jpg); img2 = imread(Images\F2.jpg); figure; subplot(121); imshow(img1); title(原始图片1)…

06.OpenFeign接口调用

1.提问 1.1 已经有RestTemplate + LoadBalancer的方式进行服务的调用,为什么还要有OpenFeign? 因为OpenFeign的功能更强大,和使用更便携。 1.2 使用那个? 推荐使用OpenFeign 2.OpenFeign是什么 2.1 官网翻译 https://docs.spring.io/spring-cloud-openfeign/reference/spri…

Hadoop单机模式

1.安装JDK 1.1 下载解压 tar zxf jdk-8u151-linux-x64.tar.gz -C /usr/local/src mv jdk-8u151-linux-x64 java1.2 添加环境变量 export JAVA_HOME=/usr/local/src/java export PATH=$PATH:$JAVA_HOME/binsource /etc/prifile java -version2.安装Hadoop 1.1 下载解压 tar zxf …

mysql读写分离的最佳实践

一. 传统的读写分离方式 在 MySQL 中实现读写分离可以通过以下几种方式来达到目的: 1. 主从复制 使用主从复制(Master-Slave Replication)是实现读写分离的常见方式。主库:处理所有的写入操作(INSERT、UPDATE、DELETE)。 从库:负责处理读操作(SELECT)。步骤:设置主从…