我是python的新手,所以我可能搞砸了一些东西。
我正在连接到MySql,但是在执行选择后我想退出连接,我尝试使用server.stop()
,但这没用。
from sshtunnel import SSHTunnelForwarder
import getpass
import mysql.connector
#password_ssh = getpass.getpass("Insert Password of SSH Connection")
#password_db = input("Insert Password of MySql DB")
user_ssh = 'user'
user_db = 'user'
with SSHTunnelForwarder(
('{host}', port),
ssh_password= '',
ssh_username= user_ssh,
remote_bind_address=('127.0.0.1', 3306)) as server:
con = mysql.connector.connect(
user=user_db, passwd='',
db='db_name', host='127.0.0.1',
port=server.local_bind_port)
mycursor = con.cursor()
mycursor.execute("SELECT.... ")
myresult = mycursor.fetchall()
server.stop()
print(myresult)
我无法打印变量的值:myresult,该变量不为null,如果我将其放在“ with SSH ..”中,它会打印,但是如果我将其放在外面,则不起作用。 我是否缺少某些东西或缩进不正确?
谢谢
答案 0 :(得分:0)
发生这种情况是因为您的客户端仍处于打开状态。
关闭客户端后,它将允许您停止服务器。
con.close()
server.stop()