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

mastershow 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');

登录slave1slave2查看数据库是否已经同步

如果是实际的生产环境最好先进行锁表,在进行操作,以免造成数据丢失。