mysql主从复制实现的原理就是binlog日志,主节点负责数据库写操作,从节点负责读操作,从节点上不需要使用事务,能够大大提高数据库的性能.
准备三台节点:
192.168.100.193 master
192.168.100.194 slave
192.168.100.195 slave
1.开启binlog日志
vim /etc/my.cnf
配置:
server-id=3
log-bin=/var/lib/mysql/mysql-bin
重启mysql service mysqld restart
2.创建用户并授权
登录MySQL mysql -uroot -p
创建用户:create user 'repl' identified by 'repl';
授权:grant replication slave on *.* to 'repl'@'192.168.100.%' identified by 'repl';
1.修改my.inf配置文件
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
重启mysql service mysqld restart
2.连接Master(下面复制如果不执行出错,建议手动敲)
change master to
master_host='192.168.100.193', // 主节点
master_port=3306, //主节点的端口号
master_user='repl', // 账号
master_password='repl', // 密码
master_log_file='mysql-bin.000003', // show master status 对应的的日志
master_log_pos=154; // show master status 对应的
在主节点上 show master status;
3.查看状态
start slave //启动从节点, stop slave 停止从节点, restart slave 重启从节点,
查看状态
show slave status\G 查看状态
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
代表成功
4.如果克隆的机器 需要修改MYSQL的uuid
vim /var/lib/mysql/auto.cnf
如下修改
1.开启原从节点的binlog日志
2.原从节点创建读取副本的用户
3.在原主节点中让master指向从节点
4.在原主节点执行 start slave 命令
一台主机配置:
vim /etc/my.cnf
auto_increment_increment=2
auto_increment_offset=1
另外一台
vim /etc/my.cnf
auto_increment_increment=2 auto_increment_offset=2