Не удается закрыть SSH-соединение в python

#python #python-3.x

#python #python-3.x

Вопрос:

Я новичок в Python, поэтому, возможно, я что-то перепутал. Я подключаюсь к MySQL, но после выполнения select я хочу разорвать соединение, я попытался использовать 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 ..’, она напечатает, но если я помещу ее снаружи, это не сработает.
Я что-то упускаю или отступ неверен?

Спасибо

Комментарии:

1. Вам придется отключить клиентское соединение MySQL.

2. @KlausD. Спасибо!! это сработало

Ответ №1:

Это происходит потому, что ваш клиент все еще открыт.

Это позволит вам остановить сервер, как только вы закроете свой клиент.

 con.close()

server.stop()