问题描述:
云服务器被黑客植入挖矿。重启云服务器实例后得到解决,接着把docker(zookeeper、redis啥的)还有后端jar包啥的都重启了,然后发现后端接口访问不了,只有不涉及数据库操作的接口正常访问,其余请求都报500错误。看了下java日志,发现和数据库有关,但奇怪的是远程Navicat可以访问数据库。
错误描述:
测试发现Navicat可以连接mysql,但是后端服务就是访问不了,报错如下
网上解释是:应该是短时间内产生了大量中断的数据库连接导致,而且失败的连接数量超过了mysql的max_connection_errors的最大值。
解决方案:
- 登录mysql,使用 flush hosts来命令清理hosts文件
flush hosts;
- 调整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;
解决!