Я работаю с Python, Flask и SQLAlchemy.При создании приложения я использовал локальную базу данных, и она работала нормально со следующим кодом:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config[
'SQLALCHEMY_DATABASE_URI'] = \
'mysql+pymysql://<username>:<password>@localhost/<DBName>'
db = SQLAlchemy(app)
Теперь я пытаюсь получить этот код для подключения к удаленной базе данных с помощьюпакет Python sshtunnel.Вот как выглядит этот код:
from flask import Flask
from sshtunnel import SSHTunnelForwarder
from flask_sqlalchemy import SQLAlchemy
forwarding_server = SSHTunnelForwarder(
'1.2.3.4', #my host IP address
ssh_username="user",
ssh_password="password",
remote_bind_address=('127.0.0.1', 8080)
)
forwarding_server.start()
local_port = str(forwarding_server.local_bind_port)
app = Flask(__name__)
app.config[
'SQLALCHEMY_DATABASE_URI'] = \
'mysql+pymysql://<username>:<password>@127.0.0.1:' + local_port + '/<DBName>'
db = SQLAlchemy(app)
Он выглядит так, как будто он подключается, но сразу после запуска приложения фляги я получаю следующую ошибку:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query')
Любойпонимание этой проблемы было бы полезно.Заранее спасибо!