参考资料:
http://dev.mysql.com/doc/refman/4.1/en/replication-howto.html
http://www.imysql.cn/?q=node/73
http://dev.mysql.com/doc/refman/5.1/zh/replication.html

同步概念:
- 在数据库运行的状态下,将数据从主服务器,增量的搬迁到从服务器,实现数据备份、压力均衡等功能;
- 数据搬迁是移步进行的,在4.1.X中在从服务器启动时和执行SQL指令:START SLAVE时从服务器从主服务器将数据增量转移到从机;
- 从服务器的版本需要比主服务器高,或者相等;
- 实现原理是通过主服务器在数据操作时保留二进制日志(log-bin)实现的,这将增加I/O操作,所以官方承认起用二进制将增加服务器1%的负载;

步骤:
1)配置主服务器:
打开主服务器数据库配置文件,一般是/etc/my.cnf
[mysqld]下增加(位置很重要)
####################
server-id = 1 #服务器编号在主/从结构中,每个服务器的编号都需要是唯一的
log-bin #开启设置二进制日志,可以通过log-bin=filename来实现自定义名字
set-variable=binlog-ignore-db=mysql #设置那些数据库可以被跳过不加入日志
set-variable=binlog-do-db=mysql #设置只记录那些数据库,没有实验过是否和上条可以通用,如果要设置多个数据库就重复多次
####################

2)开设主服务器同步用户

在主服务器中执行SQL:
GRANT SUPER,REPLICATION CLIENT,REPLICATION SLAVE,RELOAD ON *.* TO repl@"%" IDENTIFIED BY ‘repl_pass’;
这里设置了repl这个用户,用户可以通过任意(%)地址访问主服务器(可以自己设置就更安全了),密码是repl_pass,还给予这个用户4个权限,具体意思就自己看帮助吧。

3)配置从服务器:
打开从服务器数据库配置文件,一般是/etc/my.cnf
[mysqld]下增加
server-id = 2 #唯一编号
master-host = master-host.net #主服务器地址
master-user = repl #执行同步操作的主服务器用户,就是步骤2开设的用户
master-password = repl_pass #上面那个用户的密码
replicate-do-db = database1 #需要同步的数据库
replicate-do-db = database2

4)清楚从服务器数据库目录中的残留文件,一般有master.info等一些之前做同步失败遗留的文件,如果没做过最好;

5)重新启动主服务器和从服务器,在从服务器上通过远程方式登陆下主服务器(shell> mysql -u user -p -P port -h host),如果成功就ok了

6)确保从服务器上还没有那些需要同步的数据库,在从服务器执行SQL:
LOAD DATA FROM MASTER;
这个把从服务器指定那些库从主服务器下载到从机上(好方便啊),一般在日志里会有一些出错,以后再分析吧。

7)完成,以后每次执行SQL:
START SLAVE;
从机都自动同步主服务器,真方便。