问题描述:

云服务器被黑客植入挖矿。重启云服务器实例后得到解决,接着把docker(zookeeper、redis啥的)还有后端jar包啥的都重启了,然后发现后端接口访问不了,只有不涉及数据库操作的接口正常访问,其余请求都报500错误。看了下java日志,发现和数据库有关,但奇怪的是远程Navicat可以访问数据库。

错误描述:

测试发现Navicat可以连接mysql,但是后端服务就是访问不了,报错如下

网上解释是:应该是短时间内产生了大量中断的数据库连接导致,而且失败的连接数量超过了mysql的max_connection_errors的最大值。

解决方案:

  1. 登录mysql,使用 flush hosts来命令清理hosts文件
    flush hosts;
  2. 调整mysql的最大连接数和最大错误连接数的大小
    查看mysql最大错误连接数
    show variables like '%max_connect_errors%'
    查看mysql最大连接数:
    show variables like 'max_connections';
    修改连接数大小:
    set global max_connections = 1000;
    set global max_connect_errors = 1000;

解决!