Mysql主从复制
介绍
MySQL主从复制时一个异步的复制过程,底层时基于MySQL数据库自带的二进制日志功能。就是一台或者多台MySQL数据库(slave 从库)从另一台MySQL(master 主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制时MySQL数据库自带功能,无需借助第三方工具。
MySQL复制过程分为三部:
- master将改变记录到二进制日志(binary log)
- slave将master的binary log拷贝到它的中断日志(relay log)
- slave重做中断日志中的事件,将改变应用到自己的数据库中
配置主库Master
一、修改MySQL数据的配置文件/etc/my.cnf
[mysqld]
log-bin=mysql-bin # 启用二进制日志
server-id=100 # 服务器唯一ID
二、重启数据库
systemctl restart mysqld
三、登录MySQL,执行下面SQL
use mysql;
-- 给192.168.94.10的用户root授予REPLICATION SLAVE权限
GRANT REPLICATION SLAVE ON *.* to 'root'@'192.168.94.10' identified by 'wyw666';
四、在MySQL中查看Master的状态
show master status;
查看master的状态之后,不要再执行其他操作
配置从库slave(Ubuntu20.04.6)
一、修改MySQL数据的配置文件/etc/mysql/mysql.conf.d/mysql.cnf
(这里slave的系统使用Ubuntu20.04.6
),主要是自己的安装路径
[mysqld]
server-id=101 #[必须] 服务器唯一ID
二、重启数据库
systemctl restart mysql
三、登录MySQL数据,执行下列SQL:
change master to master_host='192.168.94.128', master_user='root', master_password='wyw666', master_log_file='mysql-bin.000001', master_log_pos=446;
-- 启动slave
start slave;
四、执行SQL,查看从数据库状态
show slave status\G;
成功!!!