说明:
MySQL主从复制是一个 异步 的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现 从库 的数据和 主库 的数据保持一致。
MySQL主从复制是 MySQL数据库自带功能,无需借助第三方工具。
二进制日志:
二进制日志(BINLOG)记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制, 就是通过该binlog实现的。默认MySQL是未开启该日志的。
MySQL复制过程分成三步:
- MySQL master 将数据变更写入二进制日志( binary log )
- slave将master的binary log拷贝到它的中继日志( relay log )
- slave重做中继日志中的事件,将数据变更反映它自己的数据
搭建两台mysql数据库
主:192.168.2.221
从:192.168.2.230
一、主库配置
修改数据库的配置文件
vim /etc/my.cnf
# [mysqld]加入下面两行,其中的server-id不一定是100,确保唯一即可
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID
重启数据库
systemctl restart mysqld
创建数据同步的用户并授权
# 测试用,直接使用root账号
查看master同步状态
# mysql数据库命令
show master status;
注意:执行完这一句SQL之后,不要再操作主库,再操作主库之后可能会导致红框中的两个属性值会发生变化。
二、从库配置
开启配置
# 登录MySQL执行命令
# 关闭从库
stop slave;
# 设置同步,注意这里是主库ip,日志名称和位置是我们之前上图中看到的名称和位置
change master to master_host='192.168.2.221',MASTER_PORT=3310,master_user='root',master_password='a@123456',master_log_file='mysql-bin.000002',master_log_pos=1789;
# 开启从库
start slave;
检查状态
# 检查服务器状态
show slave status;
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 文盘Rust —— rust连接oss | 京东云技术团队
作者:京东科技 贾世闻 对象存储是云的基础组件之一,各大云厂商都有相关产品。这里跟大家介绍一下rust与对象存储交到的基本套路和其中的一些技巧。 基本连接 我们以 [S3 sdk]( https://github.com/awslabs/aws-sdk-rus…