美文网首页
MySQL 主从配置

MySQL 主从配置

作者: fangfc | 来源:发表于2018-12-28 14:26 被阅读0次

    1. MySQL 主从配置

    • 读写分离是启动多个MySQL服务, 一台服务器 作为主服务器(master), 剩下从服务器(slave)读取主服务的 binlog然后写入数据库.
    • 配置主从服务, 可以分担单台数据库服务器的压力,
    • 实现步骤:
      • master:
        • 开启binlog 写入指定文件, 并且创建一个授权用户 用于授权 slave 来复制日志.
      • slave:
        • 设置Master 的相关配置, slave 会复制master的binlog 并写入自己的 relaylog 中, slave 会启动一个线程读取 relaylog 并写入数据库中.

    2. 主从配置

    1. 准备主从两个MySQL
    • 我这里是单台服务器启动了两个MySQL 服务
    [root@node10009 mysql]# ss -tanp |grep 330
    LISTEN     0      128    127.0.0.1:3307                     *:*                   users:(("mysqld",pid=3646,fd=34))
    LISTEN     0      128         :::3306                    :::*                   users:(("mysqld",pid=965,fd=35))
    [root@node10009 mysql]# 
    
    1. 备份并恢复
    • 备份Master 数据, 恢复到Slave 上
    • 备份
    [root@node10009 mysql]# mysqldump -uroot -p -P3306 test > /opt/back/test.sql
    
    • 恢复到从服务器
    [root@node10009 mysql]# mysql -uroot -p -P3307 < /opt/backup/test.sql
    Enter password: 
    [root@node10009 mysql]# 
    
    1. master 配置文件
    [mysqld]
    server_id                              = 101
    log_bin                                = /opt/app/mysql57/data/binlog/mysql_bin
    
    • 重启
    [root@node10009 mysql]# systemctl restart mysqld
    [root@node10009 mysql]# 
    
    • 查看master 状态
    MySQL [(none)] > show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql_bin.000096 |      154 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    
    • 创建用户用户用于 salve 连接到 Master
    MySQL [(none)] > GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.10.%' IDENTIFIED BY 'backup';
    
    1. slave 配置
    • 编辑配置文件
    [mysqld]
    server_id                              = 102
    relay_log                              = /opt/app/mysql/data/relaylog/relay_log
    
    • 重启
    [root@node10009 mysql]# /opt/app/mysql/bin/mysqladmin -uroot -p -P3306 shutdown
    [root@node10009 mysql]# /opt/app/mysql/bin/mysqld_safe --defaults-file=/opt/app/mysql/etc/my.cnf -umysql &
    
    • 配置slave 连接master
    MySQL [test] > CHANGE MASTER TO MASTER_HOST='192.168.10.9',MASTER_USER='slave',MASTER_PASSWORD='123',MASTER_PORT=3306,MASTER_LOG_FILE='mysql_bin.000096',MASTER_LOG_POS=154;
    Query OK, 0 rows affected, 2 warnings (0.03 sec)
    
    • 查看状态
    MySQL [test] > show slave status\G
    *************************** 1. row ***************************
                   Slave_IO_State: 
                      Master_Host: 192.168.10.9
                      Master_User: slave
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql_bin.000096
              Read_Master_Log_Pos: 154
                   Relay_Log_File: relay_log.000001
                    Relay_Log_Pos: 4
            Relay_Master_Log_File: mysql_bin.000096
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    ....
    
    1. 测试
    2. 查看主从数据
    001.png
    1. master 修改数据并查看
    002.png

    END

    相关文章

      网友评论

          本文标题:MySQL 主从配置

          本文链接:https://www.haomeiwen.com/subject/qvwslqtx.html