mysql主从复制
mysql主从
mysql主从配置
以mysql1为原始机子,克隆mysql2,3,4 以改IP,修改主机名称 使用xshell连接
mysql 双主双从配置
配置mysql1和3主从
mysql1操作:
修改配置文件: vim /etc/my.cnf
添加以下内容:
log_bin=binlogserver-id=41 (保证在当前mysql集群中唯一)
重启mysql服务:
service mysqld restart;
连接mysql:
mysql -uroot -ptiger
显示主机状态:
show master status;
可以使用mysqlbinlog命令查看binlog日志内容
mysql3操作:
修改配置文件:
vim /etc/my.cnf
添加以下内容:
server-id=43 (唯一)
重启mysql服务:
service mysqld restart;
连接mysql:
mysql -uroot -p
创建/修改主从命令(slave配置):
change master tomaster_host='192.168.170.41',master_user='root',master_password='123456',master_log_file='binlog.000004',master_log_pos=307;
其中换成自己的
启动从服务:
start slave;
显示从服务状态:
show slave status \G;
测试主从:
在mysql1创建库:
-- 创建数据库
create database db_test;
-- 选择数据库
use db_test;
-- 创建表
create table tb_user(
id int primary key auto_increment,
name varchar(20) comment '名称'
);
发现mysql3都存在了!
配置mysql2和4主从
和配置13一样。
配置 mysql1和2互为主从:
在mysql1和2同时执行:
show master status;
修改主从关系:
mysql1操作:
change master tomaster_host='192.168.170.42',master_user='root',master_password='tiger',master_log_file='logbin.000001',master_log_pos=842;
mysql2操作:
change master tomaster_host='192.168.170.41',master_user='root',master_password='tiger',master_log_file='binlog.000002',master_log_pos=1059;
其中数据换成自己的
在mysql1和2同时执行:
start slave;
在allsession查看4台mysql主从状态:
show slave status \G;
测试发现mysql1写数据时,mysql2,3同步 4不同步
mysql2写数据时,mysql1,4同步 3不同步
mysql1和2加入配置:
vim /etc/my.cnf
加入:
log-slave-updates
重启服务:
service mysqld restart
再次测试:
在mhysql1和2操作,所有数据库同步!