lnmp架构-mysql1

news/2024/7/5 3:07:26

1.MySQL数据库编译

 

 

 

 make完之后是这样的

 

 mysql 初始化

 

 

 

 

 

 

 所有这种默认不在系统环境中的路径里 就这样加

这样就可以直接调用 不用输入路径调用

2.初始化

 

 

 重置密码

 

 

3.mysql主从复制

配置master

 

 

 

配置slave

当master 端中还没有插入数据时

在server2 上配slave

 

 

 

 

 

 

 

 

 

 

 此时master 还没进行任何增删改查动作

在 server2上

测试

 在master 上

 

在server2 上会实现同步

当master 端有数据的时候 怎么同步呢

在server1 上

 在server2 上

 在server3 上

 

 

 

 在server1 master 上

注意:

生产环境中备份时需要锁表,保证备份前后的数据一致

mysql> FLUSH TABLES WITH READ LOCK;

备份后再解锁

mysql> UNLOCK TABLES;

注意:

mysqldump命令备份的数据文件,在还原时先DROP TABLE,需要合并数据时需要删除此语句

 在server3 上

 

 

 实现主从同步

 

 测试

 

 

 只有读的操作 远远多于写的操作 时 才会用一主多从

数据库的外部需要接入高可用负载均衡

这套传统的主从 缺陷: master 端Binlog是直接考给slave的 是异步操作  什么是异步 master 端更新完了之后 直接发给slave  master 不需要知道slave端是否接收到 这样就会导致比如master 端到slave端网络出现问题 意思就是 master可以成功运作  也把日志发给slave 但是由于网络的问题 这个数据没有真正发送给slave端 那么这时候master down掉之后  slave端开始接管的时候 数据就会丢失

在IO这边 有个内置的半同步模式 

在IO这边 有个内置的半  gtid模式

master配置

 slave配置

在server2上

首先停止slave

重新配置+重新启动

 其他节点以此内推

在gtid模式下 当master 有问题的时候 就会挑离它id最近的slave 作为master 供给下面的slave 以此内推

异步方式  得知道接管的那个master 上的日志文件和那个号 这样很复杂   异步的 虽然很快 但是 无法保证无损()

通过设置gtid 大大降低复杂度 通过全局的方式 不用关心它的日志文件和binlog号  gtid 只关心它的下一跳是谁就行 就是 gtid next

半同步模式

首先解决IO

给master 端安装半同步模块

 半同步参数写入配置文件,确保重启后依然生效  master 和salve都要设置

 给slave端安装slave的半同步模块

 

 需要重启IO线程,slave端的半同步才生效

 

 半同步参数写入配置文件,确保重启后依然生效  master 和salve都要设置

 测试

 当停止所有slave节点的IO线程:

 在master 端插入数据

 所有slave节点再次启动IO线程,mysql会自动切回半同步模式

mysql> START SLAVE IO_THREAD;
Query OK, 0 rows affected (0.00 sec)

解决sql 线程的问题

并行复制 提高效率
默认slave节点sql单线程回放,会造成数据同步延时较高
slave节点添加以下参数

在salve端 不需要在master 端  因为sql 线程在 slave端

 

mysql组复制


http://lihuaxi.xjx100.cn/news/1490774.html

相关文章

大考前一个月的做法:保障发挥正常水平、保住送分题目(求稳)、 把时间花在容易突击得分的课程上

文章目录 引言I 战略层面1.1 保障发挥正常水平1.2 保住送分题目(求稳)1.3 把时间花在容易突击得分的课程上II 战术层面2.1 改掉不好的做题习惯2.2 不要恋战2.3 维持日常的生活习惯2.4 理科检查2.5 文科答卷根据要点答题(不要恋战)III 扩展:育儿教育3.1 全家人要一起活动3.…

Linux自定义自启动命令

第一步:创建自定义命令文件 vi /mydata/test/docker_log_clear.sh Shifti输入下面内容 echo "****** clear log done ******"然后 Esc :wq第二步:创建自定义服务文件 vi /usr/lib/systemd/system/mytest.service Shifti输入下面内容 [Uni…

利用逻辑回归判断病人肺部是否发生病变

大家好,我是带我去滑雪! 判断肺部是否发生病变可以及早发现疾病、指导治疗和监测疾病进展,以及预防和促进肺部健康,定期进行肺部评估和检查对于保护肺健康、预防疾病和提高生活质量至关重要。本期将利用相关医学临床数据结合逻辑回…

编程之道:【软件构建技巧】代码评审和团队协作的威力

在现代软件开发中,构建高质量的软件是至关重要的目标。高质量的软件不仅仅意味着它能够如期交付,还意味着它具备稳定性、可维护性和可扩展性。为了实现这一目标,代码评审和团队协作是两个至关重要的实践,它们共同为构建高质量软件…

删除命名空间一直处于Terminating

删除命名空间一直处于Terminating 通常删除命名空间或者其他资源一直处于Terminating状态,是由于资源调度到的节点处于NotReady状态,需要将节点重新加入到集群使其状态变为Ready状态才能解决问题,当node重新加入处于Ready状态后,…

智慧工地云平台源码:工地管理专家

智慧工地是目前建筑行业的热门话题之一,它代表了未来建筑施工的发展趋势。那么,智慧工地的未来,你看好吗? 从技术角度来看,智慧工地无疑是未来发展的趋势。随着人工智能、大数据、云计算等技术的飞速发展,智…

Python面试题100例【26~30题】

二十六、请介绍下Django框架的生命周期 Django是一个高级的Python Web框架,它遵循MVC设计模式(在Django中通常称为MTV,即模型(Model)、模板(Template)和视图(Views)),并且鼓励快速开发和干净、…

数学系硕士研究生的科研过程——PDE约束下含参优化控制问题的深度学习算法

笔者今天上午收到了之前北大课题组老板的通知,得知研究生期间和学长合作的论文终于被siam接收,终于为自己研究生涯画上了一个句号。这里打算分享一下个人的科研过程以及这篇论文的工作,即将读研或者打算读研的同学或许可以从中获得益处。论文…