当前位置:Gxlcms > 数据库问题 > ? 需求:高密网和低密网之间的mysql文件落地同步。

? 需求:高密网和低密网之间的mysql文件落地同步。

时间:2021-07-01 10:21:17 帮助过:27人阅读

mysqlbinlog写入功能,建议配置binlog模式为row,修改数据库配置文件my.iniLinux下为my.cnf

? ?[mysqld]

? log-bin=mysql-bin

? binlog-format=ROW

? server_id=1

? skip-name-resolve

? expire_logs_days=10

? 解释:

? ?log-bin=mysql-bin? #开启binlog

? ?binlog-format=ROW? #选择row模式

? ?server_id=1? #配置mysql replaction需要定义,不能和canalslaveId重复

? ?skip-name-resolve? #默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能在MySQL的授权表中使用主机名了而只能用ip格式,防止用127.0.0.1登录,mysqlip反向解析后用localhost登录出现权限不足,拒绝登录的错误。

? ?expire_logs_days=x? #二进制日志自动删除的天数。默认值为0,表示“没有自动删除”

? ?修改完成后重启MySql服务,执行以下语句查看是否开启binlog写入功能。

? ?SHOW VARIABLES LIKE "log_%";

? ?如下图所示,若log_binON,则binlog写入功能已打开。

? ? ?技术图片

技术图片

? 5.为数据库添加canal用户,开启做为mysql slave的相关权限,执行以下语句。

? ? ? ?

技术图片

? ?执行完成后,执行SELECT * FROM mysql.user;查询是否添加成功,如下图所示。

? ? ? ? ?技术图片

技术图片

? ?6.修改配置文件instance.properties,位于canal-server/conf/example/instance.properties,红色字体的部分需要修改。

? ? 技术图片技术图片

? ? ? ?技术图片

?技术图片


? ?说明:canal.instance.connectionCharset代表数据库的编码方式对应到java中的编码类型,比如UTF-8GBK

, ISO-8859-1

? 7.启动canal服务器端

? ? 执行canal-server\bin下的启动脚本,windows下为startup.batLinuxstartup.shwindows下正常启动页面如下:

? ?技术图片

? ? 8.启动后查看日志, canal-server\logs\canal\canal.log

? ?技术图片

? ?具体instance的日志canal-server\logs\example \example.log

? ?以上表示正常启动。

参考https://github.com/alibaba/canal/wiki/ClientExample创建canal客户端:



? ? 我的完整代码:https://github.com/shuxiaoabi/xiaobaiRepositiry。


? ? ?注:我的canal客户端构建场景为:canal分为两个线程一个线程用于连接监听canal服务端解析binlog日志生成对应的sql语句落地成文件,该文件会被数据交换交换至跨网的另外一端某个目录下,还有一个线程用于解析交换过来的sql文件并执行该文件使其数据库完成同步(跨网域之间的中间器可采用光闸或者网闸)。

?运行

? 1,运行canal服务端startup.bat / startup.sh

? 2,运行客户端程序。


? 需求:高密网和低密网之间的mysql文件落地同步。

标签:安装   windows   pre   har   启动   主机   dns   oca   mat   

人气教程排行