一配置环境
os :rhel5
mysql:mysql-5.1.57
master:192.168.30.119
slave:192.168.30.120
二MASTER操作
1 配置my.cnf
shell>vi /etc/my.cnf
修改或添加如下条目
[mysqld]
log-bin=master-bin
log-bin-index=master-bin.index
server-id=11
其它相关参数及说明:
server-id = 11 //数据库ID号,但尽量不要设为1,也不能和从服务器重复
log-bin=mysql-bin //启用二进制日志;
binlog-do-db=data //需要同步的二进制数据库名;
binlog-ignore-db=mysql //不同步的二进制数据库名;这个同步后听说很麻烦,我没
有同步;
log-slave-updates //把更新的记录写到二进制文件中;
slave-skip-errors //跳过错误,继续执行复制;
2 重启服务
shell>service mysqld restart
3 建立复制帐号:repl
mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO
repl@''192.168.30.120 IDENTIFIED BY 'redhat';
---查看是否成功
mysql>select user,host from mysql.user;
4 锁表
mysql>FLUSH TABLES WITH READ LOCK;
5记下FILE POS值
mysql>show master status;
--FILE 显示日志名
--POSITION 显示偏移量
6 建立快照
shell>cd /app/mysql
shell>tar zcvf var.tar.gz var
---当数据库较大时,可选MYSQLDUMP导出
7远程拷贝
shell>scp var root@192.168.30.120:/app/mysql
8解锁
mysql>unlock tables;
---可利用mysql>show master status看pos变化
二 slave操作
1配置my.cnf
shell> vi /etc/my.cnf
修改或添加如下:
[mysqld]
server-id = 22
log-bin=mysql-bin
master-host = 192.168.30.119
master-user = repl
master-password = redhat
master-port = 3306
master-connect-retry=60 //如果发现主服务器断线,重新连接的时间差;
replicate-ignore-db=mysql //不需要备份的数据库;
2解压文件
shell>cd /app/mysql
shell>tar zxvf var.tar.gz
3重启服务
mysql>service mysqld restart
4验证正确性
mysql>show slave status;
--正确
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
5启动同步
shell>start