既然上一篇提到了(MySQL 单表上亿,怎么优化分页查询?),那我们就接着 MySQL 继续往下聊。


顺带补充一句,刷完的题目,我都会更正、整理到博客(个人订阅号不支持下文中的博客地址跳转)与小程序:

https://www.javanav.com

Java面试题小程序



为了验证面试者是否使用过某些技术,面试官最喜欢问的一句就是,你们项目中是怎么配的?


而在实际开发中,大部分精力都集中在如何实现业务功能,如何修复 BUG,如何解决线上的疑难杂症。配置的问题,只要环境统一、软件版本统一、配置文件统一,配一遍踩过所有会遇到的坑,记个文档,后面按照这个文档来就行了,或者制作发布包、镜像等。数据库的配置一般都涉及不到开发人员。


你平时没留意,但你不会不代表别人不会,就好比高考你不会的题目总有很多人能做出来。我觉得这种题目,有空自己来一遍,记个笔记,往后都门清了。


MySQL 最常用的集群部署方式是主从架构,可以 1 主多从,主库写,从库读,用这种方式来做读写分离。也可以主主架构,两边都可以读写,但需要业务代码控制数据冲突问题。MGRMySQL Group Replication),是分布式架构,支持多点写入,但性能不如上述两者,且对网络要求较高。


所以常用的读写分离基于主从架构实现的较多


那么主从架构的 MySQL 如何配置呢?


为了解答这个问题,我下载了 64 位 windows MySQL 最新版的 server,8.0.21,进行了安装。


step1、安装流程:

  • 官网下载安装包

  • 解压

  • 创建安装初始化配置文件,my.ini,放在安装包与 bin 目录平级

  • 管理员 CMD 执行 mysqld --initialize --console

  • 解决报错,下载 vcruntime140_1.dll 文件放到 System32 目录

  • 继续安装,成功之后生成 root 账号的临时密码

  • 安装服务 mysqld --install

  • 启动服务 net start mysql

  • 登陆修改 root 密码


第二台电脑也是如此配置。详细我记录在了博客里:

https://javanav.com/article/e7675c2d2a0d4c03aca25a32b60cbabb.html


这样两台电脑的 MySQL 服务安装就搞定了。



step2、配置主从

  • 主库在 my.ini 中新增库 id 与 log-bin 配置

  • 重启主库

  • 为从库创建同步账号、授权

  • 从库在 my.ini 中新增库 id、log-bin、relay-log 配置

  • 重启从库

  • 修改从库由主库同步的配置信息

  • 开启 slave


详细配置见:

https://javanav.com/article/08d7b58e8b4d47b38a3773926a93f36c.html


配置到这里,向主库新建表,增删改数据,都会自动同步到从库。但是回答到这里,只说了配置的一半,就是 MySQL 的主从配置,只得了 50 分


面试官这时候还会追问,项目中是如何配置读写分离的呢?


项目中一般不会自己去控制增删改的 SQL 获取主库的连接进行操作,查询的 SQL 获取从库的连接进行操作。都是通过中间件更优雅地实现读写分离,如何拿到剩下的 50 分,下篇文章继续折腾。


更多相关文章

  1. 某互联网公司广告平台技术架构
  2. java小白到架构师学习路线【3.0版】
  3. 5分钟学会mysql的逻辑架构原理
  4. 福利时刻 | 盖楼送《高可用可伸缩微服务架构》签名版
  5. java小白到架构师学习路线【2.0版】
  6. SOA 对比微服务架构
  7. 微服务架构概述

随机推荐

  1. Android 实现APP开屏广告
  2. android代码混淆 GSON完满解决
  3. 分析谷歌收购摩托罗拉无线对移动产业带来
  4. 使用webview调起QQ临时会话
  5. Android学习之DexClassLoader类装载器使
  6. Android M InCallUI动画简析
  7. 16位科技大佬点评Android和iPhone平台优
  8. Android开发笔记——改变字体颜色的三种
  9. Android网络编程-----从服务器端获取xml
  10. Android安全机制(2) Android Permission权