我有一个带有2个节点的mariadb galera,当我在db1中创建一个用户时,这不会复制到db2但是如果我在db1中创建了一个db,它会在db2中重新复制! 有没有想过mysql.user复制?
答案 0 :(得分:2)
Galera仅复制DDL(数据定义语言)和 innodb -DML(数据操作语言)。
如果您通过"创建用户,请插入mysql.user ...."它是 myissam -DML - >没有被复制的
如果您通过&#34创建用户;创建用户...."它是DDL - >复制。
答案 1 :(得分: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
最后是数据。
答案 2 :(得分:0)
您确定,您是使用create user / grant all privileges语句创建用户的吗? Galera的设计完全适用于InnoDB,但mysql数据库中的表(如用户表)在MyISAM中可能导致愚蠢的错误。