前提
使用mysql-maxwell-kafka进行增量同步的时候,kafka消费组没有得到任何消息。一个个排到最后才发现最核心的问题是mysql,麻了真的是。
kafka没问题
查进程,有两台机子的kafka未启动
打开日志,报错
org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = NodeExists
把配置文件全部检查了一遍,没得问题后重启zookeeper和kafka,第一次没成功就再试一次,试了两次就好了,离谱
maxwell没问题
查看进程kafka已经好了,但是maxwell还是没反应:(
查看maxwell日志发现居然跟kafka一样会挂-_-||| 我说怎么每次查看进程都找不着
报错信息应该是SQLException: Access Denied,maxwell连不上MySQL,就自己关机了
所以到头来问题还是在mysql上
mysql有大问题(我谢谢你啊
第一个问题,bin_log开启后,show master status
时没有bin_do_db,除了改my.cnf没啥解决方法,记得加上[mysqld], 改完后重启服务,按理说这样就可以了,mysql那边可能需要点时间反应(这还能有延迟,我这电脑是真烂X_X
第二个问题,maxwell用户无法登录->一切问题的根源
- 确保把mysql的密码等级和长度配置在my.cnf里,永久生效
- 进入mysql数据库
# create user create user 'maxwell'@'%' identified by 'maxwell'; # privileges setup grant all privileges on maxwell.* to 'maxwell'@'%' with grant option; # refresh,我第一次错应该是这里没有刷新权限 flush privileges; # last step grant select, replication client, replication slave on *.* to 'maxwell'@'%';
如果提示root用户没有system_user的权限, grant system_user on *.* to 'root';
授权
现在maxwell也可以登录mysql了
总结
至此,整个消息队列就能完整打印了,我觉得除了最后一个问题是技术性问题,其他都是我电脑太烂的问题(花了6小时,一路排查下来我都佩服我自己,跟着教程做也能一路亮红灯
标签:grant,maxwell,Denied,kafka,报错,user,mysql From: https://www.cnblogs.com/Akira300000/p/17793786.html