文章目录
主从简介
在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患。
想几个问题:
- 用一台数据库存放数据,若此数据库服务器宕机了导致数据丢失怎么办?
- 业务量大了,数据多了,访问的人多了,一台数据库无法保证服务质量了怎么办?
主从作用
- 实时灾备,用于故障切换
- 读写分离,提供查询服务
- 备份,避免影响业务
主从形式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7ZyxBYNO-1659267217651)(./mysql 主从.jpg)]
- 一主一从
- 主主复制
- 一主多从:扩展系统读取的性能,因为读是在从库读取的
- 多主一从:mysql 5.7 开始支持
- 联级复制
主从复制原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8QfQ64RI-1659267217653)(./主从复制原理.png)]
主从复制步骤:
- 主库将所有的写操作记录到 binlog 日志中并生成一个 log dump 线程,将 binlog 日志传给从库的 I/O 线程。
- 从库生成两个线程,一个 I/O 线程,一个 SQL 线程。
- I/O 线程去请求主库的 binlog,并将得到的 binlog 日志写到 relay log(中继日志) 文件中。
- SQL 线程,会读取 relay log 文件中的日志,并解析成具体操作,来实现主从的操作一致,达到最终数据一致的目的。
主从复制配置
主从复制配置步骤:
- 确保从数据库与主数据库里的数据一样
- 在主数据库里创建一个同步账号授权给从数据库使用
- 配置主数据库(修改配置文件)
- 配置从数据库(修改配置文件)
需求:
搭建两台 MySQL 服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作
mysql 安装
分别在主从两台服务器上安装mysql
。
mysql 主从配置
1. 确保从数据库与主数据库里的数据一样
为确保从数据库与主数据库里的数据一样,先全备主数据库并还原到从数据库中
//先查看主库有哪些库
[root@128 ~]# mysql -p123456 -e 'show databases;'
mysql: [Warning] Using a password on the c