我正在编写一些python脚本,我想通过SSH连接对MySQL服务器进行隧道化,并执行一些SQL请求。在
import MySQLdb
import os
handle = os.popen('ssh config -L 3306:127.0.0.1:3306')
db = MySQLdb.connect(host="127.0.0.1",
user="Username",
passwd="Secret",
db="dbName")
cur = db.cursor()
cur.execute("SELECT * FROM tablename")
for row in cur.fetchall():
print row[1]
db.close()
handle.close()
连接工作正常,但在执行后不会关闭脚本(子进程),而且在每个打印行前面添加了一些空白。在
感谢您的阅读,并提前感谢您。在
我还没有测试过这个,但是,^{} 已经过时了。请改用
subprocess
模块。在使用
subprocess
可以终止进程(使用os.popen
无法轻松完成此操作,因为close
只关闭了句柄)注意
split
部分传递一个参数列表而不是字符串。这很快,但有些操作系统不支持向Popen
传递字符串。正确的方法是:["ssh","config","-L","3306:127.0.0.1:3306"]
,这样就可以透明地传递带有空格的参数。在相关问题 更多 >
编程相关推荐