错误:java.sql.SQLException: null, message from server: "Host '8.130.99.127' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
使用宝塔面板和阿里云服务器部署前后端分离项目
server {
listen 8081;
server_name 8.130.99.127;
location / {
root /www/Blog/dist; #你打包项目存放的位置
try_files $uri $uri/ @router; #检测文件存在性重定向到首页目录 防止404
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
location /myRoute/ {
alias /www/Blog/dist;
try_files $uri $uri/ @router;
}
location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Allow-Origin $http_origin;
proxy_pass http://8.130.99.127:8088/; #请求转向定义的服务器
}
}
前端项目访问http://8.130.99.127/8081
能够成功访问网站首页,然后点击登录无响应,查看后台服务日志,出现上述错误,第一次部署项目,人快麻了.
根据错误提示信息,“Host '8.130.99.127' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'”,可以得知是 MySQL 对于该 IP 的连接被阻塞了,因为出现了多个连接错误。
解决方法如下:
登录 MySQL 数据库,使用 root 账号或者具有权限的账号,执行以下命令:
mysqladmin flush-hosts # 解除 IP 阻塞
修改 MySQL 配置文件 my.cnf,找到以下这一行:
max_connection_errors=100
将其修改为:
max_connection_errors=1000
这样就可以增加最大允许连接错误次数,从而避免频繁被阻塞。修改完毕后,重启 MySQL 服务。
检查应用程序中的数据库连接配置是否正确。可以检查连接 URL、用户名和密码等信息是否正确,以及是否有防火墙或者安全组等限制连接。
如果以上操作仍然不能解决问题,可以尝试升级 MySQL 版本,或者检查系统日志和 MySQL 日志,查看是否有其他错误或者异常。
注意:在修改 MySQL 配置文件之前,需要备份原始配置文件以便于恢复。另外,为了保障安全,不要直接使用 root 账号连接数据库,应该创建专用的用户并赋予必要的权限。