zoukankan      html  css  js  c++  java
  • Mariadb 主从配置教程

    一主一从

    准备:两台服务器A、B

    操作:

    1. 安装 mariadb

    两台服务器分别安装好Mariadb

    #安装mariadb
    sudo yum install mariadb-server 
    #开启
    sudo systemctl start mariadb
    #设置开机自动启动
    sudo systemctl enable mariadb
    #查看状态
    sudo systemctl status mariadb
    #设置初始密码
    sudo mysql_secure_installation

    2. 配置主从服务器

    分别修改下my.cnf

    服务器A:主

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log_bin                   = /var/lib/mysql/bin-log
    log_bin_index             = /var/lib/mysql/mysql-bin.index
    expire_logs_days          = 7
    server_id                 = 160 #主从配置
    binlog_format             = ROW
    

    服务器B:从

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log_bin                   = /var/lib/mysql/bin-log
    log_bin_index             = /var/lib/mysql/mysql-bin.index
    expire_logs_days          = 7
    binlog_format             = ROW
    
    # 主从配置
    server-id=162

    修改完成后重启Mariadb服务

    systemctl restart mariadb.service

    在主服务器上建立帐户并授权slave

    gant replication slave on *.* to root@10.10.10.100 identified by '123456';
    flush privileges;
    
    # ps: 10.10.10.100 为从服务器的ip
    # 123456 为从服务器的MySQL密码

    3. 登录主服务器的mysql,查询master的状态

    show master status;

    4. 配置从服务器 Slave

    change master to master_host='10.10.0.002',master_user='root',master_password='123456',master_log_file='bin-log.000002',master_log_pos=2759;
    # ps:10.10.0.002 为主服务器ip
    # bin-log.000002 为上面第三点的 File
    # 2759为上面第三点的 Position
    # 启动从服务器复制功能
    start slave;
    
    # 检查从服务器复制功能状态
    show slave statusG

    5. 为了保证主从数据一致,设置从服务器为只读

    show global variables like 'read%'; // 查看 read_only 状态
    
    set global read_only=1; // 当前环境生效,重启后失效
    # 可以到 /etc/my.cnf 添加一行 read_only=1,然后重启即可

    6. 其他

    主从没有同步

    #查看Master库状态
    show processlist;
    show master status;
    #再到Slave上查看
    show slave statusG  
    发现从库没有执行SQL
    Slave_IO_Running: Yes Slave_SQL_Running: No

    可以忽略错误后,继续同步,这种方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

    stop slave;
    #表示跳过一步错误,后面的数字可变
    set global sql_slave_skip_counter =1;
    start slave;

    之后再用mysql> show slave statusG 查看

    mysql> show slave statusG
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

    现在主从同步状态正常了

    如果是需要同步主库之前的数据,需要先在主库备份好,然后将备份文件发送到从库的服务器,在从库执行后,才会重新同步

    参考链接:

    https://blog.csdn.net/qq_32248673/article/details/59055972

    https://segmentfault.com/a/1190000038663356

    https://blog.starryvoid.com/archives/349.html#1Mariadb

    https://dev.mysql.com/doc/refman/5.7/en/replication-configuration.html

    https://www.cnblogs.com/yinzhengjie/p/11816066.html

     
  • 相关阅读:
    HTML5 新标签
    lAMBDA表达式剖析
    whitespace 属性设置如何处理元素内的空白。
    "~/" asp.net 表示路径的方法
    ASP.NET Session详解
    关于CSS Selector的优先级
    关于汉字转拼音
    ChildActionOnly + ActionName的用法
    html中的caption是什么用
    window.location.href location.href parent.location.href
  • 原文地址:https://www.cnblogs.com/ryanzheng/p/15363238.html
Copyright © 2011-2022 走看看