Contexte : J'ai deux serveurs MySQL 5.1 configurés en réplication basée sur les lignes Master-Master (RBR) en suivant cet excellent guide . Je veux que toutes les bases de données soient répliquées et j'ajouterai régulièrement de nouvelles bases de données.
Objectif : je voudrais pouvoir ajouter de nouvelles bases de données à la réplication en ajoutant simplement la base de données à l'un des serveurs; sans avoir à arrêter les deux esclaves, modifier les fichiers de configuration, redémarrer les serveurs MySQL et redémarrer les esclaves.
Question : D'après ce que je l' ai lu, je pense que je peux le faire simplement en omettant tout binlog-do-db
, binlog-ignore-db
, replicate-do-db
et les replicate-ignore-db
paramètres de configuration de chaque serveur, mais je ne peux pas être sûr. Les documents de MySQL sur la façon dont les options de réplication au niveau de la base de données et de la table sont évaluées me font penser qu'il n'y a aucun moyen d'y parvenir.
Les parties pertinentes de mes /etc/mysql/my.cnf
fichiers sont copiées ci-dessous. Suis-je sur la bonne voie? Est-ce que je veux même possible?
Master 1 :
[mysqld]
binlog-format = row
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-host = <master2_ip>
master-user = slave_user
master-password = <password>
master-connect-retry = 60
log-bin = /var/log/mysql/mysql-bin.log
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index
expire_logs_days = 14
max_binlog_size = 2048M
Master 2 :
[mysqld]
binlog-format = row
server-id = 2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2
master-host = <master1_ip>
master-user = slave_user
master-password = <password>
master-connect-retry = 60
log-bin = /var/log/mysql/mysql-bin.log
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index
expire_logs_days = 14
max_binlog_size = 2048M