#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()