MySQL数据同步一主多从和一主一从原理其实是一样。
环境:
Master centos5.2 mysql5.1.35 主服务器的ip:10.207.10.154
Slave1 centos5.2 mysql5.6.10 从服务器的ip:10.207.10.158
Slave2 centos5.2 mysql5.6.10 从服务器的ip:10.207.10.205
一master主服务器上设置:
1、编辑my.ini文件
???server-id=1
???log-bin=/var/log/mysql/logbin/mysql-bin //开启log-bin二进制日志文件(注意logbin的权限必须对mysql是可写的)
???binlog-do-db=yaxin //同步yaxin库 其他库都不同步
???#binlog-ignore-db=mysql,information_schema //不同步
2、重启mysql数据库
3、添加slave服务器访问master服务器的帐号和权限
???mysql>GRANT
ALL PRIVILEGES ON *.* TO 'user'@'10.207.10.158' IDENTIFIED BY '123456' ;
???mysql>GRANT
ALL PRIVILEGES ON *.* TO 'user'@'10.207.10.205' IDENTIFIED BY 'abcedf' ;??
???mysql>
show master status; //得到主服务器上当前的二进制日志名和偏移量
+------------------+----------+--------------+------------------+
| File?????????????|
Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+
| mysql-bin.000006 |??????106
|????yaxin
?????????|??????????????????|
+------------------+----------+--------------+------------------+
1 row in set??
二slave1从服务器上设置:
1、编辑my.cnf文件(vi /etc/my.cnf)
???server-id=2???slave的ID号,此处一定要大于master端。
???replicate-do-db=yaxin
2、重启mysql数据库
3、同步
???mysql>stop
slave;
???mysql>change
master to
?????>master_host='10.207.10.154',
?????>master_user='myuser',?????master端创建的用于主从同步的账户和密码
?????>master_password='abc123',
?????>master_log_file='mysql-bin.000006',
//master端记录的file值
?????>master_log_pos=106;
// master端记录的position值
???mysql>start
slave;
???mysql>show
slave status \G
???mysql
>show processlist;//显示从服务器上的进程
三slave2从服务器上设置:
1、编辑my.cnf文件(vi /etc/my.cnf)
???server-id=3?
???replicate-do-db=yaxin
2、重启mysql数据库
3、同步
???mysql>stop
slave;
???mysql>change
master to
?????>master_host='10.207.10.154',
?????>master_user='myuser',?????master端创建的用于主从同步的账户和密码
?????>master_password='abc123',
?????>master_log_file='mysql-bin.000006',
//master端记录的file值
?????>master_log_pos=106;
// master端记录的position值
???mysql>start
slave;
???mysql>show
slave status \G
???mysql
>show processlist;//显示从服务器上的进程
四、测试
注意:主从数据库初始信息要相同,包括表结构、表数据、编码等,如果不相同,则将master主服务器中的信息先备份,然后再导入到从服务器。