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 //添加server-id必须为1到232–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主服务器中的信息先备份, 然后再导入到从服务器。
环境:
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文件
2、重启mysql数据库
3、添加slave服务器访问master服务器的帐号和权限
+------------------+----------+--------------+------------------+
| File
| mysql-bin.000006 |
1 row in set
二slave1从服务器上设置:
1、编辑my.cnf文件(vi /etc/my.cnf)
2、重启mysql数据库
3、同步
三slave2从服务器上设置:
1、编辑my.cnf文件(vi /etc/my.cnf)
2、重启mysql数据库
3、同步
四、测试
注意:主从数据库初始信息要相同,包括表结构、表数据、编码等,如果不相同,则将master主服务器中的信息先备份, 然后再导入到从服务器。