zoukankan      html  css  js  c++  java
  • MariaDB实现主从配置及读写分离(一)

    一、主从复制方案

    1.  在两台CentOS7虚拟机上分别部署MariaDB, 主数据库服务器IP为192.168.17.235, 从服务器IP为192.168.17.238. 从服务器通过调取主服务器上binlog日志, 在本地重建库、表, 实现与主服务器的AB复制.

    二、步骤

    1. 对两台虚拟机上现有的MariaDB 数据库初始化.

      为了在启用binlog日志及数据库同步之前保持主、从库的一致性, 最好对主、从服务器初始化(备份主服务器上现有的库, 手工导入到从服务器上). 当现有库、表引擎都是MyISAM时, 执行离线备份、恢复, 能极大的提高效率.   其它情况可以通过musqldump等工具来实现库的导出、导入. 

    (1)在主服务器192.168.17.235 上如下操作:

    mysql -u root -p     //登入MariaDB
    MariaDB>reset master;    //重置binlog日志 MariaDB>quit; mysqldump -u root -p --all-databases > /root/mysql.sql    //备份主服务器库
    scp /root/mysql.sql root@192.168.17.238:/root/    //将备份文件拷贝到从服务器

    (2)在从服务器192.168.17.238上如下操作:

    mysql -u root -p < /root/mysql.sql    //将备份数据库导入从服务器MariaDB

    2. 配置主服务器

    vim /etc/my.cnf
    [mysql]
    log_bin=c235-bin    //启用binlog日志, 并指定文件名前缀
    server_id=68      //指定服务器ID号

    systemctl restart mariadb  

    MariaDB>grant replication slave on *.* to 'replicater'@'192.168.17.%' identified by '123';    //新建备份用户,授予复制权限“replication slave", 允许从slave服务器访问
    MariaDB>show master status;    //查看主服务器状态, 记录当前日志文件名和偏移位置

     3. 配置从服务器

    vim /etc/my/cnf    
    [mysql]
    log_bin=c238-bin    //启用binlog日志, 并指定文件名前缀
    server_id=69       //指定服务器ID号, 不能与master的ID相同
    slave-net-timeout=60    //指定当主、从服务器网络中断时,重试超时时间
    
    systemctl restart mariadb    //重启MariaDB

    MariaDB>change master to master_host='192.168.17.235',      //通过change master语句指定master的IP、同步用户名和密码、起始日志文件、偏移位置
                master_user='replicater',
                master_password='123',
                master_log_file='user.000004',
                master_log_pos=401
    
    MariaDB>start slave;      //启动slave
    MariaDB>show slave statusG;    //查看slave服务器状态

    4. 设置从服务器为只读

      从服务器作为主服务器的备份, 避免写入冲突, 在采用主、从复制结构时, 为保持主、从数据库的一致性, 用户不能在从服务器上执行数据库写入操作. 

      可以通过my.cnf将从服务器配置为只读模式. 在只读模式下, 只有super权限的用户和slave同步线程才能写入.

    vim /etc/my.cnf
    [mysql]
    ...
    read-only=1    //设置从服务器为只读模式
    ...
    
    systemctl restart mariadb
     

  • 相关阅读:
    面向对象之多态,property
    描述符
    day23 面向对象之继承
    day22面向对象
    os模块
    logging日志模块,四种方式
    Linux 如何测试 IO 性能(磁盘读写速度)
    Vi命令:如何删除全部内容
    cdnbest如何查看站点操作日志(同步日志)
    Linux查找含有某字符串的所有文件
  • 原文地址:https://www.cnblogs.com/qiyunshe-NSD1805/p/9918305.html
Copyright © 2011-2022 走看看