Monday, August 6, 2007

[MySQL] Mysql replicate DB

mysql สามารถ replicate DB ได้ A<=====>B
Server A:
vi /etc/my.cnf
[mysqld]
log-bin
server-id=1
master-host=192.168.1.1
master-user=replicate
master-password=replicatepass1
replicate-do-db=DB
slave-skip-errors=1050 <<< skip error table exist

Server B:
vi /etc/my.cnf
[mysqld]
log-bin
server-id=2
master-host=192.168.1.2
master-user=replicate
master-password=replicatepass1
replicate-do-db=DB
slave-skip-errors=1050
ทั้ง 2 server ต้องมี tables เหมือนกันโดยจะต้อง create database ก่อน และจะต้อง grant สิทธ์ของ user สามารถ update ข้อมูลกันได้ mysql>create database DB;

mysql>user DB;
mysql>create table 'test' (
`id` int(10) NOT NULL auto_increment,
'name' varchar(32) default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

mysql>load data from master;

command ต่างๆ
mysql>show slave status\G;
mysql>show master status\G;
mysql>start slave;
mysql>stop slave;
mysql>reset slave;