瑞吉外卖优化02-主从复制+Nginx
本笔记源自黑马程序员的视频课程——《瑞吉外卖》,总结了课程笔记、相关知识点以及可能遇到的问题解决方案,并且增加了课程中未实现的功能,供读者参考。笔记全面且条理清晰,希望帮助读者学习和理解这个外卖项目。
本项目全部笔记见:外卖项目笔记合集
1. 读写分离
问题说明
以两台数据库为例:
读写分离,降低单台数据库的访问压力。
1.1 MySQL主从复制
1.1.1 介绍
MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。
MySQL复制过程分成三步:
- master将改变记录到二进制日志(binary log)
- slave将master的binary log拷贝到它的中继日志(relay log)
- slave重做中继日志中的事件,将改变应用到自己的数据库中
1.1.2 配置-前置条件
提前准备好两台服务器,分别安装Mysql并启动服务、用navicat连接上。
登录mysql:mysql -u root -p
navicat连接方法:
- 打开navicat,新建连接(Connection - mySQL),连接名任意,主机或IP地址填虚拟机端的IP地址196.168.xxx.xxx,用户名root,密码xxx。
- 将虚拟机端端口3306开放,
firewall-cmd --zone=public --add-port=3306/tcp --permanent
以及firewall-cmd --reload
。 - 在navicat双击新建的连接,即可连接上。
1.1.3 配置-主库Master
第一步:修改Mysql数据库的配置文件 vim /etc/my.cnf