Difference between revisions of "System/MySQL/Replication"
Jump to navigation
Jump to search
| Line 28: | Line 28: | ||
cat dump.sql | mysql -u root -p | cat dump.sql | mysql -u root -p | ||
mysql -u root -p -e "start slave" | mysql -u root -p -e "start slave" | ||
| + | |||
| + | == Replication user on Master == | ||
| + | |||
| + | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'c8w5d9XXs.#'; | ||
| + | |||
| + | == 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; | ||
Revision as of 14:56, 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 'c8w5d9XXs.#';
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;