栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

CentOS安装canal

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CentOS安装canal

canal-admin
(非必须但推荐使用):为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作。

canal-server:
服务端,从mysql读取binlog日志获取增量日志,可以通过tcp、kafka、RocketMQ等方式与客户端通信;通过zookeeper搭建集群。

canal-adapter
客户端,根据canal-server获取的增量日志执行适配到其他诸如elasticsearch、redis、mysql等端,实现数据同步 

----------------------------------------------------------------------------------------------------

前提准备工作:

1、需要先安装JDK

2、没设置网段先设置网段【已经设置了就不需要再设置(nacos安装时有设置过)】

docker network create --subnet=172.172.0.0/24 docker-mysql

3、先安装mysql

下载canal组件 canal-server、canal-adapter、canal-admin

 4、数据库中创建用户并授权

CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
GRANT SELECt, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;

查看canal是否有权限

select * from mysql.user where user='{canal-服务连接数据库的账户名字}'  -- 这句好像并没有啥作用

5、开启mysql的binlog

show variables like 'log_bin';
show variables like 'binlog_format';

置完成后重启mysql,并查询是否配置生效:ON就是开启

查看mysql的用户:

select host,user,plugin from mysql.user ;

查看binlog:show master status;

---------------------------------------------------------------------

创建存放canal的目录
mkdir /home/canal
mkdir /home/canal/canal-server
mkdir /home/canal/canal-adpter
mkdir /home/canal/canal-admin

mkdir /home/canal/canal-tar.gz (这边将下载的压缩文件放在该目录下)

查看权限:ll

 注意给文件赋权:chmod 777 canal/

部署canal-server

1.解压:将下载好的压缩文件放到服务器上进行解压(推荐用这个解压方式 不然很多文件要赋权)

cd /home/canal/canal-tar.gz/

​​​​​​​tar -zxvf canal.deployer-1.1.6.tar.gz -C ../canal-server/

cd /canal/canal-server/canal.deployer-1.1.6/bin

用ll 查看权限,没有x说明没有执行权限

执行:chmod 777 startup.sh   赋权

创建数据库和表
CREATE DATABASE canal;
CREATE DATABASE IF NOT EXISTS canal default charset utf8 COLLATE utf8_general_ci;


mysql> use canal;
mysql> CREATE TABLE `product`  (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `sub_title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `price` decimal(10, 2) NULL DEFAULT NULL,
  `pic` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

canal-deployer 配置:

修改/canal/canal-server/conf下的canal.properties

 修改/canal/canal-server/conf/example下的instance.properties

启动:

进入/canal/canal-server/bin 执行./ startup.sh

查看启动日志:进入/canal/canal-server/logs/canal

 进入:/canal/canal-server/logs/example

启动后有碰到的问题:

1、内存剩余1.6G都不够,最后将服务都关掉只剩一个mysql才启动起来

2、

分析定位

自MySQL 8.0.3开始,身份验证插件默认使用caching_sha2_password

解决方案

解决:修改canal用户对应的身份验证插件为mysql_native_password

mysql> select host,user,plugin from mysql.user ;
mysql> ALTER USER 'canal'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

3、

 数据库里授权就好:

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
docker进入mysql命令:docker exec -it mysql容器名 bash     
mysql登录:mysql -hlocalhost -uroot -p -P 【-h数据库主机地址-u用户-p密码-P端口号(大写P)】:
     例:mysql -h127.0.0.1 -uroot -p123456 -P3306
退出mysql容器:exit命令或快捷键Ctrl+D

配置 canal-adapter
​​​​​​​cd /home/canal/canal-tar.gz/
tar -zxvf canal.adapter-1.1.6.tar.gz -C ../canal-adpter/

部署配置修改

1.修改canal/canal-adapter/conf下的application.yml

cd ../
vim canal-adpter/conf/application.yml

2.删除canal/canal-adapter/conf下的bootstrap.yml

rm -rf canal-adpter/conf/bootstrap.yml

可以将本地application.yml文件和其他子配置文件删除或清空, 启动工程将自动从远程加载配置

3.修改/canal/canal-adapter/conf/es7下的mytest_user.yml

vim canal-adpter/conf/es7/mytest_user.yml

 4.启动:

canal-adpter/bin/./startup.sh

5.Es中创建mapping索引结构

# 在kibana工具里创建es索引

PUT canal_product
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "sub_title": {
        "type": "text"
      },
      "pic": {
        "type": "text"
      },
      "price": {
        "type": "double"
      }
    }
  }
}

6.mysql数据库插入数据

INSERT INTO product ( id, title, sub_title, price, pic )
VALUES
	( 25, '小米9', ' 全面屏游戏智能手机 6GB+64GB', 2999.00, NULL );

7.查看日志:canal/canal-adapter/logs/adapter

tailf -10 canal-adapter/logs/adapter/adapter.log

 在es-head中可以查看到数据

Canal-admin 部署

1.创建canal_manager数据库

CREATE DATABASE canal_manager;
CREATE DATABASE IF NOT EXISTS canal_manager default charset utf8 COLLATE utf8_general_ci;

2.建表:/canal/canal-admin/conf下的canal_manager.sql

3、修改conf/application.yml,主要是修改数据源配置和canal-admin的管理账号配置,注意需要用一个有读写权限的数据库账号

这个时候就可以启动了【但出现canal admin启动失败,且无日志】

canal-admin是要求有启动顺序的,如果无法启动且无日志,将canal-deployer,canal-adapter先停用,再启动canal-admin

4、启动canal-admin:在bin下启动,查看logs下的日志

5.访问canal-admin的Web界面,输入账号密码admin:123456即可登录,访问地址

服务器ip:8077

 

  参考文章           参考文章2​​​​​​​​​​​​​​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1039703.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号