【问题标题】:MariaDB + Galera, Galera does not replicate mysql.userMariaDB + Galera,Galera 不复制 mysql.user
【发布时间】:2014-05-27 20:25:37
【问题描述】:

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

【问题讨论】:

    标签: mariadb galera


    【解决方案1】:

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

    如果你通过“insert into mysql.user ....”创建用户,它是 myissam-DML --> NOT REPLICATED

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

    【讨论】:

      【解决方案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
      

      最后是数据。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2020-10-12
          • 2017-01-09
          • 2019-01-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-19
          • 2021-05-12
          相关资源
          最近更新 更多