У меня есть mariadb galera с 2 узлами, когда я создаю пользователя в db1, он не реплицирует en db2, но если я создаю db в db1, он реплицируется в db2 !!!! Есть идеи для репликации mysql.user?
MariaDB + Galera, Galera не копирует mysql.user
Ответы (3)
Galera копирует только DDL (язык определения данных) и innodb -DML (язык обработки данных).
Если вы создаете пользователя с помощью команды "вставить в mysql.user ....", это будет myissam -DML -> НЕ ПОВТОРЯЕТСЯ.
Если вы создаете пользователя с помощью команды «создать пользователя ....», это DDL -> реплицируется.
По умолчанию MariaDB
база данных mysql
, а затем mysql.user
MyISAM
,
для изменения все таблицы на InnoDB
это доказывают:
mysqldump -uroot -p --no-data -R --triggers mydb > mydb_schema.sql
Затем выгрузите данные:
mysqldump -uroot -p --no-create-info -R --triggers mydb > mydb_data.sql
Изменить механизм хранения
sed -i.bak 's#MyISAM#innodb#g' mydb_schema.sql
и после импорта mydb_schema
mysql -u root -p < mydb_schema.sql
и, наконец, данные.
Вы уверены, что создаете пользователя с помощью оператора создания пользователя / предоставления всех привилегий? Galera разработана для идеальной работы с InnoDB, но таблицы в базе данных mysql (например, таблица пользователей) находятся в MyISAM, что может вызывать глупые ошибки.