当前位置:首页 >娱乐 >SpringBoot使用Canal做MySQL与Redis的数据同步 如果master节点重启了

SpringBoot使用Canal做MySQL与Redis的数据同步 如果master节点重启了

2024-05-16 01:20:51 [百科] 来源:避面尹邢网

SpringBoot使用Canal做MySQL与Redis的使用数据同步

作者:Springboot实战案例锦集 数据库 MySQL mysql-bin.000003 是首次配置的,如果master节点重启了,据同这个文件会递增变为mysql-bin.000004,使用这时我们的据同从节点会自动连上这mysql-bin.000004。

环境:Springboot2.7.8 + MySQL8

1 环境准备

master: 192.168.2.129

SpringBoot使用Canal做MySQL与Redis的数据同步 如果master节点重启了

slave: 192.168.2.130

SpringBoot使用Canal做MySQL与Redis的数据同步 如果master节点重启了

使用Docker安装MySQL,使用这里Docker安装省略,据同网上一堆教程。使用

SpringBoot使用Canal做MySQL与Redis的数据同步 如果master节点重启了

Docker安装完成后,据同安装MySQL。使用

安装MySQL

步骤1:

[root@node150 kafka]# mkdir -p /root/software/mysql/conf /root/software/mysql/data [root@node150 kafka]# chmod -R 777 /root/software/mysql/

步骤2:

进入/root/software/mysql/conf 创建my.cnf 内容如下:

[client] #socket = /usr/mysql/mysqld.sock default-character-set = utf8mb4 [mysqld] #pid-file        = /var/run/mysqld/mysqld.pid #socket          = /var/run/mysqld/mysqld.sock #datadir         = /var/lib/mysql #socket = /usr/mysql/mysqld.sock #pid-file = /usr/mysql/mysqld.pid  datadir = /var/lib/mysql character_set_server = utf8mb4 collation_server = utf8mb4_bin secure-file-priv= NULL # Disabling symbolic-links is 据同recommended to prevent assorted security risks symbolic-links=0 # Custom config should go here !includedir /etc/mysql/conf.d/

步骤3:

docker run --name mysql8 --restart=always --privileged=true -v /root/software/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/software/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123123 -d mysql --lower_case_table_names=1

完成分别在129,130上完成上面操作。使用

2 主从配置

129.168.2.129作为master节点,据同修改my.cnf配置,使用追加下面配置:

binlog_format=MIXED log-bin=mysql-bin server-id=1

129.168.2.130作为slave节点,据同修改my.cnf配置,使用追加下面配置:

log-bin=mysql-bin server-id=2

修改完配置后分别重启mysql

3 配置从节点

3.1 查看master状态

mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 |      156 |              |                  |                   | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)

这里的File,Position列再配置从节点时需要用到。

3.2 配置从节点

CHANGE MASTER TO  MASTER_HOST='192.168.2.129', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='123123', master_log_file='mysql-bin.000003', master_log_pos=156, master_connect_retry=60, GET_MASTER_PUBLIC_KEY=1;

执行上面的命令如果报错如下:

This operation cannot be performed with a running slave io thread; run STOP SLAVE IO_THREAD FOR CHANNEL '' first.

这时需要执行stop slave

注意:上面的mysql-bin.000003 是首次配置的,如果master节点重启了,这个文件会递增变为mysql-bin.000004,这时我们的从节点会自动连上这mysql-bin.000004

查看从节点状态:

mysql> show slave status\G

(责任编辑:娱乐)

    推荐文章
    热点阅读