update操作,对应的binlog如下:
connector.getWithoutAck(batchSize)只能获取到TRANSACTIONBEGIN和TRANSACTIONEND,如图
db的配置如下:
[mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /data/mysql log-error = /var/log/mysql/error.log
#bind-address = 127.0.0.1
symbolic-links=0
#自定义参数 explicit_defaults_for_timestamp lower_case_table_names=1 max_connections = 2000
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES innodb_open_files=65535
max_connect_errors=3500 max_connections=3100 max_user_connections=3000 open_files_limit=65535
#connect_timeout=30 #interactive_timeout=200 #wait_timeout=200
log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复 #skip-name-resolve
innodb_log_file_size=1000M innodb_buffer_pool_size=2g innodb_log_buffer_size=10M innodb_sync_array_size=16 thread_cache_size=256 max_binlog_size=500M binlog_cache_size=1M key_buffer_size=8M
#开启慢查询 slow_query_log值为1或on表示开启,为0或off为关闭 slow_query_log=on #设置慢查询日志放在哪里 slow_query_log_file=mysql-slow #设置sql执行时间多长为慢查询 long_query_time=2 #表示没有使用索引的sql查询也会记录下来 #log-queries-not-using-indexes
#支持emoji character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci
经过验证,当canal部署到mysql同一台机器时可以获取到 ROWDATA事件(canal.instance.master.address = 使用 127.0.0.1:3306或者 机器真实地址:3306都可以)
如果使用阿里云rds,这该怎么办- -
原提问者GitHub用户yjp211
没这回事,不需要部署到同一台mysql上. 检查下过滤条件,会以client提交的为准 debug看看server端的过滤条件,可以试试使用RDS的情况
原回答者GitHub用户agapple
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。