先贴上我查询资料的博客:https://blog.csdn.net/wwwdc1012/article/details/88388552/
背景:最近在搞一个项目,数据来源是客户已有的系统,需要做的是把他们项目所在的服务器上的mysql数据库数据,传输到我们项目所部署的基站上,以供开发,包括以后部署项目,一部分数据来源也是从这里获取。所以,这里使用了Maxwell。
主要的实现方法是:把Maxwell安装到对方服务器上,实时监听数据,传输到rabbitmq队列中,我们自己再监听队列,从队列中获取数据,存入指定的数据库表单。需要注意的是,需要监听几张表,就要创建几个队列。
具体的为什么要用maxwell以及maxwell的介绍,大家可以查一查这款产品,当然我贴的那张博客博主写的也非常详细。我这里就简单说一下实现过程。
实现过程:因为对方服务器是linux系统,在linux上安装maxwell。将解压出来的config.properties.example文件修改为config.properties,并编辑这个配置文件,配置承你需要的。下面贴一下我的配置文件,因为我用的是rabbitmq。
安装完成之后,在maxwell安装目录下运行 ./bin/maxwell 启动。
如果报错:
需要修改对方服务器的mysql数据库,将mysql配置文件my.cnf中的binlog_format修改为row。
也可以在安装完maxwell前后运行以下命令查看一下:
show variables like 'binlog_format';
show variables like '%log_bin%';
在对应位置找到my.cnf配置文件(找你自己的安装路径)
vi /etc/my.cnf
[mysqld]
server-id = 1
binlog_format = ROW
查看修改结果
mysql> show variables like 'binlog_format';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
到此,maxwell需要安装配置的地方就完成了。
下面就是rabbitmq的配置。
安装好rabbitmq,并创建用户名admin,密码admin的用户(与maxwell配置的相同),并分配权限。(https://www.cnblogs.com/zwwhnly/p/10918665.html)
用admin登录,如果前边服务器的maxwell运行正常的话,rabbitmq会有名为maxwell的exchange
然后创建所需要的队列:
每一个队列添加对应的routing_key,例如dfs_gantry_baseinfo队列:
GetMessage,有数据就成功了。