Difference between revisions of "System/MySQL/Replication"
Jump to navigation
Jump to search
Line 31: | Line 31: | ||
== Replication user on Master == | == Replication user on Master == | ||
− | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY ' | + | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'passwd'; |
== Slave initialization commands == | == Slave initialization commands == |
Revision as of 15:57, 16 December 2011
Contents
Configuration
Edit /etc/my.cnf to have the following options (change server-id if necessary):
... server-id = 1 log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M auto-increment-increment = 2 auto-increment-offset = 1 ...
And for each database you want to replicate:
replicate-wild-do-table = db1.% replicate-wild-do-table = db2.% ...
Init and start a slave
First, on the master, dump the data _with_ the --master-data and --single-transaction parameters:
mysqldump -u root -p --master-data --single-transaction --databases db1 db2 > dump.sql
Then source it on the slave and start slave:
cat dump.sql | mysql -u root -p mysql -u root -p -e "start slave"
Replication user on Master
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'passwd';
Slave initialization commands
CHANGE MASTER TO MASTER_HOST = 'x.x.x.x', MASTER_USER = 'repl', MASTER_PASSWORD = 'passwd', MASTER_LOG_FILE = 'mysql-bin.000001', MASTER_LOG_POS = 259, MASTER_SSL = 0;