Wednesday, April 9, 2008

Mysql data replication

Chapter 15 of mysql manual (version 5.0) deals with this.

At the master server: (Assumption: Mysql is installed and running)

1. Edit /etc/my.cnf
1.1 Add the following into [mysqld] section
[mysqld]
log-bin=mysql-bin
server-id=1
2. Add a user for replication

grant replication slave on *.* to 'slaveuser'@'192.168.1.%' identified by 'slavepass';

3. Restart service at the master
service mysqld restart

4. Find the position of the current log

flush tables with read lock;
show master status;
(Note the position of the log file. This will be used at slave)

At the slave server:

1. Add the following to /etc/my.cnf in the [mysqld] section
[mysqld]
server-id=2
2. Add the master information to slave server.

change master to MASTER_HOST='192.168.1.5', MASTER_USER='slaveuser', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=90;

Noticed this issue: After reboot, the log filename changes. How to fix this issue?

Monday, April 7, 2008

tar backups

If you have to backup the entire /, using cp not be nice since some special files will misbehave. I had to copy a chroot environment recently. This is how I did it

(It was executed in /storage/bkup. The chrrot-ed env was in /storage/dl)
tar cvf - ../dl | tar xvf -