传统主从配置

news2024/11/24 2:33:08

传统主从配置

在这里插入图片描述

MySQL通过二进制文件写入和恢复数据

在这里插入图片描述

主服务器一定要打开二进制日志
必须两台服务器(或者是多个实例)
从服务器需要一次数据初始化
如果主从服务器都是新搭建的话,可以不做初始化
如果主服务器已经运行了很长时间了,可以通过备份将主库数据恢复到从库。
主库必须要有对从库复制请求的用户。
从库需要有relay-log设置,存放从主库传送过来的二进制日志 show variables like '%relay%';
在第一次的时候,从库需要change master to 去连接主库。
change master信息需要存放到 master.info 中 show variables like '%master_info%';
从库怎么知道,主库发生了新的变化?通过relay-log.info记录的已经应用过的relay-log信息。
在复制过程中涉及到的线程
从库会开启一个IO thread(线程),负责连接主库,请求binlog,接收binlog并写入relaylog。
从库会开启一个SQL thread(线程),负责执行relay-log中的事件。
主库会开启一个dump thrad(线程),负责响应从IO thread的请求。

主从部署环境

  • Master:192.168.1.128

  • Slave:192.168.1.132

  • Port:3306

#设置主机名查看ip地址
[root@node1 ~]# ip a | grep inet | grep ens33
    inet 192.168.1.128/24 brd 192.168.1.255 scope global noprefixroute ens33
[root@node5 ~]# ip a | grep inet | grep ens33
    inet 192.168.1.132/24 brd 192.168.1.255 scope global noprefixroute ens33



安装(主从执行)

  yum install wget -y

 wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

 yum install mysql80-community-release-el7-7.noarch.rpm -y

  yum -y install yum-utils

  yum-config-manager --disable mysql80-community

yum-config-manager --enable mysql57-community

  yum -y install mysql-community-server mysql

 systemctl start mysqld
 systemctl enable mysqld

查看密码登陆后修改密码

grep 'temporary password' /var/log/mysqld.log


mysql -uroot -p

修改密码策略

--设置首次密码查看规则名称 之后如果需要设置你想要的格式密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Rkun18.mysql';

mysql> select version();
+------------+
| version()  |
+------------+
| 5.7.42-log |
+------------+



mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+


--通过设置类似于下方这样的格式去设置其他参数 获取需要的密码格式


--设置至少四位自定义密码

set global validate_password_policy=LOW;
set global validate_password_mixed_case_count=0;
set global validate_password_number_count=0;
set global validate_password_special_char_count=0;
set global validate_password_length=4;


--也可以直接关闭密码策略 这里不赘述
--修改一个自定义密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin';
--授权远程主机登录(可选)
GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%'; 


FLUSH  PRIVILEGES;


--

编辑配置文件 /etc/my.cnf

  • Master

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    default-storage-engine=INNODB
    symbolic-links=0
    server-id=6
    log-bin=/var/log/mysql/mysql-bin
    
  • Slave

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    default-storage-engine=INNODB
    symbolic-links=0
    server-id=8
    log-bin=/var/log/mysql/mysql-bin
    relay-log=/var/log/mysql/mysql-relay
    
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql/

创建主从同步账号

  • 在主库创建一个专门用来复制的数据库用户,所有从库都用这个用户来连接主库,确保这个用户只有复制的权限
#查看mysql配置项
mysqld --verbose --help

[root@master ~]# mysql -uroot -p
Enter password:  

CREATE USER 'slave'@'%' IDENTIFIED BY 'admin';




GRANT ALL PRIVILEGES ON *.* TO 'slave'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;

FLUSH PRIVILEGES;


--

获取主库日志信息并生成主库数据镜像

--对主库上锁 停止修改

mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (0.03 sec) 

--获取主库日志信息 当前日志文件为 mysql-bin.000002 备份主库数据

mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000012 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

[root@master ~]# mysqldump -u root -p'admin' --master-data --all-databases > master.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

[root@master ~]# ll | grep master
-rw-r--r--. 1 root root 888384 73 11:29 master.sql

主库数据备份完毕后,释放主库锁,需要注意,在上锁这一段期间,无法对数据库进行写操作,如UPDATA,DELETE,INSERT

mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)

从库还原数据

  • 将主库镜像拷贝到从库中,将数据还原到从库

    [root@master ~]# scp master.sql 192.168.1.132:/root/
    master.sql                                                                                 100%  868KB  13.3MB/s   00:00  
    
--从库恢复数据


[root@slave ~]# pwd
/root
[root@slave ~]# ll | grep master
-rw-r--r-- 1 root root 888384 7月   3 11:56 master.sql 

[root@slave ~]# mysql -padmin

mysql> source master.sql;

从库配置同步

-在从库上建立复制关系,即从库指定主库的日志信息和链接信息

 CHANGE MASTER TO
   -> MASTER_HOST='192.168.1.128',
   -> MASTER_PORT=3306,
   -> MASTER_USER='slave',
   -> MASTER_PASSWORD='admin',
   -> MASTER_LOG_FILE='/var/log/mysql/mysql-bin.000012',
   -> MASTER_LOG_POS=154;

从库启动复制进程

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


mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.128
                  Master_User: slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000012
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-relay.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000012
             Slave_IO_Running: Yes  --保证Running为Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 523
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0 --代表与主库有多少延迟
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 6
                  Master_UUID: 06bc5ae2-1a0c-11ee-ae0a-000c2977e40f
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 



验证主从数据同步

[root@node1 ~]# mysql -padmin


mysql> create database mydb default character set =utf8;
Query OK, 1 row affected (0.00 sec) 

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'slave'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)

mysql>  SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+


  • 查看从库数据库观察数据是否同步

    [root@node5 ~]# mysql -padmin --同步成功
    mysql: [Warning] Using a password on the command line interface can be insecure.
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.7.42-log MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2023, Oracle and/or its affiliates.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mydb               |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    
    
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719564.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从Word Embedding到Bert模型—自然语言处理中的预训练技术发展史

Bert最近很火,应该是最近最火爆的AI进展,网上的评价很高,那么Bert值得这么高的评价吗?我个人判断是值得。那为什么会有这么高的评价呢?是因为它有重大的理论或者模型创新吗?其实并没有,从模型创新角度看一般,创新不算大。但是架不住效果太好了,基本刷新了很多NLP的任务…

web服务端接收多用户并发上传同一文件,保证文件副本只存在一份(附go语言实现)

背景 对于一个文件服务器来说,对于同一文件,应该只保存一份在服务器上。基于这个原则,引发出本篇内容。 本篇仅阐述文件服务器在同一时间接收同一文件的并发问题,这种对于小体量的服务来说并不常见,但是最好还是要留…

存储协议——FC协议讲解

目录 FC基础概念 FC协议结构 FC通信 FC交换网络工作流程:(以封装SCSI协议为例) FC拓扑结构 FC协议的端口类型 FC适配器(FC HBA卡) FC基础概念 FC最开始为一种传输协议,由于其性能较高,逐…

我的小流量“转正”心得 --- 下载下方深度语义重排的实践

目录 一、背景 二、通过数据分析找到的问题 三、迭代流程 迭代一: 迭代二: 迭代三: 迭代成功的原因: 知识扩展 四、hnswlib调优过程 五、附录 5.1 hnsw 超参选择 一、背景 在分发中下载带来的收入占比排列仅次于搜索。…

重磅|2024年浙大MPA提前批面试政策公布:申请三步走

说曹操曹操到!昨天还在说浙大MPA提面吃迟迟未公布的事情,晚些时候就来了!等待许久的MPA考生们可以开始着手筹划自己的提面备考了!提前批面试真题周期较长,但是需要做准备的内容确实也不少,本期专注浙大的杭…

如何区分bin log 、redo log 跟 undo log?

概要 MySQL 日志包含了错误日志、查询日志、慢查询日志、事务日志、二进制日志等,如果存储引擎使用的是 InnoDB ,二进制日志(binlog)和事务日志(包括redo log和undo log) 是肯定绕不过去的,本篇接下来详细为大家介绍这三种日志。 redo log 为…

Android OpenGL ES实现简单绿幕抠图

目录 正文 OES FilterBlendShader Filter最后的效果缺陷 正文 实现绿幕抠图,其实想法很简单。 这里简单粗暴的使用着色器替换。 OES Filter 直接实现在相机预览上的Shader ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #extension GL_OE…

Spring Boot 中的 Sleuth 是什么, 如何使用

Spring Boot 是一个非常流行的 Java Web 开发框架,它提供了许多方便的功能,其中之一就是 Sleuth。Sleuth 是一个分布式跟踪系统,用于跟踪应用程序中的请求和操作。在本文中,我们将探讨 Spring Boot 中的 Sleuth 是什么&#xff0c…

git 新建分支,切换分支,上传到远程分支

git 在使用的过程中,有的时候我们需要更换一个分支才存贮数据,作为版本的一个迭代或者是阶段性成果的一个里程碑。 如何来做操作呢? 在git中,可利用checkout命令转换分支,该命令的作用就是切换分支或恢复工作树文件&a…

Linux串口应用编程——STM32MP157

文章目录 替换设备树文件串口API设置行规程struct termios 结构体行规程函数 串口应用——回环 替换设备树文件 挂载boot分区: mount /dev/mmcblk2 /boot拷贝新的设备树文件到boot分区 cp /mnt/stm32mp157c-100ask-512d-lcd-v1.dtb /bootreboot重启,查…

C++ set和map使用

搜索平衡二叉树的封装 1. 关联容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set介绍3.1.2 set 的使用1. set模板参数列表2. set的构造3. set 的迭代器4. set的容量5. set修改5. set的使用 3.2 multiset3.2.1 multiset的介绍3.2.1 multiset的使用 3.3 map3.3.1 map的介绍3…

Could not load the Qt platform plugin “xcb“

qt.core.plugin.loader: QLibraryPrivate::loadPlugin failed on “/home/ly/Qt/6.5.1/gcc_64/plugins/platforms/libqxcb.so” : “Cannot load library /home/ly/Qt/6.5.1/gcc_64/plugins/platforms/libqxcb.so: (libxcb-cursor.so.0: cannot open shared object file: No su…

VTK8.2手动卸载

利用源代码方式安装的VTK, 进行手动卸载[参考] 1、进入.. /VTK-8.2.0/build目录 make2、记录sudo make install的log log在uninstall.sh文件中 touch uninstall.sh && chmod 775 uninstall.sh && echo #!/bin/bash -v > uninstall.sh && sudo m…

【unity实战】制作俯视角射击游戏多种射击效果(一)

文章目录 本期目标前言欣赏开始1. 角色移动和场景搭建2. 绑定枪械2.1 首先将各种枪械的素材添加给人物作为子物体2.2 给枪械也分别添加两个子物体用作标记枪口和弹仓位置 3. 枪械动画4. 切换枪械5. 发射功能5.1 手枪(1) 枪械随着鼠标旋转(2) 射击时间间隔(3) 创建好子弹、弹壳和…

手把手教你如何做手机PCB电磁兼容性设计

电磁兼容性是指电子设备在各种电磁环境中仍能够协调、有效地进行工作的能力。电磁兼容性设计的目的是使电子设备既能抑制各种外来的干扰,使电子设备在特定的电磁环境中能够正常工作,同时又能减少电子设备本身对其它电子设备的电磁干扰。 1、选择合理的导…

【霹雳吧啦Wz】Transformer中Self-Attention以及Multi-Head Attention详解

文章目录 来源Transformer起源Self-Attention1. 求q、k、v2. 计算 a ^ ( s o f t m a x 那块 ) \hat{a} (softmax那块) a^(softmax那块)3. 乘V,计算结果 Multi-Head Attention位置编码 来源 b站视频 前天啥也不懂的时候点开来一看,各种模型和公式&#…

FreeRTOS 低功耗模式设计 STM32平台

1. STM32F105RBT6 的三种低功耗模式 1.1 sleep睡眠模式、stop停机模式、standby 待机模式 1.2 STM32中文参考手册有介绍STM32 低功耗模式的介绍 2. FreeRTOS 采用的是时间片轮转的抢占式任务调度机制,其低功耗设计思路一般是: ① 当运行空闲任务&#…

启动网站调试提示 HTTP 错误 403.14 – Forbidden Web 服务器被配置为不列出此目录的内容。

启动网站调试提示 HTTP 错误 403.14 – Forbidden Web 服务器被配置为不列出此目录的内容。 解决方案第一种.在网站的配置文件里添加第二种.ISS管理界面修改 解决方案 第一种.在网站的配置文件里添加 <system.webServer><directoryBrowse enabled"true" /&…

【RH850/U2A】:休眠唤醒

休眠唤醒 唤醒差异休眠差异休眠是解决整个系统待机时尽可能的减少功耗,相应的唤醒则是低功耗模式下整个系统可以被已知的条件唤醒系统,进而进入全功能模式。 RH850/U2A的配置和RH850/F1KM大同小异,本文只讲述差异部分,其他部分详见 【Davinci开发】:IO唤醒系统 唤醒差异 …

API验证器,帮助ReSharper开启VS插件新时代!

实质上&#xff0c;ReSharper特征可用于C#&#xff0c;VB.net&#xff0c;XML&#xff0c;Asp.net&#xff0c;XAML&#xff0c;和构建脚本。 使用ReSharper&#xff0c;你可以进行深度代码分析&#xff0c;智能代码协助&#xff0c;实时错误代码高亮显示&#xff0c;解决方案范…