Чтение таблиц в удаленной базе данных mysql с помощью туннеля Django SSH

Я застрял с этим. У меня есть доступ к удаленной базе данных MySQL, используя ssh туннель с IP, Port, ssh username, ssh password и используя учетные данные базы данных с Server Host, Port, DB Name, user и password.

Я могу получить доступ к этой удаленной базе данных MySQL в DBeaver и Putty, используя ssh туннель и учетные данные базы данных

В моем приложении Django, в settings.py

ssh_tunnel = SSHTunnelForwarder(
    (sshIpAdd, sshPort),
    ssh_username=sshUser,
    ssh_password=sshPass,
    ssh_proxy_enabled=True,
    # ssh_config_file=None,
    remote_bind_address=('127.0.0.1', 3306),
)
ssh_tunnel.start()
print(ssh_tunnel.local_bind_port)

con=mysql.connector.connect(database=dbName,
                            host='localhost',
                            user=dbUser,
                            password=dbPass,
                            auth_plugin='mysql_native_password',
                            charset='utf8',
                            port=ssh_tunnel.local_bind_port)

if con!=None:
    print("Connected to Mysql Remote Database")
else:
    print("Sql Not Connected")

он выводит успешный результат и отображает Connected to Mysql Remote Database

(py39) X:>python manage.py runserver

65116 Подключен к удаленной Mysql База данных 65122 Connected to Mysql Remote Database Выполнение системных проверки...

Проверка системы не выявила проблем (0 промолчало). 20 июля 2022 - 12:55:06 Django версии 3.2.9, используя настройки 'test.settings' Запуск сервер разработки по адресу http://127.0.0.1:8000/ Выйти из сервера с помощью CTRL-BREAK.

Когда я выполняю команду 'python manage.py inspectdb --database=remote_db', она успешно создает структуру модели из удаленной базы данных.

Проблема заключается в том, что когда я обращаюсь к удаленной базе данных в DATABASES с несколькими базами данных,

DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql_psycopg2',
            'NAME': defaultDBName,
            'USER': 'postgres',
            'PASSWORD': defaultDBPass,
            'HOST': 'localhost',
            'PORT': '5432',
        },
        'remote_db': {
            'ENGINE': 'django.db.backends.mysql',
            'HOST': 'localhost',
            'PORT': ssh_tunnel.local_bind_port,
            'NAME': dbName,
            'USER': dbUser,
            'PASSWORD': dbPass,
        },
}

после выполнения команды "python manage.py migrate --database=remote_db" ответ - ошибка,

Traceback (последнее последнее обращение):

File "X:\manage.py", line 22, in main() Файл "X:\manage.py", строка 18, in main execute_from_command_line(sys.argv) Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management_init_.py", строка 419, в execute_from_command_line utility.execute() Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management_init_.py", строка 413, в execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", строка 354, в run_from_argv self.execute(*args, **cmd_options) Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", строка 398, в execute output = self.handle(*args, **options) Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\base.py", строка 89, в wrapped res = handle_func(*args, **kwargs) Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\core\management\commands\migrate.py", строка 244, в handle post_migrate_state = executor.migrate( Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\migrations\executor.py", строка 91, в migrate self.recorder.ensure_schema() Файл "C:\Users\k\AppData\Local\Programs\Python\Python310\lib\site-packages\django\db\migrations\recorder.py", строка 70, в ensure_schema raise MigrationSchemaMissing("Unable to create the django_migrations table (%s)" % exc) django.db.migrations.exceptions.MigrationSchemaMissing: Unable to создать таблицу django_migrations ((1142, "Команда CREATE отклонена для пользователю 'db_viewer'@'localhost' для таблицы 'django_migrations'"))

>

Я хочу только читать удаленную базу данных. Я новичок в Django.

Заранее спасибо.

Вернуться на верх