java.sql.SQLException: null, message from server: “Host ‘xx.xx.xx.xx’ is blocked because of many con

原因: docker容器运行服务时jdk的tls导致mysql连接不上的问题解决

问题描述:JDK1.8默认禁用了SSLv3,TLSv1, TLSv1.1协议,使用的是TLS1.2协议,而数据库使用的是TLS1.0协议,因此需要修改JDK的协议,使其打开TLS1.0协议。

原因1:说明mysqld已经得到了大量(max_connect_errors)的主机’hostname’的在中途被中断了的连接请求。在 max_connect_errors次失败请求后,mysqld认定出错了(像来自一个黑客的攻击),并且阻止该站点进一步的连接,直到某人执行命令 mysqladmin flush-hosts。

解决办法:
cd /usr/local/mysql/bin
mysqladmin flush-hosts

原因2:因为公司需要把项目和数据库分开进行,所以有2台服务器,直接修改连接池ip后,出现了ava.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect这样的错误,它的意思就是安装了数据库的服务器不允许部署项目的服务器进行远程连接。也就是权限问题,修改权限就可以了,修改方法是。

  1. 登录mysql : mysql -u账号 -p密码;    
  2. use mysql;
  3. show tables;
  4. select host from user;
  5. update user set host ='%' where user ='root';【修改为可以远程访问】
  6. flush privileges;

flush privileges; 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。
通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

如果无法执行,可能你没有权限,让公司运维人员去修改数据库权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值