0

I'm replicating database master to master and everything works ok except for mysql.user table.

When I create user in DB-1, that user is not created om DB-2.

I have this on both servers in cnf

binlog_ignore_db=information_schema
binlog_ignore_db=performance_schema
binlog_ignore_db=ssl
binlog_do_db=mysql
replicate_do_db=mysql
replicate_do_table=mysql.user

Status is showing that replication is ok.

SHOW SLAVE STATUS \G

Thank you for help.

EDIT 1: I have also tried to sync all databases:

binlog_do_db=mysql
binlog_do_db=information_schema
binlog_do_db=performance_schema
binlog_do_db=ssl
replicate_do_db=mysql
replicate_do_db=information_schema
replicate_do_db=performance_schema
replicate_do_db=ssl

EDIT 2:

mysql Ver 15.1 Distrib 10.2.26-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Ubuntu 16.04

asked Sep 30, 2019 at 10:10
11
  • User creation involves not only mysql.user table but replicate_do_table directive(s) excludes all tables not mentioned from the replication. It's not a good idea to replicate the mysql database partially. Commented Sep 30, 2019 at 18:28
  • @Kondybas tried with removing line replicate_do_table=mysql.user, but user is still not created on other server Commented Sep 30, 2019 at 18:33
  • Have you synchronized both servers before starting slaves? Commented Sep 30, 2019 at 19:02
  • @Kondybas - yes Commented Sep 30, 2019 at 19:45
  • 1
    Maybe you want to look for syncronous replication (clustering) Commented Oct 2, 2019 at 11:10

1 Answer 1

1

Solved. Before command CREATE USER you have to put:

use mysql;

and then it is replicated to slave server

answered Oct 2, 2019 at 12:24
4
  • CREATE USER do not need to be prepended with USE mysql as it works with it anyway. I suspect that your internal databases and tables are broken enough and you have to reinit your server to avoid unforeseen consequences. N.B. Information and performance schemas are internal engines that shouldn't be replicated. Commented Oct 2, 2019 at 13:55
  • @Kondybas - no. fres Ubuntu 16.04 with fresh database. Slave VM cloned and configured. replication works for all dbs except for "mysql" db which does not throw any error. After I put use mysql it works. found solution here fromdual.com/mysql-replication-with-filtering-is-dangerous Commented Oct 2, 2019 at 14:16
  • @iWizard aren't you afraid of revealing password in plain text in binary log files? Are you using SSL? You don't want to send passwords over an unsecured network. Why do you want to replicate mysql database anyway? I prefer to skip all of the system databases including mysql. This way I can replicate (and I have done this before) mysql to mariadb without worrying about their internal database structures. Commented Oct 9, 2019 at 4:07
  • I am using encrypted bin and ssl. Commented Oct 9, 2019 at 5:52

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.