MySQL 5.7 репликации сеансовой переменной "sql_mode" не удается

В документации MySQL для v5.7 говорится о репликации переменных:

В MySQL 5.7 следующие переменные сеанса записываются в двоичный журнал и учитываются подчиненным устройством репликации при синтаксическом анализе двоичного журнала, независимо от формата ведения журнала: - sql_mode, (и т. Д.)

Однако эта функция, похоже, не работает. Я заметил это в моей настройке разработки и дважды проверил это с новой установкой 1 master и 2 slave с mysql-sandbox.

Репликация данных работает:

$HOME/ Песочницы /rsandbox_mysql-5_7_13/ м

master [localhost] {msandbox} ((none)) > use test;
master [localhost] {msandbox} (test) > CREATE TABLE test1 (id INT(11) UNSIGNED NOT NULL);
master [localhost] {msandbox} (test) > INSERT INTO test1 VALUES(1);
master [localhost] {msandbox} (test) > SELECT * FROM test1;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

$HOME/ Песочницы /rsandbox_mysql-5_7_13/s1

slave1 [localhost] {msandbox} (test) > SELECT * FROM test1;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

Однако репликация переменной сеанса sql_mode не работает:

$HOME/ Песочницы /rsandbox_mysql-5_7_13/ м

master [localhost] {msandbox} (test) > SET @@session.sql_mode = '';
master [localhost] {msandbox} (test) > SELECT @@SESSION.sql_mode;
+--------------------+
| @@SESSION.sql_mode |
+--------------------+
|                    |
+--------------------+
1 row in set (0.00 sec)

$HOME/ Песочницы /rsandbox_mysql-5_7_13/s1

slave1 [localhost] {msandbox} (test) > SELECT @@SESSION.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@SESSION.sql_mode                                                                                                                        |
+-------------------------------------------------------------------------------------------------------------------------------------------+
|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Я искал похожие ошибки в трекере ошибок MySQL, но не нашел никаких проблем.

Я знаю, что администратор базы данных может установить глобальную переменную на каждом сервере базы данных. Однако на данный момент это не вариант. Мне нужна эта функция как часть фреймворка OpenSource PHP, который должен иметь как можно меньше требований.

0 ответов

Другие вопросы по тегам