Canal部署linux mysql同步数据
1.canal下載
新建文件夾canal-server
下載canal-server
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.deployer-1.1.4.tar.gz
解壓
tar -zxvf canal.deployer-1.1.4.tar.gz
新建文件夾canal-adapter
下載canal-adapter
wget https://github.com/alibaba/canal/releases/download/canal-1.1.4/canal.adapter-1.1.4.tar.gz
解壓
tar -zxvf canal.adapter-1.1.4.tar.gz
2.配置 canal-server
? 解壓之后進入 conf文件夾中,修改 canal.properties 根據實際需要來修改(如果不使用kafka或MQ
默認tcp即可)
canal.destinations = prod # 指定instance的名字多個使用逗號分隔保存之后在conf目錄創建 prod 文件夾并將 example文件夾中的
instance.properties
? 修改
instance.properties
配置如下:
canal.instance.master.address=127.0.0.1:3306 # 源Mysql地址 canal.instance.dbUsername=canal # 源Mysql賬號 canal.instance.dbPassword=canal # 源Mysql密碼 canal.instance.connectionCharset=UTF-8 # 與源數據庫編碼格式一致 canal.instance.defaultDatabaseName=test_database # 這個需要手動添加進去,監聽數據庫啟動
./bin/startup.sh #啟動應用? 查看日志,是否啟動成功
tail -f logs/prod/prod.log #查看日志是否啟動成功? 啟動成功:
2020-06-09 17:13:04.956 [main] WARN o.s.beans.GenericTypeAwarePropertyDescriptor - Invalid JavaBean property 'connectionCharset' being accessed! Ambiguous write methods found next to actually used [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.nio.charset.Charset)]: [public void com.alibaba.otter.canal.parse.inbound.mysql.AbstractMysqlEventParser.setConnectionCharset(java.lang.String)] 2020-06-09 17:13:04.990 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [canal.properties] 2020-06-09 17:13:04.990 [main] INFO c.a.o.c.i.spring.support.PropertyPlaceholderConfigurer - Loading properties file from class path resource [ant_prod/instance.properties] 2020-06-09 17:13:05.305 [main] INFO c.a.otter.canal.instance.spring.CanalInstanceWithSpring - start CannalInstance for 1-ant_prod 2020-06-09 17:13:05.311 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table filter : ^.*\..*$ 2020-06-09 17:13:05.311 [main] WARN c.a.o.canal.parse.inbound.mysql.dbsync.LogEventConvert - --> init table black filter : 2020-06-09 17:13:05.315 [main] INFO c.a.otter.canal.instance.core.AbstractCanalInstance - start successful.... 2020-06-09 17:13:05.422 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> begin to find start position, it will be long time for reset or first position 2020-06-09 17:13:05.423 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - prepare to find start position just show master status 2020-06-09 17:13:06.483 [destination = ant_prod , address = rm-wz99s5v03gso12521.mysql.rds.aliyuncs.com/192.xxxxxx:3306 , EventParser] WARN c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - ---> find start position successfully, EntryPosition[included=false,journalName=mysql-bin.000234,position=6676924,serverId=184376678,gtid=,timestamp=1591693973000] cost : 1051ms , the next step is binlog dump?3.配置 canal-adapter
修改配置文件 application.yml
server:port: 8081 spring:jackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8default-property-inclusion: non_nullcanal.conf:mode: tcp # kafka rocketMQcanalServerHost: 127.0.0.1:11111 # zookeeperHosts: slave1:2181 # mqServers: 127.0.0.1:9092 #or rocketmq # flatMessage: truebatchSize: 500syncBatchSize: 1000retries: 0timeout:accessKey:secretKey:srcDataSources:defaultDS:url: jdbc:mysql://localhost:3306/zy-test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTCusername: rootpassword: rootcanalAdapters:- instance: example # canal instance Name or mq topic namegroups:- groupId: g1outerAdapters:- name: logger- name: rdbkey: mysql1properties:jdbc.driverClassName: com.mysql.jdbc.Driverjdbc.url: jdbc:mysql://localhost:3306/zy-test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTCjdbc.username: rootjdbc.password: root # - name: rdb # key: oracle1 # properties: # jdbc.driverClassName: oracle.jdbc.OracleDriver # jdbc.url: jdbc:oracle:thin:@localhost:49161:XE # jdbc.username: mytest # jdbc.password: m121212 # - name: rdb # key: postgres1 # properties: # jdbc.driverClassName: org.postgresql.Driver # jdbc.url: jdbc:postgresql://localhost:5432/postgres # jdbc.username: postgres # jdbc.password: 121212 # threads: 1 # commitSize: 3000 # - name: hbase # properties: # hbase.zookeeper.quorum: 127.0.0.1 # hbase.zookeeper.property.clientPort: 2181 # zookeeper.znode.parent: /hbase # - name: es # hosts: 127.0.0.1:9300 # 127.0.0.1:9200 for rest mode # properties: # mode: transport # or rest # # security.auth: test:123456 # only used for rest mode # cluster.name: elasticsearch? 啟動
./bin/startup.sh & # 后臺啟動? 查看日志,是否啟動成功
tail -f logs/adapter/adapter.log # 查看日志是否啟動成功中間可能碰到問題
CommunicationsException
日志:連接mysql時候報錯08001
ERROR com.alibaba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true, errorCode 0, state 08S01 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure注意配置文件
jdbc:mysql://localhost:3306/zy-test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&autoReconnect=true&failOverReadOnly=false&serverTimezone=UTC
本次的環境是由alibaba同步騰訊云
mysql5.7
總結
以上是生活随笔為你收集整理的Canal部署linux mysql同步数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MYSQL分页优化查询
- 下一篇: 朴素贝叶斯分类器python_朴素贝叶斯