Mysql从库级联这种方式就是在mysql的从库后面再接一个从库,这种方式可以用在主库不能停的情况,还需要多加备份数据库,就可以在从库后在接一个从库。但是第二个从库的系统环境需要和第一个从库的系统环境完全一致。
主库 master : 10.10.10.139
从库salve1 : 10.10.10.133
从库salve2 : 10.10.10.136
在主库master上配置的操作
Vim /etc/my.cnf
log-bin=mysql-bin
server-id = 1
启动mysql服务后查看数据库有几个库 showdatabases
从库salve1上的配置
Vim /et c/my.cnf
server-id = 100 (这里的server-id要求和master的不同即可)
log-slave-updates=1 (这个参数是必须加的,log_slave_updates是将从服务器从主服务器收到的更新记入到从服务器自己的二进制日志文件中。)
从库salve2上的配置
Vim /etc/my.cnf
log-bin=mysql-bin
server-id = 200
之后需要有授权操作在master上授权REPLICATION权限,这个权限是能够让slave1将数据同步到本地的。
GRANTREPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY ‘123456 ’
%处根据实际的工作需要添加IP
在slave1上也需要授权给slave2
GRANTREPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY ‘123456 ’
授权完成后需要配置slave1连到master
在master上show master status 查看binglog文件的名字,节点进行记录
在slave1上
Slave stop
Reset slave
change master to
master_host='10.10.10.139',
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.00000X',
master_log_pos=xxx
slave start
show slavestatus 查看进程状态是否为
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果不是根据报错提示查找问题所在
当slave1 开启slave start之后 show master status 查看binglog文件的名字,节点进行记录
登录slave2 做和salve1同样的操作
Slave stop
Reset slave
change master to
master_host='10.10.10.133',(这里的IP是需要写成slave1的)
master_user='slave',
master_password='123456',
master_log_file='mysql-bin.00000X',
master_log_pos=xxx
slave start
测试主-从-从模式是否成功
创建数据库,在库中建表并添加数据
CREATE DATABASE`test2`
CREATE TABLE`t_table` (
`name` char(20) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`note` varchar(50) DEFAULT NULL
) ENGINE=MyISAMDEFAULT CHARSET=latin1
insert intot_table values('linda',23,'beijing');
insert intot_table values('jerry',33,'shanghai');
登录slave1,slave2查看数据库是否已经同步
如果是实际的生产环境最好先进行锁表,在进行操作,以免造成数据丢失。