0

我有一个带有 2 个节点的 mariadb galera,当我在 db1 中创建一个用户时,这不会复制 en db2 但是如果我在 db1 中创建一个 db,它会在 db2 中复制!!!!mysql.user 复制的任何想法?

4

3 回答 3

2

Galera 仅复制 DDL(数据定义语言)和innodb -DML(数据操作语言)。

如果您通过“插入 mysql.user ....”创建用户,则它是myissam -DML --> NOT REPLICATED

如果您通过“create user ....”创建用户,则它是 DDL --> 复制的。

于 2015-02-03T09:52:24.470 回答
2

默认情况下,MariaDB在数据库上mysql,然后mysql.userMyISAM
用于更改所有表,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

最后是数据。

于 2016-11-09T08:51:12.993 回答
0

您确定,您正在使用创建用户/授予所有权限语句创建用户吗?Galera 旨在完美地在 InnoDB 上运行,但 mysql 数据库中的表(如用户表)位于 MyISAM 中,这可能会导致愚蠢的错误。

于 2014-07-15T07:41:31.357 回答