美文网首页MySQL
MySql / MariaDB 构建主从复制

MySql / MariaDB 构建主从复制

作者: 我_bacd | 来源:发表于2019-02-01 18:45 被阅读40次

    ~~ !!!环境介绍:

    • 主服务器 -> ip:192.168.0.104、系统:centos7、数据库:mariadb
    • 从服务器 -> ip:192.168.0.105、系统:centos7、数据库:mariadb
    • 从服务器 -> ip:192.168.0.106、系统:centos7、数据库:mariadb

    ~~ !!!请保证主服务器防火墙关闭,下面开始构建主从复制

    一、配置主机 192.168.0.104

    1、修改主服务器下 /etc/my.cnf 文件,在 [mysqld] 下添加如下代码,可参考下图:

    // 如果不知道 my.cnf 文件在哪,可使用 find / -name my.cnf 命令查找
    // 这里 server-id 中的 104 是本机ip的尾号,可随意设置数字,但要保证不重复
    server-id = 104
    log-bin = master-bin
    log-bin-index = master-bin.index
    

    2、启动 / 重启 数据库服务,可参考以下命令

    // mariadb 启动数据库 ↓
    service mariadb start
    // mariadb 重启数据库 ↓
    service mariadb restart
    
    // mysql5.0 启动数据库 ↓
    service mysqld start
    // mysql5.0 重启数据库 ↓
    service mysqld restart
    
    // mysql5.5.7 启动数据库 ↓
    service mysql start
    // mysql5.5.7 重启数据库 ↓
    service mysql restart
    

    3、在主服务器数据库中创建一个用户:admin_x,密码:123456

    // 这里的 @localhost 是限制用户只能在 固定的地址 localhost 登入,可根据个人需求修改
    create user admin_x@localhost identified by '123456';
    

    4、在主机中查看创建的用户,结果如下图:

    // 在 数据库:mysql,表:user下查看用户 ↓
    select host, user, password from mysql.user;
    

    5、在主机中依次为从机分配权限,并刷新权限表:

    // 为从机 192.168.0.105分配权限
    grant replication slave on *.* to 'admin_x'@'192.168.0.105' identified by '123456';
    
    // 为从机 192.168.0.106分配权限
    grant replication slave on *.* to 'admin_x'@'192.168.0.106' identified by '123456';
    
    // 刷新权限表
    flush privileges;
    

    6、查看主机二进制日志文件名与位置

    // 查看主机二进制日志文件名与位置
    show master status;
    

    二、配置从机 192.168.0.105

    1、修改 my.cnf 文件,在[mysqld] 下添加以下代码:

    // 这里 server-id 中的 105 是本机ip的尾号,可随意设置数字,但要保证不重复
    server-id = 105
    relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    

    2、启动 / 重启 并 进入数据库,设置连接

    // 告诉从服务器 用哪个账号、用哪个密码、在哪里 读主服务器的日志文件
    CHANGE MASTER TO
        MASTER_HOST = '192.168.0.104',
        MASTER_USER = 'admin_x',
        MASTER_PASSWORD = '123456',
        MASTER_LOG_FILE = 'master-bin.000004',
        MASTER_LOG_POS = 745;
    

    3、启动从服务,并查看状态,确保服务启动

    // 启动从服务器
    start slave
    
    // 查看从机状态,如下图
    show slave status \G;
    

    三、配置从机 192.168.0.106(基本重复第二大步骤)

    1、修改 my.cnf 文件,在[mysqld] 下添加以下代码:

    // 这里 server-id 中的 106 是本机ip的尾号,可随意设置数字,但要保证不重复
    server-id = 106
    relay-log = slave-relay-bin
    relay-log-index = slave-relay-bin.index
    

    2、启动 / 重启 并 进入数据库,设置连接

    // 告诉从服务器 用哪个账号、用哪个密码、在哪里 读主服务器的日志文件
    CHANGE MASTER TO
        MASTER_HOST = '192.168.0.104',
        MASTER_USER = 'admin_x',
        MASTER_PASSWORD = '123456',
        MASTER_LOG_FILE = 'master-bin.000004',
        MASTER_LOG_POS = 745;
    

    3、启动从服务,并查看状态

    // 启动从服务器
    start slave
    
    // 查看从机状态,如下图
    show slave status \G;
    

    四、测试主从复制

    1、在主服务器 192.168.0.104 中创建一个新的数据库,并查看数据库列表

    create database if not exists test_x default charset utf8 collate utf8_general_ci;
    
    // 显示主机数据库列表
    show databases;
    

    2、在从机 192.168.0.105 中查看是否有新数据库

    // 显示从机数据库列表
    show databases;
    

    3、在从机 192.168.0.106 中查看是否有新数据库

    // 显示从机数据库列表
    show databases;
    

    ~~ !!! 配置完成

    相关文章

      网友评论

        本文标题:MySql / MariaDB 构建主从复制

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