MySQL Workbench и уровень изоляции сеанса по умолчанию

У меня проблема с MySQL workbench 6.0 CE, опишу максимально доступно:

MySQL Workbench всегда устанавливает для моей переменной сеанса @@tx_isolation значение "REPEATABLE READ", и единственный способ изменить эту переменную — использовать SET tx_isolation='READ-COMMITTED';.

Я хочу, чтобы при запуске workbench переменной сеанса по умолчанию для tx_isolation была 'READ-COMMITTED', а не 'REPEATABLE-READ'; да, я изменил глобальную переменную tx_isolation и она стала 'READ-COMMITTED', а первая сессия - нет.

Ej:

SELECT @@Global.tx_isolation, @@tx_isolation;

возвращает: 'READ-COMMITTED', 'REPEATABLE-READ' соответственно.

Примечание. Если я запрашиваю тот же код, что и выше, в командной строке MySQL, для обеих переменных устанавливается значение 'READ-COMMITTED', поэтому я думаю, что это проблема с MySQL Workbench, а не с сервером.

Спасибо за помощь.


person Eladio Mora    schedule 12.08.2014    source источник
comment
В этом есть подтвержденная ошибка. Хотя понятия не имею, в каком он статусе. Связано: stackoverflow. com/questions/20395889/, stackoverflow.com/questions/26208007/   -  person Sithsu    schedule 07.10.2014


Ответы (1)


Это старый вопрос, но все же у меня такая же ошибка.

Согласно документу (https://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-isolation-levels.html#isolevel_repeatable-read), уровень изоляции по умолчанию — REPEATABLE-READ.

Это означает, что моментальный снимок базы данных делается при ПЕРВОМ чтении транзакции. Каждое второе чтение этой транзакции будет показывать вам данные моментального снимка.

Поэтому вам нужно завершить транзакцию (зафиксировать или откатить), чтобы получить новый снимок при следующем чтении.

Мои коллеги, настроившие MySQL Workbench на AutoCommit, не видят повторяющегося поведения при чтении. Мы выяснили, что это потому, что после каждого SELECT транзакция закрывается и создается новый снимок.

Итак, поскольку ошибка все еще не исправлена ​​(как упомянул Ситсу), обходным путем будет:

  • переключиться на автоматическую фиксацию для автоматического создания новых снимков
  • или фиксация/откат после каждого SELECT для создания нового снимка
person Nico    schedule 29.11.2016