Изменение уровня изоляции MySQL на Django / Elastic beanstalk / RDS - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь изменить уровень изоляции моего экземпляра MySQL на RDS через приложение Django.Я выполнил рекомендацию здесь

Итак, я изменил мои настройки Django db на:

    'OPTIONS': {
        'init_command': 'SET default_storage_engine=INNODB; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED'
    }

Эта команда отлично работает, когда я запускаю прямо в базе данных (MySQL версии 8.0.13) Однако, когда я пытаюсь развернуть его в Elastic Beanstalk, я получил следующую ошибку:

Command failed on instance. Return code: 1 Output: (TRUNCATED)... manual that corresponds to your MySQL server version for the right syntax to use near 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED' at line 1")

Я также попытался изменить строку на:

SET default_storage_engine=INNODB, SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED

Сте же результаты

Есть идеи, что может быть не так?Или другое решение, которое я могу использовать (может быть, я могу просто запустить эту команду и установить вместо нее глобальный уровень изоляции?)

Ответы [ 2 ]

1 голос
/ 03 мая 2019

Можете попробовать, как показано ниже, любой должен работать.

SET @@SESSION.transaction_isolation = value;
SET SESSION transaction_isolation = value;
SET transaction_isolation = value;
1 голос
/ 30 апреля 2019

Возможно, что OPTIONS не может обрабатывать 2 команды. Так что удалите первый - это полезно только при создании новой таблицы. И может быть возможно указать ENGINE=InnoDB на любом CREATE TABLEs, который вам нужно сделать. Во всяком случае, я бы ожидал, что AWS по умолчанию к этому. И 8.0 имеет этот двигатель по умолчанию.

...