canal安装
canal简介:https://www.geek-share.com/detail/2684573374.html
Mysql 安装
1、安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
·如果安装的有mysql
rpm -e mysql OR rpm -e --nodeps mysql
2、wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
3、rpm -ivh mysql-community-release-el7-5.noarch.rpm
4、yum update
5、yum install mysql-server
6、chown mysql:mysql -R /var/lib/mysql --权限设置
7、mysqld --initialize --初始化mysql
8、启动 MySQL:
·systemctl start mysqld
9、查看 MySQL 运行状态:
·systemctl status mysqld
10、给root用户设置密码
·mysqladmin -u root password “new_password”;
11、登陆mysql服务器
·mysql -u root -p
·Enter password:*******
12、修改my.cnf文件 --默认在/etc/my.cnf
·log-bin=mysql-bin #添加这一行就ok
·binlog-format=ROW #选择row模式
·server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
13、重新启动mysql
·systemctl restart mysqld
Canal 安装
1、下载安装包
·https://github-production-release-asset-2e65be.s3.amazonaws.com/7587038/67d9b500-f187-11e8-98bf-92bce78baac9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20181207%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20181207T073007Z&X-Amz-Expires=300&X-Amz-Signature=a8cddf415231b380ce186c9edbae7eba32bea51d42e8ec09f165fa253dcfd2cb&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B filename%3Dcanal.adapter-1.1.2.tar.gz&response-content-type=application%2Foctet-stream
2、解压安装包
·tar -zxvf xxx.tar -C 目标文件位置
3、修改配置文件
·vim canal/conf/example/instance.properties
canal.instance.mysql.slaveId=1234
canal.instance.gtidon=false
canal.instance.master.address=127.0.0.1:3306
canal.instance.master.journal.name=
canal.instance.master.position=
canal.instance.master.timestamp=
canal.instance.master.gtid=
canal.instance.rds.accesskey=
canal.instance.rds.secretkey=
canal.instance.rds.instanceId=
canal.instance.tsdb.enable=true
#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb
#canal.instance.tsdb.dbUsername=canal
#canal.instance.tsdb.dbPassword=canal
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
#canal.instance.standby.gtid=
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
canal.instance.connectionCharset = UTF-8
canal.instance.defaultDatabaseName =test
canal.instance.enableDruid=false
#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==
canal.instance.filter.regex=.\…
canal.instance.filter.black.regex=
canal.mq.topic=example
canal.mq.partition=0
#canal.mq.partitionsNum=3
#canal.mq.partitionHash=mytest.person:id,mytest.role:id
注:canal.instance.dbUsername 注意用户的权限,开始测试建议用root
4、启动canal
·./startup.sh
5、查看是否启动成功
·cat /canal/logs/canal/canal.log
碰到的坑
1、用户权限问题
2018-12-07 15:40:33.665 [destination = example , address = /127.0.0.1:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /127.0.0.1:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: command : ‘show master status’ has an error!
Caused by: java.io.IOException: ErrorPacket [errorNumber=1227, fieldCount=-1, message=Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation, sqlState=42000, sqlStateMarker=#]
with command: show master status
at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.query(MysqlQueryExecutor.java:61) ~[canal.parse.driver-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.query(MysqlConnection.java:105) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findEndPosition(MysqlEventParser.java:653) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findEndPositionWithMasterIdAndTimestamp(MysqlEventParser.java:389) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:447) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:366) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:186) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
解决方法:
·使用root登陆mysql
·输入命令:GRANT ALL PRIVILEGES ON . TO ‘canal’@‘localhost’ IDENTIFIED BY ‘canal’;
给canal用户权限
2、连接失败
2018-12-07 16:51:23.055 [destination = example , address = /172.26.xx.xx:3306 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /172.26.xx.xx:3306 has an error, retrying. caused by
com.alibaba.otter.canal.parse.exception.CanalParseException: java.io.IOException: connect /172.26.xx.xx:3306 failure
Caused by: java.io.IOException: connect /172.26.xx.xx:3306 failure
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.connect(MysqlConnector.java:77) ~[canal.parse.driver-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.connect(MysqlConnection.java:88) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.preDump(MysqlEventParser.java:86) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:175) ~[canal.parse-1.1.3-SNAPSHOT.jar:na]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]
Caused by: java.io.IOException: Error When doing Client Authentication:ErrorPacket [errorNumber=1045, fieldCount=-1, message=Access denied for user ‘canal’@‘test-dn-xx-xx.wakedata.gz’ (using password: YES), sqlState=28000, sqlStateMarker=#]
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.negotiate(MysqlConnector.java:199) ~[canal.parse.driver-1.1.3-SNAPSHOT.jar:na]
at com.alibaba.otter.canal.parse.driver.mysql.MysqlConnector.connect(MysqlConnector.java:74) ~[canal.parse.driver-1.1.3-SNAPSHOT.jar:na]
… 4 common frames omitted
问题原因:cancal用户只允许访问127.0.0.1
解决方法:GRANT ALL PRIVILEGES ON . TO ‘canal’@‘172.26.xx.xx’ IDENTIFIED BY ‘canal’;
- mysql在centos上的安装以及canal数据同步配置
- centos7 下安装canal,并实现将mysql数据同步到redis
- 【Mysql】—— 利用Canal进行数据库备份或者缓存等场景安装、配置的最佳实践
- Docker下Canal部署安装
- canal安装
- canal安装部署
- Canal安装搭建教程+kafkaProducer代码
- canal系列—Linux下的安装配置(快速开始)
- kubeadm安装kubernetes(canal)
- canal安装及使用
- linux 下载安装canal并运行示例
- 安装canal
- 在linux怎么安装ftp
- 给sql2005安装AdventureWorks数据库
- 64位ubuntu11.04上adobeair的安装以及webqq增强版(http://earneyzxl.blogspot.com/)
- Mac OS X 安装过程的一些流水帐
- VMware安装RedHat、VMwareTools 实现WINDOWS和LINUX共享文件夹
- Ubuntu 安装php
- myeclipse9安装SVN插件
- WinForm制作“安装和部署”时,实现软件开机启动