[mysql][maxwell] maxwell无法连接mysql8.x,报错信息“Access Denied”

前提

使用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用户无法登录->一切问题的根源

  1. 确保把mysql的密码等级和长度配置在my.cnf里,永久生效
  2. 进入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小时,一路排查下来我都佩服我自己,跟着教程做也能一路亮红灯

posted @ 2023-10-28 11:31  Akira300000  阅读(128)  评论(0编辑  收藏  举报