zoukankan      html  css  js  c++  java
  • 部署MySQL-主从异步复制

    实验环境  三台虚拟机 一主两从

    主:     192.168.200.111

    从1:  192.168.200.112

    从2:  192.168.200.113

    [root@localhost ~]# iptables -F
    [root@localhost ~]# systemctl stop firewalld
    [root@localhost ~]# setenforce 0

    建立三台服务器时间同步环境,在主服务器上安装配置NTP时间同步服务器

    [root@localhost ~]# yum -y install ntp

    [root@localhost ~]# vim /etc/ntp.conf

    末行添加

    server 127.127.1.0

    fudge 127.127.1.0 startum 8

    [root@localhost ~]# systemctl restart ntpd

    在两台从服务器上同步时间

    [root@localhost ~]# yum -y install ntpdate

    [root@localhost ~]# ntpdate 192.168.200.111
    15 Oct 12:02:12 ntpdate[10406]: adjust time server 192.168.200.111 offset 0.008413 sec

    slave2服务器与slave1服务器相同

    在所有的服务器上操作安装mariadb和mariadb-server

    [root@localhost ~]# yum -y install mariadb mariadb-server

    配置MySQL Master主服务器

    [root@localhost mysql]# vim /etc/my.cnf

    [mysqld]

    server-id=1                      //三台不要相同
    log-bin=mysql-bin
    log-slave-updates=true   //手动添加,开启从日志

    [root@localhost ~]# systemctl restart mariadb

    给从服务器授权

    [root@localhost ~]# mysql -uroot -p123456

    MariaDB [(none)]> grant replication slave on *.* to 'root'@'192.168.200.%' identified by '123456';
    Query OK, 0 rows affected (0.00 sec)

    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    MariaDB [(none)]> show master status;
    +------------------+----------+--------------+------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000010 | 474 |                 |                        |                     //数据后面要用到
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)

    备份之前主服务器有数据需要先传给从服务器,没有就忽略。

    主:mysqldump -uroot -all-databases > /root/alldbacup.sql

    scp传给从服务器

    从:mysql -uroot -p <  /root/alldbacup.sql

    配置从服务器

    [root@localhost ~]# vim /etc/my.cnf

    [mysqld]

    server-id=2                                               //id号不能相同
    relay-log=relay-log-bin                              //开启中继日志
    relay-log-index=slave-relay-bin.index 

    [root@localhost ~]# systemctl restart mariadb

    [root@localhost ~]# mysql -uroot -p123456

    MariaDB [(none)]> stop slave;                       //把自己从的角色功能先停掉
    Query OK, 0 rows affected, 1 warning (0.01 sec)

    MariaDB [(none)]> change master to -> master_host='192.168.200.111',-> master_user='root',-> master_password='123456',-> master_log_file='mysql-bin.000010',-> master_log_pos=474;

    Query OK, 0 rows affected (0.01 sec)

    MariaDB [(none)]> start slave;
    Query OK, 0 rows affected (0.01 sec)

    参数说明:

    CHANGE MASTER TO

    MASTER_HOST='master_host_name',                    //主服务器的IP地址

    MASTER_USER='replication_user_name',              //主服务器授权的用户

    MASTER_PASSWORD='replication_password',      //主服务器授权的密码

    MASTER_LOG_FILE='recorded_log_file_name',    //主服务器二进制日志的文件名

    MASTER_LOG_POS=recorded_log_position;          //日志文件的开始位置

    MariaDB [(none)]> show slave status G;
    *************************** 1. row ***************************
    Slave_IO_State: Waiting for master to send event
    Master_Host: 192.168.200.111
    Master_User: root
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: mysql-bin.000010
    Read_Master_Log_Pos: 474
    Relay_Log_File: relay-log-bin.000002
    Relay_Log_Pos: 529
    Relay_Master_Log_File: mysql-bin.000010
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    ........................................

    通过查看slave状态,确保Slave_IO_Running: Yes      Slave_SQL_Running: Yes

    slave2配置相同

    测试:

    在主服务器创建数据库,在从服务器查看是否同步

    主:

    MariaDB [(none)]> create database db_test;
    Query OK, 1 row affected (0.00 sec)

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema   |
    | db_test        |
    | mysql        |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.00 sec)

    从:

    MariaDB [(none)]> show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema   |
    | db_test        |
    | mysql        |
    | performance_schema |
    | test |
    +--------------------+
    5 rows in set (0.00 sec)

  • 相关阅读:
    详解Go变量类型的内存布局
    saltstack手册(含官方pdf)
    Linux之《荒岛余生》(三)内存篇
    linux之网络
    Linux之IO
    【WPF】提高InkAnalyer手写汉字识别的准确率
    mssql 小技巧
    WCF Data Service
    jQuery基础之选择器
    Window程序的安装与部署
  • 原文地址:https://www.cnblogs.com/L1-5551/p/11688660.html
Copyright © 2011-2022 走看看