zoukankan      html  css  js  c++  java
  • MySQL数据库的主从同步

    什么要进行数据库的主从同步?

    防止单点故障造成的数据丢失

    主从复制的原理

    MySQL从数据库开启I/O线程,向主服务器发送请求数据同步(获取二进制日志)

    MySQL数据库开启I/O线程回应从数据库

    从数据库得到主的二进制日志,写入中继日志

    从服务器开启SQL线程将日志内容执行,实现数据同步

    环境准备

    CentOS 7.4 操作系统

    MySQL5.7 数据库

    在VMware虚拟机中部署了两台操作系统

    打开MySQL官网:https://www.mysql.com/

     点击DOWNLOADS,进入以下页面

     点击MySQL communityDownloads>>,进入下载页面

     随后点击MySQL community Server,进入下载页面

     默认情况下,会根据系统选择数据库,正如现在所看到的,数据库的最新版本是8.0.18,点击上面的小按钮

    会转到其他版本

    在这里我选择的是MySQL5.7版本

     

     相关的下载文档在:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html

     下载后,MySQL安装的是默认安装的是8.0.18的版本所以,我们要更改一下yum源:mysql-community.repo

    我们把MySQL5.7版本的enable=0改为enable=1,把MySQL8.0版本的enable=1改为enable=0;然后:wq保存

    然后运行 yum install -y mysql-community-server 就可以通过yum源安装了。

    安装后,运行 yum list installed |grep mysql 查看是否安装完成

    systemctl start mysql 运行mysql ,通过systemctl status mysql 查看mysql是否启动

    通过更改mysql的配置文件 (/etc/my.cnf)更改root密码

    在[mysql]下添加skip-grant-tables,这样重启MySQL之后,就可以以root用户无密码进入MySQL了

    进入MySQL后,通过update修改mysql库下的user表中的authentication_string值

    具体如下。

     然后,root用户就可以以新设置的密码登录MySQL了(mysql须重启,并且把my.cnf配置文件恢复)

    这就是第一步安装MySQL的全部过程

    之后,我们要进行主从复制的配置

    配置前,我们应该保证两台服务器的时间设置一致

    通过ntp时间同步服务器设置

    ntpdate 主服务器IP

    主服务器配置 

    [mysqld]
    log-bin=mysql-bin
    log-slave-updates=true
    server-id =11

    给从服务器授权

     从服务器上配置

    1 relay-log=relay-log-bin
    2 relay-log-index=slave-relay-bin.index
    3 server-id=12

     change master to master_host='192.168.94.145',master_user='myslave',master_password='root',master_log_file='mysql-bin.000001',master_log_pos=1026;

     

     这样主从同步就完成了

    安装MySQL的shell简单脚本

     1 #! /bin/bash
     2 #action yum install mysql
     3 read -p 'please the mysqlcase directory' dictory
     4 installed=' https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm'
     5 wget $installed -O $dictory
     6 rpm -Uvh $dicrory/ mysql80-community-release-el7-3.noarch.rpm
     7 sed -i '28s/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
     8 sed -i '21s/enabled=0/enabled=1/' /etc/yum.repos.d/mysql-community.repo
     9 yum install -y mysql-community-server
    10 sed -i '5a skip-grant-tables' /etc/my.cnf
    11 systemctl start mysqld
    12 mysql -u root -
  • 相关阅读:
    Unity C# 反编译
    java finalize方法总结、GC执行finalize的过程
    Android性能调优篇之探索垃圾回收机制
    深入理解JVM(一)——JVM内存模型
    Android性能调优篇之探索JVM内存分配
    HashMap实现原理分析
    [干货]2017已来,最全面试总结——这些Android面试题你一定需要
    2017年最全的30个Android面试题,你将如何回答?
    Android2017进阶知识点、面试题及答案(精选版)
    Android2017最新面试题(3-5年经验个人面试经历)
  • 原文地址:https://www.cnblogs.com/linerbaby/p/11731967.html
Copyright © 2011-2022 走看看