Mysql主从复制及注意事项

Mysql主从复制:

原理:

Mysql主数据库用来进行写操作,从数据库用来读操作,保障数据安全,主库出现错误,也可使用丛库,保证业务正常进行

主数据库会将自己更改的数据保存在binlog日志中。

从数据库会定时查看是否有更改,如果有更改就会请求主数据库的binlog。

主数据库会将自己的binlog发送到从数据库的redo log下,从数据库查看自己的redo log,进行重放。

Mysql主从复制的配置(log的配置)

前提条件:

注意:检查firewalld,selinux,及主从时间是否一致。

主库的配置: 

1.编写主库配置文件,在mysqld中添加server-id log_bin(丛库也可以进行配置)
vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server_id=120    (唯一的)
log_bin=ON

2.创建一个同步账号,用来进行主从复制
mysql -uxxx -p'xxx'
grant replication slave on *.* to 'rep'@'xxx.xxx.xx.%' idebtified by '密码';
show grants for 'rep'@'xxx.xxx.xx.%';    查看某个用户是否具有相应权限
flush tables with read lock;

3.配置主从之前需要保证主从数据库状态一致,需要将主库完全备份,并在从上还原
主库命令行:
mysqldump  -uxxxx -p'xxxx'  -A  >  文件

4.将备份文件传到从数据库上
scp    文件    远程ip:路径

5.在从主机上进行恢复
source 文件

6.解锁
unlock tables;

7.查看binglog以及pos位置
show master status;

丛库配置:

1.登录丛库数据库
2.编写主从复制命令

change master to
master_host="主库ip",
master_user="同步用户",  
master_password="",    设置同步用户密码
master_log_file="",    使用show master status命令查看的log名称
master_pos="";    使用show master status命令查看的pos

3.开启丛库复制
start slave;

4.查看是否同步成功
show slave status;

 测试:

在主库上进行操作看是否同步成功。

Mysql主从复制(gtid)

1.主从都需要编写配置文件
vim    /etc/my.cnf
[root@localhost ~]# more /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server_id=120
log_bin=ON
gtid_mode=ON
enforce_gtid_consistency=true
log-slave-updates=1

2.查看主数据库的gtid
show master status;

3.丛库配置
stop slave;
mysql> change master to
    -> master_host="192.168.27.120",
    -> master_user="rep",
    -> master_password="123456",
    -> master_auto_position=1;    主库查看的gtid

start slave;
show slave status \G;

猜你喜欢

转载自blog.csdn.net/weixin_62173637/article/details/132086470
今日推荐