zoukankan      html  css  js  c++  java
  • CentOS7配置Mysql热备份

    Mysql 的安装:

    本人习惯讲安装包放在 /usr/local/src/

    ①.[root@localhost ~]#cd /usr/local/src/

    ②.[root@localhostsrc]#wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

    ③.[root@localhostsrc]#rpm-ivh mysql57-community-release-el7-8.noarch.rpm

    ④.[root@localhost src]#  yum -y install mysql-server

    默认配置文件路径: 
    配置文件:/etc/my.cnf 
    日志文件:/var/log/var/log/mysqld.log 
    服务启动脚本:/usr/lib/systemd/system/mysqld.service 
    socket文件:/var/run/mysqld/mysqld.pid


    查看临时密码随机:注意:安装完mysql服务器登录密码是随机的,需要重置密码。

      [root@localhost ~]# grep "password" /var/log/mysqld.log

    现在就可以用这个密码进行登录了:mysql -uroot -p

    Mysql安装结束!

    开始今天的主菜:一台主服务器-一台备份服务器实现热备份:

    1. 首先保证两台服务器mysql版本一致,同时防火墙都对3306开放

    当前环境:

    A服务器 ip:192.168.200.11   准备作为主服务器master

    B服务器 ip: 192.168.200.20   用于备份的服务器slave

    一.在A服务器上操作
    1.创建专门用于备份的 用户(登录mysql之后执行)

    CREATE USER 'cp_user'@'192.168.10.130' IDENTIFIED WITH mysql_native_password BY 'master2018!';
    GRANT REPLICATION SLAVE ON *.* TO 'cp_user'@'192.168.200.20';
    

      

    (注意:这里的cp_user 和 master2018! 是一会儿备份服务器配置是需要用到的master服务器的用户名和密码,需要记下来)

    2.修改 MySQL配置文件: /etc/my.cnf

    datadir=/var/lib/mysql
    
    socket=/var/lib/mysql/mysql.sock
     
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    
    symbolic-links=0 
    
    log-error=/var/log/mysqld.log
    
    pid-file=/var/run/mysqld/mysqld.pid
    
     
    
    log-bin=mysql-bin
    
    binlog_format=mixed
    
    server-id=1 //服务器唯一性标识符,每台服务器配置必须保存不一样
    
     
    
    read-only=0  
    
    binlog-do-db=hello  //需要备份的那个数据库名叫 “hello”
    
    auto-increment-increment=2  //这里设置用来台服务器来做备份,按个人情况定
    
    auto-increment-offset=1 //表示这台服务器序号,从1开始,不超auto-increment-increment
    
    //配置完该数据库中插入第一个数据id=1,第二条数据id=3而不是2,避免的数据库集群中id冲突
    

      


     重新启动mysql服务!

    3.执行 mysql>show master statusG(看到下面信息)

    mysql-bin.000002和154这两个值需要记得后面有用(刚安装完的数据库可能是mysql-bin.000001

    查看master配置:

    注意:到这master已经配置完成了!加油,已经成功一半了

    下面配置备份服务:

    二.B服务器操作:(安装过程都一样这里不重复)

    1.修改MySQL /etc/my.cnf 文件:

    看最后六行配置。

    配置完保存修改,重新启动mysql服务!

    2.登录B服务器的mysql服务器:执行下面命令(配置同步的主服务器)

    CHANGE MASTER TO
    
           MASTER_HOST=‘192.168.200.11’, 
    
           MASTER_USER='cp_user', 
    
           MASTER_PASSWORD='master2018!', 
    
           MASTER_LOG_FILE='mysql-bin.000002', 
    
           MASTER_LOG_POS=154; 
    

      


      

    到这里就算是完成99%了,重启B服务器的MySQL服务:service mysql restart

    查看slave上备份线程的工作情况:

    Slave_IO_Running:Yes

    Slave_SQL_Running:Yes

    两个当中如果有一个不是yes都是有问题的,本人第一次运行时遇到了第一个是no,第二个是yes,经过检测是上一步骤中MASTER_LOG_POS=154 这个值没有和master上面获的的Position的值一致,重新执行B服务器的操作2,参数输入正确就行。

    IP不正确或者防火墙未对3306开发都可能导致错误。 

    My.cnf文件中的常见参数讲解

    server-id 必须保证每个服务器不一样。 这可能和循环同步有关。 防止进入死循环。

    replicate-do-db 可以指定需要复制的数据库。

    replicate-ignore-db 复制时需要排除的数据库, 我使用了,这个。 除开系统的几个数据库之外,所有的数据库都复制。

    relay_log 中继日志的名字。 前面说到了, 复制线程需要先把远程的变化拷贝到这个中继日志中, 在执行。

    log-slave-updates 意思是,中继日志执行之后,这些变化是否需要计入自己的binarylog 当你的B服务器需要作为另外一个服务器的主服务器的时候需要打开。  就是双主互相备份,或者多主循环备份。如果只是一个master和一个备份服务器这个参数可以不要。

  • 相关阅读:
    BZOJ 2212/BZOJ 3702
    BZOJ 4761 Cow Navigation
    BZOJ 3209 花神的数论题
    BZOJ 4760 Hoof, Paper, Scissors
    BZOJ 3620 似乎在梦中见过的样子
    BZOJ 3940 Censoring
    BZOJ 3942 Censoring
    BZOJ 3571 画框
    BZOJ 1937 最小生成树
    BZOJ 1058 报表统计
  • 原文地址:https://www.cnblogs.com/pangguoming/p/9634711.html
Copyright © 2011-2022 走看看