鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

配置主库

  1. 确认配置。
    1. 确认log-bin和relay_log已配置。
      1. 修改配置文件。
      2. 动态修改(登录数据库后通过SQL语句修改)。
    2. 确认server-id已配置。
      1. 修改配置文件。
      2. 动态修改(登录数据库后通过SQL语句修改)。
  2. 创建同步用户。
    1. 登录主库。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
      
    2. 为从库建立一个连接账号(用户名是replicate,密码是123456),为该连接账号授予replication slave权限,刷新权限。
      1
      2
      3
      create user 'replicate'@'%' identified by '123456';
      grant replication slave on *.* to 'replicate'@'%';
      flush privileges;
      

      或者

      1
      2
      3
      create user 'replicate'@'192.168.220.58' identified by '123456';
      grant replication slave on *.* to 'replicate'@'192.168.220.58';
      flush privileges;
      
    3. 查看用户。
      1
      select user,host from mysql.user;
      
    4. 退出主库。
      1
      exit
      
    5. 在从库上用replicate账号访问主库(-h-P后面分别为主库的IP地址和端口,根据实际情况填写)。
      1
      /usr/local/mysql/bin/mysql -h192.168.222.120 -P3306 -ureplicate -p123456 -S /data/mysql/run/mysql.sock
      
  3. 修改主库的配置文件。
    1. 打开/etc/my.cnf文件。
      1
      vim /etc/my.cnf
      
    2. “i”进入编辑模式,在[mysqld]下添加如下内容,参数server-id、log-bin和relay_log的含义参见表1
      [mysqld]
      server-id=1
      log-bin=/data/mysql/data/mysql-bin
      relay_log=/data/mysql/relaylog/relay-bin
      • 在不考虑主从切换的情况下,主库的配置文件中添加log-bin参数,从库的配置文件中添加relay_log参数。
      • 在考虑主从切换的情况下,主库的配置文件中添加log-bin和relay_log参数,从库的配置文件中添加log-bin和relay_log参数。
    3. “Esc”键,输入:wq!,按“Enter”保存并退出编辑。
  4. 重启MySQL服务。
    1. 重启MySQL服务。
      1
      service mysql restart
      

      或者

      1
      2
      /usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock
      /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
      
    2. 查看数据库进程和端口号。
      1
      2
      ps -ef | grep mysql
      netstat -anpt | grep mysql
      
  5. 启动半同步复制。
    1. 登录主库。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
      
    2. 安装半同步复制插件rpl。
      1
      install plugin rpl_semi_sync_master soname 'semisync_master.so';
      

      查看插件rpl。

      1
      show plugins;
      

    3. 启动半同步复制。
      1
      set global rpl_semi_sync_master_enabled=1;
      

    4. 查看半同步复制是否启动成功。
      1
      show variables like '%rpl_semi_sync_master_enabled%';
      

      值为ON说明启动成功。

  6. 配置同步方式。
    1. 登录主库。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
      
    2. 配置同步。

      同步方式有2种方式:传统方式和GTID方式。MySQL版本在5.7及以上时推荐使用GTID方式。

      • 传统方式配置如下,主库与从库配置保持一致:
        1
        2
        3
        4
        5
        set global enforce_gtid_consistency='off';
        set global gtid_mode='on_permissive';
        set global gtid_mode='off_permissive';
        set global gtid_mode='off';
        show variables like '%gtid_mode%';
        
      • GTID方式配置如下,主库与从库配置保持一致:
        1
        2
        3
        4
        5
        set global enforce_gtid_consistency='on';
        set global gtid_mode='off_permissive';
        set global gtid_mode='on_permissive';
        set global gtid_mode='on';
        show variables like '%gtid_mode%';
        

    gtid_mode设置顺序:

    gtid_mode的值只能相邻状态相互修改。例如:从OFF到ON,只能从OFF修改为OFF_PERMISSIVE,然后从OFF_PERMISSIVE修改为ON_PERMISSIVE,再从ON_PERMISSIVE修改为ON;反之亦然,即OFF <->OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON。

  7. 查看主库状态。
    1. 登录主库。
      1
      /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
      
    2. 执行以下命令。
      1
      show master status;
      

      File列和Position列都有值则说明正常。记录File参数值(binlog日志文件)和Position参数值(binlog中最新操作的位置),后面配置从库6时会用到这2个参数值。

    3. 退出主库。
      1
      exit