我在服务器上有一个数据库,需要通过SSH访问。现在,我通过使用命令行获取数据来处理数据库。
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='XX.XX.XX', username='user', password='pass', port = YYY)
query = "mysql -u " + username_sql + " -p" + password_sql +" dbb -e \"" + sql_query + "\""
ssh.exec_command(query.decode('string_escape'))
ssh.close()
有没有一种方法可以使用SQLAlchemy来提高效率,这样我就可以直接使用pandas数据帧?
from sqlalchemy import create_engine
engine = create_engine(
"mysql://username_sql:password_sql@localhost/dbb")
最简单的方法是在远程主机上运行到mysql端口的SSH隧道。For example:
然后使用SQLAlchemy本地连接:
如果您真的想使用paramiko,请尝试this demo code in the paramiko repo或sshtunnel模块。但是,
ssh
命令可能是最简单的方法。。如果隧道关闭,您可以使用autossh重新启动它。您可以使用SSHTunnel库,如下所示:
如果有人想通过SSH连接到远程的Postgresql数据库,并想将数据加载到pandas数据框中,那么下面是如何做到的。
假设我们在远程服务器上安装了一个postgresql数据库,可以通过以下参数对其进行ssh。
SSH参数:
10.0.0.101
22
(SSH的默认端口)my_username
my_password
数据库参数:
5432
(postgresql默认端口)db
postgres_user
(默认用户名是postgres
)postgres_pswd
(默认密码为空字符串)MY_TABLE
现在,我们要连接到我们端的这个数据库,并将数据加载到pandas数据框中:
相关问题 更多 >
编程相关推荐