主节点部署

  • 安装数据库

    • 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. 从源码角度学习Java动态代理

    前言 最近,看了一下关于RMI(Remote Method Invocation)相关的知识,遇到了一个动态代理的问题,然后就决定探究一下动态代理. 这里先科普一下RMI. RMI 像我们平时写的程序 ...

  2. openstack高可用集群16-ceph介绍和部署

    Ceph Ceph是一个可靠.自动重均衡.自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储.块设备和文件系统服务.块设备存储是Ceph的强项. Ceph的主要优点是分布式 ...

  3. 开源项目葫芦藤:IdentityServer4的实现及其运用

    目录 前言 签名证书(Signing Credential) 客户端存储(Client Store) 资源存储(Resource Store) 持久化授权存储(Persisted Grant Stor ...

  4. Python 微信公众号文章爬取

    一.思路 我们通过网页版的微信公众平台的图文消息中的超链接获取到我们需要的接口 从接口中我们可以得到对应的微信公众号和对应的所有微信公众号文章. 二.接口分析 获取微信公众号的接口: https:// ...

  5. CentOS7的防火墙以及selinux介绍/安装telnet命令/安装netstat与ifconfig命令

    简介:firewall防火墙的使用 防火墙:主要用户信息安全防护,主要有软件防火墙和硬件防火墙.firewalld防火墙是软件防火墙,在centos7 之前默认采用的防火墙是iptables,而在ce ...

  6. Tensorflow2.0-mnist手写数字识别示例

    Tensorflow2.0-mnist手写数字识别示例   读书不觉春已深,一寸光阴一寸金. 简介:通过CNN 卷积神经网络训练后识别出手写图片,测试图片mnist数据集中的0.1.2.4.     ...

  7. Node.js躬行记(5)——定时任务的调试

    最近做一个活动,需要用到定时任务,于是使用了 node-schedule 库. 用法很简单,就是可配置开始.结束时间,以及重复执行的时间点,如下所示,从2020-12-23T09:00:00Z开始,每 ...

  8. js实现页面消息滚动效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. jQuery EasyUI学习二

    1.   课程介绍 1.  Datagrid组件(掌握) 2.  Dialog.form组件(掌握) 3. Layout.Tabs;(掌握) Datagrid组件 2.1.  部署运行pss启动无错 ...

  10. 新建表后,在sqlserver manager中使用显示引用对象无效

    编辑>intelliSense(I)>刷新本地缓存.