我有一个带有 2 个节点的 mariadb galera,当我在 db1 中创建一个用户时,这不会复制 en db2 但是如果我在 db1 中创建一个 db,它会在 db2 中复制!!!!mysql.user 复制的任何想法?
问问题
1521 次
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.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
最后是数据。
于 2016-11-09T08:51:12.993 回答
0
您确定,您正在使用创建用户/授予所有权限语句创建用户吗?Galera 旨在完美地在 InnoDB 上运行,但 mysql 数据库中的表(如用户表)位于 MyISAM 中,这可能会导致愚蠢的错误。
于 2014-07-15T07:41:31.357 回答