连接MySQ时报错:Host X is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts‘

步骤一、解除主机阻塞,清除MySQL的主机缓存:


方法一:通过mysqladmin命令

mysqladmin -u root -p flush-hosts

输入MySQL root用户密码执行命令。

方法二:通过MySQL命令行

mysql -u root -p

登录后执行SQL命令:

FLUSH HOSTS;

步骤3:调整max_connect_errors参数(可选)
1. 编辑MySQL配置文件(如`/etc/my.cnf`或`/etc/mysql/my.cnf):
   [mysqld]
   max_connect_errors = 1000
2. 重启MySQL服务:
   sudo systemctl restart mysql
    或
   sudo service mysql restart

### 解决 MySQL 连接错误 08001 'Public Key Retrieval is not allowed' 此错误通常发生在尝试连接MySQL 8.0 或更新版本,因为这些版本默认使用 `caching_sha2_password` 身份验证插件。要解决这个问题,有几种方法: #### 方法一:修改连接 URL 可以在 JDBC 连接字符串中添加参数来允许公钥检索。具体来说,在连接 URL 的末尾加上 `&allowPublicKeyRetrieval=true` 即可[^5]。 对于 Spring Boot 应用程序而言,则是在配置文件中的数据源 URL 后面追加该参数: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true ``` #### 方法二:更改用户账户的身份验证插件 通过执行 SQL 命令将特定用户的认证方式更改为旧版的 `mysql_native_password` 插件: ```sql ALTER USER 'your_username'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 这一步骤会使得所选用户不再依赖于新的缓存 SHA-2 密码机制来进行身份验证[^3]。 #### 方法三:调整 MySQL 配置文件 如果希望全局改变服务器的行为而不是针对单个客户端的话,还可以编辑 MySQL 的配置文件 (my.cnf 或 my.ini),找到 `[mysqld]` 段并加入下面这一行以设定默认的身份验证插件为 `mysql_native_password`: ```ini default_authentication_plugin=mysql_native_password ``` 保存更改后重启 MySQL 服务使其生效。 以上三种办法都可以有效处理因启用 SSL/TLS 加密通信而导致的 “Public Key Retrieval is not allowed” 错误消息。选择最适合当前环境的方法实施即可解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值