• Mysql 5.6主从搭建


    mysql设置主从的重要性和必要性不必多说,下面开始详细说明如何搭建主从。

    1、主服务器上创建一个用于复制的账户。

    mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.47.3' IDENTIFILED BY '1234';
    mysql> flush privileges;

    2、主服务器参数修改

    [root@localhost ~]# vi /usr/local/mysql5.6/etc/my.cnf
    修改如下内容
    server-id = 1
    log-bin=mysql-bin

    3、主服务器备份数据,并传输

    mysql>  flush tables with read lock;
    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000036 |     3252 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    [root@localhost ~]# /usr/local/mysql5.6/bin/./mysqldump -uroot -p --all-databases | gzip > bak.sql.gz
    [root@localhost ~]# scp bak.sql.gz root@192.168.47.3:~/
    mysql> unlock tables;

    4、从服务器恢复数据

    [root@localhost bin]# gunzip bak.sql.gz
    [root@localhost bin]# mysql -uroot -p
    mysql> source ~/bak.sql;

    5、修改从服务器配置

    [root@localhost bin]# vi /etc/my.cnf
    添加如下内容
    server-id = 2
    重启服务器
    [root@localhost ~]# service mysql restar

    6、从服务器设置主从配置

    mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.47.5',
    -> MASTER_USER='repl',   
    -> MASTER_PASSWORD='1234',
    -> MASTER_LOG_FILE='mysql-bin.000036',
    -> MASTER_PORT=3307,
    -> MASTER_LOG_POS=3252;
    MASTER_HOST指的是主服务器的IP地址,
    MASTER_USER指的是复制的账户
    MASTER_PASSWORD指的是账户的密码
    MASTER_PORT指的是主服务器端口
    MASTER_LOG_FILE指的是bin-log的文件
    MASTER_LOG_POS指的是日志文件位

    7、从服务器启动slave线程

    mysql> start slave;
    mysql> show processlist;
    +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
    | Id | User        | Host      | db   | Command | Time | State                                                                       | Info             | Rows_sent | Rows_examined |
    +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
    |  1 | system user |           | NULL | Connect |  714 | Slave has read all relay log; waiting for the slave I/O thread to update it | NULL             |         0 |             0 |
    |  2 | system user |           | NULL | Connect |  714 | Waiting for master to send event                                            | NULL             |         0 |             0 |
    |  4 | root        | localhost | NULL | Query   |    0 | init                                                                        | show processlist |         0 |             0 |
    +----+-------------+-----------+------+---------+------+-----------------------------------------------------------------------------+------------------+-----------+---------------+
    3 rows in set (0.08 sec)

    这已经表明主从已经搭建成功。

    8、测试

    主服务器中

    mysql> use warehouse
    Database changed
    mysql> select * from aaa;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 |    2 |
    |    1 |    2 |
    |    1 |    2 |
    |    2 |    3 |
    |    2 |    7 |
    +------+------+
    5 rows in set (0.06 sec)

    从服务器中

    mysql>  use warehouse;
    Database changed
    mysql> select * from aaa;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 |    2 |
    |    1 |    2 |
    |    1 |    2 |
    |    2 |    3 |
    |    2 |    7 |
    +------+------+
    5 rows in set (0.21 sec)

    主服务器中

    mysql> insert into aaa values (5,7),(56,21);
    Query OK, 2 rows affected (0.21 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    
    mysql> select * from aaa;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 |    2 |
    |    1 |    2 |
    |    1 |    2 |
    |    2 |    3 |
    |    2 |    7 |
    |    5 |    7 |
    |   56 |   21 |
    +------+------+
    7 rows in set (0.00 sec)

    从服务器中

    mysql> select * from aaa;
    +------+------+
    | a    | b    |
    +------+------+
    |    1 |    2 |
    |    1 |    2 |
    |    1 |    2 |
    |    2 |    3 |
    |    2 |    7 |
    |    5 |    7 |
    |   56 |   21 |
    +------+------+
    7 rows in set (0.00 sec)

    9、管理主从

    查看从服务器状态

    mysql> show slave status G;
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.47.5
                      Master_User: repl
                      Master_Port: 3307
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000036
              Read_Master_Log_Pos: 3484
                   Relay_Log_File: localhost-relay-bin.000002
                    Relay_Log_Pos: 283
            Relay_Master_Log_File: mysql-bin.000036
                 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: 3484
                  Relay_Log_Space: 460
                  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: 86d34969-fa5d-11e6-b372-000c29c88c3f
                 Master_Info_File: /usr/local/mysql/data/master.info
                        SQL_Delay: 0
              SQL_Remaining_Delay: NULL
          Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
               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
    1 row in set (0.00 sec)

    关心的两个信息是Slave_IO_Running和Slave_SQL_Running是否是YES。Slave_IO_Running是从主服务器读取BINLOG日志,并写入到从服务器的中继日志中;Slave_SQL_Running负责读取和执行中继日志信息。

    注意:如果需要从服务器禁止写入操作,则需要更改参数read-only,使从服务器非root账户只能读数据。






  • 相关阅读:
    二元函数求一定区间上的最大值问题
    LOF异常检测算法实现
    失效项目总代码汇总
    layui弹出层layer.open 中的content问题
    分治算法基本原理和实践
    Android 文件存储浅析
    详解 CmProcess 跨进程通信的实现
    View Animation 运行原理解析
    margin-top失效及解决办法
    vue自定义移动端touch事件之点击、滑动、长按事件
  • 原文地址:https://www.cnblogs.com/binbinyouni/p/6549444.html
Copyright © 2020-2023  润新知