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的数据库的数据并写入自己的磁盘