主节点部署

  • 安装数据库

    • Ubuntu
    apt-get install mysql-server -y
    systemctl start mysql
    systemctl enabled mysql
    • CentOS

    参考CentOS 7.4通过rpm包离线安装 Mysql8.0

  • 配置数据库

    • 修改 mysql 配置文件

      vim /etc/mysql/mysql.cnf
      
      [client]
      default-character-set=utf8mb4 [mysql]
      default-character-set=utf8mb4 [mysqld]
      server-id = 1
      log_bin = /var/log/mysql/mysql-bin.log
      character-set-server=utf8mb4
      expire_logs_days=14
    • 创建数据同步用户并授权

      grant replication slave on *.* to repluser@'slave-ip' identified by 'replpass';
    • 重启数据库

      systemctl restart mysql
    • 登录数据库确认

      mysql> show variables like '%character%';
      +--------------------------+----------------------------+
      | Variable_name | Value |
      +--------------------------+----------------------------+
      | character_set_client | utf8mb4 |
      | character_set_connection | utf8mb4 |
      | character_set_database | utf8mb4 |
      | character_set_filesystem | binary |
      | character_set_results | utf8mb4 |
      | character_set_server | utf8mb4 |
      | character_set_system | utf8 |
      | character_sets_dir | /usr/share/mysql/charsets/ |
      +--------------------------+----------------------------+
      mysql> show master status;
      +-----------------+----------+-------------+-----------------+------------------+
      | File | Position |Binlog_Do_DB |Binlog_Ignore_DB |Executed_Gtid_Set |
      +-----------------+----------+-------------+-----------------+------------------+
      | mysql-bin.000001| 154 | | | |
      +-----------------+----------+-------------+-----------------+------------------+

从节点部署

  • 安装数据库

    • Ubuntu
    apt-get install mysql-server -y
    systemctl start mysql
    systemctl enabled mysql
    • CentOS

    参考CentOS 7.4通过rpm包离线安装 Mysql8.0

  • 配置数据库

    • 修改 mysql 配置文件

      vim /etc/mysql/mysql.cnf
      
      [client]
      default-character-set=utf8mb4 [mysql]
      default-character-set=utf8mb4 [mysqld]
      server-id = 2
      character-set-server=utf8mb4
      expire_logs_days=14
    • 重启数据库

      systemctl restart mysql
    • 登录数据库配置主从连接

      mysql> change master to master_host='master-ip',master_port=3306,master_user='repluser',master_password='replpass',master_log_file='mysql-bin.000001',master_log_pos=154;
    • 启动同步,确定状态

      mysql> start slave;
      mysql> show slave status\G; ...
      Slave_IO_Running: Yes
      Slave_SQL_Running: Yes
      ...
  • 创建数据库

    • 在主节点创建数据库及对应用户

      • 创建 region 及 console库

        mysql> create database region;
        mysql> create database console;
        mysql> grant all privileges on *.* to rainbond@"*" identified by 'Rainbond';
    • 在从节点确认数据已经同步

      • 检测数据库是否已经同步

        mysql> show databases;
        +--------------------+
        | Database |
        +--------------------+
        | information_schema |
        | console |
        | mysql |
        | performance_schema |
        | region |
        | sys |
        +--------------------+
      • 检测用户是否已经同步

        mysql> select Host,User from user;
        +-----------+------------------+
        | Host | User |
        +-----------+------------------+
        | % | rainbond |
        | localhost | debian-sys-maint |
        | localhost | mysql.session |
        | localhost | mysql.sys |
        | localhost | root |
        +-----------+------------------+
  • 从节点配置备份计划

    • 安装并配置计划任务

      apt-get install cron
      crontab -e
      0 3 * * * /var/lib/mysql-backup/mysql-backup.sh
    • 备份脚本内容

      $  vim /var/lib/mysql-backup/mysql-backup.sh
      #!/bin/bash
      DATE=`date +%Y%m%d%H%M` #every minute
      DB_USER=root #database username
      DB_PASS="mysqlpass" #database password
      BACKUP=/var/lib/mysql-backup #backup path #backup command /usr/bin/mysqldump -u$DB_USER -p$DB_PASS -h 127.0.0.1 |gzip > ${BACKUP}\/rainbond_${DATE}.sql.gz #just backup the latest 30 days find ${BACKUP} -name "rainbond_*.sql.gz" -type f -mtime +30 -exec rm {} \; > /dev/null 2>&1
    • 赋予执行权限

     chmod +x /var/lib/mysql-backup/mysql-backup.sh
    ```

Linux安装MYSQL并部署主从复制集群的更多相关文章

  1. 2、二进制安装K8s 之 部署ETCD集群

    二进制安装K8s 之 部署ETCD集群 一.下载安装cfssl,用于k8s证书签名 二进制包地址:https://pkg.cfssl.org/ 所需软件包: cfssl 1.6.0 cfssljson ...

  2. Linux安装ElasticSearch与MongoDB分布式集群环境下数据同步

    ElasticSearch有一个叫做river的插件式模块,可以将外部数据源中的数据导入elasticsearch并在上面建立索引.River在集群上是单例模式的,它被自动分配到一个节点上,当这个节点 ...

  3. 4. 利用MySQL Shell安装部署MGR集群 | 深入浅出MGR

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装准备 2. 利用MySQL Shell构建MGR集群 3. MySQL Shell接管现存的MGR集群 4 ...

  4. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  5. Linux上安装mysql,实现主从复制

    MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的 ...

  6. 阿里云ECS服务器部署HADOOP集群(四):Hive本地模式的安装

    本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 本地模式需要采用MySQL数据库存储数据. 1 环境介绍 一台阿里云ECS服务器:master ...

  7. centos7.8 安装部署 k8s 集群

    centos7.8 安装部署 k8s 集群 目录 centos7.8 安装部署 k8s 集群 环境说明 Docker 安装 k8s 安装准备工作 Master 节点安装 k8s 版本查看 安装 kub ...

  8. Centos8 部署 ElasticSearch 集群并搭建 ELK,基于Logstash同步MySQL数据到ElasticSearch

    Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装containerd.io # centos8默认使用podm ...

  9. MySQL MHA 高可用集群部署及故障切换

    MySQL MHA 高可用集群部署及故障切换 1.概念 2.搭建MySQL + MHA 1.概念: a)MHA概念 : MHA(MasterHigh Availability)是一套优秀的MySQL高 ...

随机推荐

  1. JMeter上传文件,并修改源码参数化Content-Disposition 的 filename

    一.JMeter上传文件 1.使用F12或抓包工具抓包对应接口 如下图为一个上传图片接口,抓包显示内容如下: 2.将抓包到的信息头内容填写到jmeter的HTTP信息头管理器 3.填写参数 由抓包的接 ...

  2. Unity 打包Shader优化

    我们一直以来的项目Shader基本都会打包到一个package里面,游戏启动时会进行预加载这个Package,且预加载其中一些常用的Shader,最近新发现一个坑点,那就是shader依赖了特效的一些 ...

  3. Python 设计模式——单例模式

    单例模式即确保类有且只有一个特定类型的对象,并提供全局访问点.因此通常用于日志记录.数据库操作.打印机后台处理程序等.这些程序在运行过程中只生成一个实例,避免对同一资源产生相互冲突的请求. 特点: 确 ...

  4. Windows 上安装 PostgreSQL

    PostgreSQL官网–>Download–>Windows 64位,如图所示: (1)官网: https://www.postgresql.org/ (2)Download: http ...

  5. DataTable添加checkbox实现表格数据全选,单选(点选)

    Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax ...

  6. python序列(五)切片操作

    功能:截取列表中的任何部分. 切片适用于列表.元组.字符串.range对象等类型.. 格式:[::]切片使用两个冒号分隔的3个数字来完成. 第一个数字表示切片开始位置(默认为0). 第二个数字表示切片 ...

  7. sql去除重复的几种方法

    所以用这样一句SQL就可以去掉重复项了: select * from msg group by terminal_id; SQL中distinct的用法(四种示例分析) 示例1 select dist ...

  8. YourBatman 2020年感悟关键词:科比、裁员、管理层、活着

    目录 本文提纲 ✍前言 版本约定 ✍正文 科比 裁员 如何避免被裁? 1.不要迷恋管理,一味追求"当官" 2.别以为裁员只裁一线,不裁管理层 3.即使步入管理,建议不要脱离技术 4 ...

  9. IdentityServer4 之Client Credentials走起来

    前言 API裸奔是绝对不允许滴,之前专门针对这块分享了jwt的解决方案(WebApi接口裸奔有风险):那如果是微服务,又怎么解决呢?每一个服务都加认证授权也可以解决问题,只是显得认证授权这块冗余,重复 ...

  10. 《Go 语言并发之道》读后感 - 第一章

    <Go 语言并发之道>读后感 - 第一章 前言 人生路漫漫,总有一本书帮助你在某条道路上打通任督二脉,<Go 语言并发之道>就是我作为一个 Gopher 道路上的一本打通任督二 ...