一键搭建mysql集群系列二

mysql 5.7  主从复制

本节是在上一节的基础之上做的操作,上节我们通过脚本实现了一键自动化安装mysql5.7,这次我们要在三台机器上部署msyql5.7,并实现主从复制,实现的宗旨是,能自动化,就尽量自动化,实在不能自动化,那就手工化

用的脚本和文件说明
1.install_mysql.sh 自动化安装mysql脚本
2.ntpdate.sh 时间同步脚本
3.system_init.sh 系统初始化脚本
4.yum.sh yum源配置脚本
5.exec_commond.sh 批量执行命令脚本,附带分发公钥功能 6.fenfa.sh 分发文件
7.secret_key.sh 创建秘钥脚本

执行步骤:

1.创建目录和下载脚本

mkdir -p /server/script
cd /server/script
wget -c http://192.168.42.26/script/yum.sh
wget -c http://192.168.42.26/script/install_mysql.sh
wget -c http://192.168.42.26/script/ntpdate.sh
wget -c http://192.168.42.26/script/create_bash.sh
wget -c http://192.168.42.26/script/system_init.sh
wget -c http://192.168.42.26/script/change_ip.sh
wget -c http://192.168.42.26/script/change_hostname.sh 
wget -c http://192.168.42.26/script/exec_commond.sh  
wget -c http://192.168.42.26/script/fenfa.sh  
wget -c http://192.168.42.26/script/secret_key.sh

我们在一阶段已经阐述,一键安装mysql了,现在依照上次的方法,依次在三台主机上安装mysql(详情请看一阶段)修改主机名和ip地址(三台),实现方法,依次在三台机器下,下载脚本,执行脚本

更改ip和主机名的示例:

bash change_ip.sh  192.168.42.80  mysql-master
bash change_ip.sh  192.168.42.81  mysql-slave1
bash change_ip.sh  192.168.42.82  mysql-slave2

我们这里是用master机器来分发文件,所有需要将被管理的ip集合起来送给ip_hosts.sh.格式如下

#mysql从服务器2台
192.168.42.81
192.168.42.82
  1. 依次初始化系统和安装mysql(参照一阶段)
  2. 在mysql-master主机上编辑hosts文件,等下统一分发hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.42.80  mysql-master
192.168.42.81  mysql-slave1
192.168.42.82  mysql-slave2

5.首先查看master主机有没有magedu账号,没有就创建(这里默认是用magedu账号来统一分发文件) 需要手工创建

id magedu
useradd magedu
echo 123456 | passwd --stdin magedu
yum install rsync -y

6.其他两台从机器也是同样需要创建magedu账号,我们这里使用脚本创建(注意是master机器上执行)

bash exec_commond.sh "useradd magedu" 
bash exec_commond.sh "echo 123456 | passwd --stdin magedu"
bash exec_commond.sh "yum install rsync -y" 
bash exec_commond.sh "echo 'magedu  ALL=(ALL)  NOPASSWD: /bin/rsync'>>/etc/sudoers"

7.创建秘钥分发秘钥

bash secret_key.sh 1 
bash exec_commond.sh "fenfa"

8.利用分发脚本分发hosts文件 注意切换用户magedu,在magedu家目录下进行分发
在master机器上将hosts文件复制到家目录下,执行分发脚本

cp /etc/hosts /home/magedu/
bash /server/script/master/fenfa.sh hosts
bash /server/script/master/fenfa.sh --commond "sudo rsync /home/magedu/hosts /etc/"

9.master机器配置,因为在安装的时候默认已经开启了

#开启二进制日志
bin-log
#指定server-id
server-id=1



#主服务器添加复制账号

mysql -e "grant replication slave on *.* to 'repluser'@'192.168.%.%' identified by 'replpass';"
mysql -e "flush privileges;"
mysql -e "show master status;"

脚本获取(mysql -e "show master status;" | grep "master"| tr "[:space:]" " "| cut -d " " -f 1)
得到的结果是给下面的连接主服务器使用的(需要注意)

10.从服务器配置 (两台都要配置哦)

#关闭二进制日志
#bin-log
#开启中继日志
relay-log = relay-log
relay-log-index  = relay-log.index
sever-id  =  11 #类推
read_only = on #设置成只读

*****************************以上是配置文件中  *********************************************

#查看当前状态
mysql -e "show slave status\G;"
mysql -e "change master to master_host ='192.168.42.80',master_user='repluser',master_password='replpass',master_log_file='mysql-bin.000001',master_log_pos=863;"
mysql -e "show slave status \G;"
mysql -e "start slave;"
[root@mysql-slave2 script]# mysql -e "show slave status \G;"
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.42.80
                  Master_User: repluser
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 863
               Relay_Log_File: relay-log.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_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: 863
              Relay_Log_Space: 521
              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: 1
                  Master_UUID: 8250def6-3aa6-11e7-a782-000c29c8721f
             Master_Info_File: /application/mysql/data/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:

看到以上就是正常的

自此一主多从的配置已经搭建完成了,在主服务器上创建数据库,试试,看看是否同步到两台从服务器上

 

原创文章,作者:srayban,如若转载,请注明出处:http://www.178linux.com/76528

(1)
sraybansrayban
上一篇 2017-05-21
下一篇 2017-05-21

相关推荐

  • CentOS 系统启动流程[转载]

    Linux(CentOS)系统启动过程大致按照如下顺序: POST –> BootSequence(BIOS) –>Bootloader(MBR) –>Kernel(ramdisk)–>rootfs(readonly)–>switchroot–>/sb…

    Linux干货 2017-01-28
  • N26-肉肉-第一周作业

    1.描述计算机的组成及其功能CPU:运算器、控制器、寄存器、缓存存储器:内存,RAM(Random Access Memory)    IO:输入输出设备2.按系列罗列linux的发行版本,并描述不同发行版本之间的联系与区别。发行版有数百种之多,著名的主流发行版有3种Debian,Slackware,RedHatDebian:使…

    Linux干货 2017-01-03
  • N21-北京-兔锅-马哥教育网络班21期+第二周课程练习

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 A.wc命令: 功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出 语法:wc [选项]文件… 参数: -c:统计字节数。 -l:统计行数。 -m:统计字符数。这个标志不能与 -c 标志一起使用。 -w:统计字数。一个字被定义为…

    Linux干货 2016-07-07
  • LVS小记

    19.LVS小记    LVS的类型:        nat:是一种基于IP的DNAT的,通过目标端口与目标地址利用特定的算法选取出响就的主机进行响应,通过RS(Real Server)的地址和端口进行转发            特点:&n…

    2017-05-15
  • LVM逻辑卷管理相关命令的用法

    前提:创建分区,文件或添加硬盘作为LVM的物理卷 pv(物理卷) 命令用法 1、pvcreate创建pv pvcreate -s    指定PE大小,默认为4M 2、pvremove删除pv 3、pvs,pvdisplay显示pv pvs 显示pv摘要 pvdisplay 详细显示pv 4、pvmove:把卷组中一个物…

    Linux干货 2016-08-30
  • LINUX下的RPM应用

    一 前言 在进入RPM的应用前,关于可执行程序的一些基本知识有必要说明一下: 1 ABI:application binary interface,这是应用程序与系统间的协议,大家都知道同一个程序在不同的操作系统平台可能会无法执行,很大程度上就是因为ABI的不同,因此,对于可执行程序,选择对应操作系统平台是第一步 2 API:application prog…

    Linux干货 2017-04-17

评论列表(1条)

  • 娅娃爱
    娅娃爱 2017-11-27 11:00

    没有脚本源码呀,还想看一下呢