配置MySQL复制

fyh 2022年05月16日 55次浏览

基于日志点的复制

  1. 在主DB服务器上建立复制账号
create user 'repl' @'IP段' identified by 'password';
grant replication slave on *.* to 'repl' @'IP段';
  1. 配置主数据库服务器
    log_bin = mysql-bin
    修改后要重启MySQL服务器(账号要有写入权限)
    server_id = 100(可以用set参数进行配置)
  2. 配置从服务器服务器
    log_bin = mysql-bin
    server_id = 101
    relay_log = mysql-relay-bin
    log_slave_update = on[可选](如果以后需要将该服务器作为主服务器需要选上)
    read_only = on[可选]
  3. 初始化从服务器数据
mysqldump --master-data=2 -single-transaction(innodb表保证事务一致性需要加上该参数 --lock-all-tables(混合使用innodb和myisam表需要加上)
xtrabackup --slave-info(MySQL热备工具)

mysqldump --single-transaction --master-data --triggers --routines --all-databases -u root -p >> all.sql;
  1. 启动复制链路
change master to MASTER_HOST='master_host_ip',
MASTER_USER='repl',
MASTER_PASSWORD='password'.
MASTER_LOG_FILE='mysql_log_file_name',
MASTER_LOG_POS='pos';(去all.sql前几行看)
start slave;
show slave status\G;
show processlist;

优点:

  • 是MySQL最早支持的复制技术,Bug比较少
  • 对sql查询没有任何限制
  • 故障处理比较容易
    缺点:
  • 故障转移时重新获取新主库的日志点信息比较困难

基于GTID复制