码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • canal


    1 安装配置

    1.1 下载

    https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz

    1.2 mysql配置binlog

    1. # on 时,代表着开启
    2. show VARIABLES like 'log_bin';

    1.3 创建MySQL canal用户

    1. # 创建用户
    2. create user 'canal'@'%' identified by '123';
    3. # 授权
    4. grant show view,select,replication slave, replication client on *.* to 'canal'@'%';
    5. # 刷新权限
    6. flush privileges;

    1.4 canal的核心配置文件

    conf/example/instance.properties

    1. # 配置 slaveId 自定义,不等于 mysql 的 server Id 即可
    2. canal.instance.mysql.slaveId=10
    3. # 数据库地址
    4. canal.instance.master.address=127.0.0.1:3306
    5. # binlog日志名称
    6. canal.instance.master.journal.name=mysql-bin.000001
    7. # binlog偏移量
    8. canal.instance.master.position=913
    9. # 数据库账号密码
    10. canal.instance.dbUsername=canal
    11. canal.instance.dbPassword=123
    12. # table regex
    13. canal.instance.filter.regex=test_xxx\\.user

    mysql日志查询知识补充

    1. # 查看最新一个binlog日志文件名称和Position
    2. show master status

    conf/canal.properties

    1. canal.admin.port = 11110
    2. canal.port = 11111 # client 连接的端口
    3. canal.metrics.pull.port = 11112
    4. # 指定实例,多个实例使用逗号分隔: canal.destinations = example1,example2
    5. canal.destinations = example

    1.5 启动canal

      双击 bin/startup.bat

    1. cd bin
    2. ./startup.bat 

    2 安装配置

    2.1 php案列

    composer require xingwenge/canal_php
    1. use xingwenge\canal_php\CanalClient;
    2. use xingwenge\canal_php\CanalConnectorFactory;
    3. use xingwenge\canal_php\Fmt;
    4. include __DIR__ . '/../../../vendor/autoload.php';
    5. $client = CanalConnectorFactory::createClient(CanalClient::TYPE_SOCKET_CLUE);
    6. echo "建立连接" . PHP_EOL;
    7. $client->connect("127.0.0.1", 11111);
    8. echo "检查" . PHP_EOL;
    9. $client->checkValid();
    10. echo "开始订阅" . PHP_EOL;
    11. $client->subscribe(1001, "example", "test_xshalong\.zeai_tg_user_update_info");
    12. while (true) {
    13. $message = $client->get(100);
    14. if ($entries = $message->getEntries()) {
    15. foreach ($entries as $entry) {
    16. Fmt::println($entry);
    17. }
    18. }
    19. sleep(1);
    20. }

    输出结果

    # 常见问题

    1、 Could not find first log file name in binary log index file

    删除 conf/example/meta.dat的文件,重启canal即可

  • 相关阅读:
    从零开始学Vue3--井字棋
    基于袋獾算法的无人机航迹规划-附代码
    快捷键操作
    PHP:线性单链表存储(附完整源码)
    Android 四大组件 -- BroadcastReceiver(广播)
    【青书学堂】 2023年第二学期 JavaScript 基础编程(高起专) 作业
    「SpringCloud Alibaba」Nacos服务注册和中心配置
    CCF中国开源大会专访|毛晓光:“联合”是开源走向“共赢”的必由之路
    【重新安装Anaconda心得】
    倡导功能性农业农业大健康理念-国稻种芯·张立新:联姻农业
  • 原文地址:https://blog.csdn.net/weixin_40512690/article/details/131756692
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号