实现一个Master对两Slave,当Master不能工作时,其中任一Slave可以转为Master。
测试环境:Linux AS3 + Mysql5.0.22
安装Mysql5:
# tar -zxvf mysql-5.0.22.tar.gz
# cd mysql-5.0.22
# ./configure --prefix=/usr/local/mysql-5.0.22 --with-charset=gbk --with-extra-charsets=all --localstatedir=/data/mysql5.0.22
# make
# make install
# cp support-files/my-small.cnf /etc/my5.0.22.cfg
# /usr/local/mysql-5.0.22/bin/mysql_install_db
# chown -R mysql.mysql /data/mysql5.0.22/
Master配置:
server-id=1
log-bin=<最好起个名子>
set-variable = max_binlog_size=100M
binlog-do-db=<备份的数据库名>
在Master建立备份用户:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'<slaveIP>' IDENTIFIED BY 'backpassword';
Slave配置:
server-id=2
log-bin=<记录bin log,将来可以做为Master>
master-host=<hostname or IP>
master-port=3306
master-user=<replicator>
master-password=<password>
max-relay-log-size=500M
master-connect-retry=30
relay-log=mysql-replay-log
relay-log-index=<mysql-replay-bin.index>
#可以重命名数据库名称
#replicate-rewrite-db=<备份的数据库名>->renamed_db
#replicate-do-db=renamed_db
replicate-do-db=<bakup_db>
slave-skip-errors=126,1062
实施注意事项:
1. 首先在SLAVE上建立相应数据库。
2. 给Master、Slave 的Data目录足够的磁盘空间以存放binlog文件。
3. 同步前请Dump出Master数据,然后导入Slave,确保两者初始数据完全一致。
4. 如果同步不成功,请查看err日志查明原因。
附:
Mysql5源代码安装简介
以5.0.22 版本为例:
# mkdir /data
# tar -zxvf mysql-5.0.22.tar.gz
# cd mysql-5.0.22
#./configure --prefix=/usr/local/mysql-5.0.22 --with-charset=gbk --with-extra-charsets=all --localstatedir=/data/mysql5.0.22
# make
# make install
# cp support-files/my-small.cnf /etc/my5.0.22.cfg
安装Mysql数据库
# /usr/local/mysql-5.0.22/bin/mysql_install_db
保证数据目录mysql可读写
# chown -R mysql.mysql /data/mysql5.0.22/
来源:http://hi.baidu.com/8hours/blog/item/f68c73f01ba063afa50f5225.html