文章目录
- 问题记录和解决方法
- Public key问题解决
- many connection errors问题解决
问题记录和解决方法
- 本次出现错误是:在重启服务器,启动seata应用druid连接mysql作为存储源时出现。主要出现了两个错误:
- 第一个问题,通常采用修改连接参数解决
Public Key Retrieval is not allowed
- 第二个问题:可以通过设置最大连接数和重连策略,这里采用mysql服务器清除阻塞解决问题
com.mysql.cj.exceptions.CJException: null, message from server: "Host '192.168.1.21' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
Public key问题解决
- “Public Key Retrieval is not allowed”(不允许检索公钥)通常出现在使用 JDBC 连接器尝试连接到 MySQL 数据库的客户端应用程序中。当使用 caching_sha2_password 插件进行身份验证时,服务器可能需要客户端检索公钥以安全地交换密码。
- 修改 JDBC 连接 URL,
useSSL=false
只在安全的环境中或用于调试目的时使用。在生产环境中,应启用 SSL 以确保数据传输的安全。
jdbc:mysql://host:port/database?allowPublicKeyRetrieval=true&useSSL=false
many connection errors问题解决
- 错误信息表明MySQL服务器阻止来自某个IP地址的连接,原因是该IP地址在短时间内产生了太多的连接错误。
- MySQL有一个安全机制,用来防止某些可能的恶意攻击(如DOS攻击),这种机制会在检测到过多的连接错误时自动阻止该IP的连接请求。
- 错误原因:并发连接数过多:可能有太多的客户端同时尝试连接到MySQL服务器,超过了服务器能够处理的极限。
解决方法:
- 检查客户端的连接参数:确认使用的用户名、密码及其它连接参数都是正确
- 清除阻塞:通过MySQL管理工具执行
mysqladmin flush-hosts
命令来清除被阻止的主机# -u root 表示以root用户执行命令,-p 提示输入密码 mysqladmin -u root -p flush-hosts
- 基本在第二步,即可解决问题,第三步可以忽略,当然配置也更好
- 修改MySQL服务器的配置:修改MySQL的配置文件(
my.cnf
或my.ini
)中增加或修改max_connect_errors
的值。max_connect_errors
参数定义主机在被阻止前可以产生的最大连接错误数。例如,设置为更大的数值,修改配置后,需要重启MySQL服务以使新的配置生效。
[mysqld] max_connect_errors=10000
- 如果使用1panel面板可以在数据库面板中直接修改