私はPythonスクリプトをいくつか書いています。私はSSH Connectionを介してMySQLサーバをトンネルして、いくつかのSQLリクエストを実行したいと思います。サブプロセスのトンネルを使ったPython ssh
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()
接続が正常に動作しているが、実行後スクリプト(サブプロセス)を閉じない、またそれは、すべての印刷された行の前にいくつかの空白を追加です。
事前にお読みいただきありがとうございます。
ありがとう、私はそれを適切な方法に変更しましたが、まだ正しく動作していません。今度はデータベースサーバーに接続してDatabaseServer上でコマンドを実行しますが、sqlリクエストをローカルで実行するためにはssh接続をバックグラウンドで開く必要があります。 – Knoedelauflauf
ですが、 'サブプロセス 'はそれを行います:バックグラウンドでプロセスを実行します。 –
ああ私はそれを取得しません。データベースクエリを実行すると、データベースサーバのユーザ名が常に表示されます。 – Knoedelauflauf