MYsql主从复制

Mysql主从复制

主节点:

编辑my.cnf文件:

启动服务

使用命令查看二进制日志功能以及server ID是否开启:

show global variables like "%log%";

show master logs;

show global variables like "%server%";

授权具有复制权限的账号:

 

从节点:

编辑配置文件my.cnf:

使用命令查看中继日志是否开启:

show global variables like "%relay%";

 

启动复制线程

查看slave状态命令:

show slave statusG;

启动复制线程:

start slave;

完成。

 

 

主主模型:

在两台服务器的my.cnf文件配置如下信息:

第一台:

第二台

然后都启动服务

保证二进制日志功能和中继日志功能都开启

两台服务器都启用访问复制权限的账号:

grant replication slave,replication client on *.* to 'repluser'@'192.168.44.%' identified by 'replpasswd'

 

在两台服务器都启用复制线程:

change master to master_host='192.168.44.146',master_user='repluser',master_password='replpasswd',master_log_file='mysql-bin.000009',master_log_pos=500;

要注意的是:master_host=指定对方的IP地址,master_log_file=指定正在使用的二进制文件,用show master status查看,master_log_pos指明对方二进制文件的起始位置

 

然后两台都启动复制线程:

Start slave

 

然后使用命令查看两台的是否复制线程已经启动:

Show slave statusG

两台都为YES,这说明主主配置成功

 

半同步复制:

主要依赖两个插件:semisync_master.so,semisync_slave.so

主节点:

编辑my.cnf:

 

从节点:

都启动服务

 

主节点创建有复制权限的账号:

 

使用命令记录下正在使用的二进制文件以及起始位置:

 

从节点:

 

主节点使用命令安装插件:

install plugin rpl_semi_sync_master soname 'semisync_master.so';

使用命令查看插件是否加载:

Show plugins;

 

从节点使用命令安装插件:

install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

 

装完插件后会出现一些变量,可以使用命令查看:

Show global variables like "%semi%";

Show global status like "%semi%";

 

主节点开启插件服务:

set global rpl_semi_sync_master_enabled=1;

 

从节点也开启插件服务:

set global rpl_semi_sync_slave_enabled=1;

 

此时在两个节点使用命令可以看到对应的变量已经是开启状态:

show global variables like "%semi%";

 

然后在从节点使用命令启动复制线程:

slave start;

 

从节点使用命令可以查看到服务正在运行:

 

然后在主节点使用命令查看:

Show global status like "%semi%";

增加数据或修改数据是上面的数据表发生变化:

 

 

过滤器:

在从节点使用命令值接受来自mysb的数据:

然后启动进程:start slave;

之后从节点就只接受mysb的数据库的数据并写入自己的磁盘

原文地址:https://www.cnblogs.com/hel7512/p/12357369.html