目录
- 版本管理
- Mysql 设置
- 在MySQL配置文件my.cnf设置:
- 检查是否开启
- 增加新用户:
- 安装 Elasticsearch
- es 跨域问题
- 目录挂载
- 安装 Elasticsearch-Head
- 解决 es 跨域连接问题
- 启动 es-head
- 解决 es-head 无法创建索引
- 安装 Canal
- 安装镜像
- 编写配置文件
- 问题:
- 安装 Canal-Adapter
- 安装镜像
- 配置canal-adapter 文件'
- 测试
- 同步全量数据
- 创建表
- 创建 es 索引
mysql:8.0Elasticsearch 7.9.2Canal v1.1.5Canal-Adapter v1.1.5
Canal 参考官网: https://github.com/alibaba/canalMysql 设置在MySQL配置文件my.cnf设置:
- 应该是 vi 或者 vim 无法使用,使用 docker copy 来解决
docker exec -it [id] /bin/bash// 进入容器# 本地创建vim mysqld.cnf// 修改mysql配置
# 打开binloglog-bin=mysql-bin# 选择ROW(行)模式binlog-format=ROW# 配置MySQL replaction需要定义,不要和canal的slaveId重复server_id=1
docker copy /root/mysqld.cnf容器id/etc/mysql/
文章插图
检查是否开启
# 查看是否开启binlog模式show variables like 'log_bin%';# 查看binlog日志文件列表show variables like 'binlog_format%';# 查看当前正在写入的binlog文件:SHOW master STATUS;# 重置reset master;
增加新用户:CODE# 添加用户并设置密码CREATE USER canal IDENTIFIED BY 'canal';# 授权GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;#重新加载权限FLUSH PRIVILEGES;
安装 Elasticsearch# 下载elasticsearch镜像docker pull elasticsearch:7.9.2 # //启动elasticsearchdocker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx1g" elasticsearch:7.9.2 # //进入elasticsearch容器docker exec -it elasticsearch /bin/bash# 安装ik分词器(服务器下载失败可能是内存炸了)./bin/elasticsearch-plugininstall https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.2/elasticsearch-analysis-ik-7.9.2.zip
es 跨域问题【Mysql通过Canal同步Elasticsearch】docker exec -it elasticsearch /bin/shvi config/elasticsearch.yml
cluster.name: "docker-cluster"network.hosts:0.0.0.0# 跨域http.cors.allow-origin: "*"http.cors.enabled: true
目录挂载# 授予权限,不然启动失败chmod 777 /home/haha/mydata/elasticsearch/data
docker run -d --name elasticsearch --restart=always -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx1g" -v/home/haha/mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /home/haha/mydata/elasticsearch/data:/usr/share/elasticsearch/data elasticsearch:7.9.2
文章插图
安装 Elasticsearch-Head解决 es 跨域连接问题
docker exec -it elasticsearch /bin/shvi config/elasticsearch.yml
cluster.name: "docker-cluster"network.hosts:0.0.0.0# 跨域http.cors.allow-origin: "*"http.cors.enabled: true
启动 es-headdocker run -d \--name=elasticsearch-head \-p 9100:9100 \mobz/elasticsearch-head:5-alpine
解决 es-head 无法创建索引进入elasticsearch-head容器内docker exec -it elasticsearch-head /bin/shvi _site/vendor.js
将第6886行contentType: "application/x-www-form-urlencoded",改为contentType: "application/json;charset=UTF-8",将第7574行var inspectData = https://www.huyubaike.com/biancheng/s.contentType ==="application/x-www-form-urlencoded" &&改为var inspectData = https://www.huyubaike.com/biancheng/s.contentType ==="application/json;charset=UTF-8" &&
文章插图
文章插图
重启,可以清一下浏览器缓存
exitdocker restart elasticsearch-head
安装 Canal可以参考:https://blog.csdn.net/qq_32836247/article/details/116561732
- 2 G的服务器搞不来
# 拉取镜像$ docker pull canal/canal-server:v1.1.5# 随便启动一个,用于拉取配置文件$ docker run --name canal -p 11111:11111-d canal/canal-server:v1.1.5# 挂载配置文件$ docker cp canal:/home/admin /home/haha/docker-canal# 删除容器$ docker stop canal$ docker rm canal# 启动新的容器$ docker run --name canal -p 11111:11111 -v /home/haha/docker-canal:/home/admin -d canal/canal-server:v1.1.5
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- MySQL的日志文件
- 通过netty把百度地图API获取的地理位置从Android端发送到Java服务器端
- Flink WordCount入门
- 01-MySQL8主从详解
- 如何实现通过Leaflet加载dwg格式的CAD图
- 通过QQ抓IP查询地址
- mysql安装教程-window操作系统
- 通过openlayers加载dwg格式的CAD图并与互联网地图叠加
- ubuntu-22.04 树莓派Zero 2 W通过.NET6和libusb操作USB读写
- Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化