配置Mysql主从复制

要同步的库:test_master_slave

1、Master节点配置

基本配置

  1. vim /etc/my.cnf
  2. # 基本配置
  3. [client]
  4. default-character-set=utf8
  5. [mysql]
  6. default-character-set=utf8
  7. [mysqld]
  8. init_connect='SET collation_connection = utf8_unicode_ci'
  9. init_connect='SET NAMES utf8'
  10. character-set-server=utf8
  11. collation-server=utf8_unicode_ci
  12. skip-character-set-client-handshake
  13. skip-name-resolve

Master节点主从配置

  1. vim /etc/my.cnf
  2. # 添加主从复制部分配置,添加到[mysqld]下面
  3. server_id=1
  4. log-bin=mysql-bin
  5. binlog_format=MIXED
  6. read-only=0
  7. binlog-do-db=test_master_slave
  8. # 如果有多个库需要同步,可以继续添加
  9. #binlog-do-db=test_master_slave2
  10. # 忽略mysql自带的库的同步
  11. replicate-ignore-db=mysql
  12. replicate-ignore-db=sys
  13. replicate-ignore-db=information_schema
  14. replicate-ignore-db=performance_schema

重启数据库

  1. systemctl restart mysqld

2、Slave节点配置

基本配置

  1. vim /etc/my.cnf
  2. # 基本配置
  3. [client]
  4. default-character-set=utf8
  5. [mysql]
  6. default-character-set=utf8
  7. [mysqld]
  8. init_connect='SET collation_connection = utf8_unicode_ci'
  9. init_connect='SET NAMES utf8'
  10. character-set-server=utf8
  11. collation-server=utf8_unicode_ci
  12. skip-character-set-client-handshake
  13. skip-name-resolve

Slave节点主从复制配置

  1. vim /etc/my.cnf
  2. # 添加主从复制部分配置,添加到[mysqld]下面
  3. server_id=2
  4. log-bin=mysql-bin
  5. binlog_format=MIXED
  6. read-only=1
  7. binlog-do-db=test_master_slave
  8. # 如果有多个库需要同步,可以继续添加
  9. #binlog-do-db=test_master_slave2
  10. # 忽略mysql自带的库的同步
  11. replicate-ignore-db=mysql
  12. replicate-ignore-db=sys
  13. replicate-ignore-db=information_schema
  14. replicate-ignore-db=performance_schema

重启数据库

  1. systemctl restart mysqld

3、为master授权用户来同步它的数据

  1. # 使用mysql命令登录到master客户端
  2. mysql -uroot -p
  3. # 添加来同步数据的用户
  4. mysql> grant replication slave on *.* to 'backup'@'%' identified by 'Backup@123';
  5. # 查看master状态
  6. mysql> show master status\G;
  7. *************************** 1. row ***************************
  8. File: mysql-bin.000001
  9. Position: 724
  10. Binlog_Do_DB: test_master_slave
  11. Binlog_Ignore_DB:
  12. Executed_Gtid_Set:
  13. 1 row in set (0.00 sec)

4、配置slave同步

  1. # 使用mysql命令登录到master客户端
  2. mysql -uroot -p
  3. # 设置主库连接
  4. change master to master_host='192.168.14.132',master_user='backup',master_password='Backup@123',master_log_file='mysql-bin.000001',master_log_pos=0,master_port=3306;
  5. # 启动从库同步
  6. start slave;
  7. # 查看从库状态
  8. show slave status\G;