MySql报错pymysql.err.OperationalError: (1129, “172.16.200.3‘ is blocked because of many connection err

pymysql.err.OperationalError: (1129, "172.16.200.3' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'")
Exception ignored in: <function MySQLDB.__del__ at 0x000001959EBF7430>
Traceback (most recent call last):
  File "D:\FletProjects\medical_system\data_base\mysql_database.py", line 85, in __del__
    self.conn.close()
AttributeError: 'MySQLDB' object has no attribute 'conn'

 解决办法:

这个错误消息表示你的 MySQL 数据库因为多次连接错误而封锁了来自 IP 地址 `172.16.200.3` 的连接。这通常是因为在短时间内尝试了太多失败的连接,通常是因为错误的用户名或密码,或者其他导致连接被拒绝的配置问题。

解决此错误的步骤如下:

1. **解除 IP 封锁**:
    解锁该 IP,你需要有足够的权限运行 MySQL 命令。在命令行中运行以下命令:
    ```
    mysqladmin flush-hosts -u root -p
    ```
    你需要输入你的 MySQL root 用户的密码。这将清除封锁的主机列表。

2. **检查连接参数**:
    在重新尝试连接之前,请确保你的连接参数(用户名、密码、数据库名等)是正确的。验证配置文件(可能是 Python 应用程序的一部分)中提供的这些详细信息。

3. **限制连接尝试**:
    如果你有一个脚本或应用程序尝试连接到数据库,确保它在错误的情况下不会快速重试导致过多的失败尝试。

4. **考虑增加封锁阈值**:
    如果合理(并且确保安全性不被破坏),你或许会想要增加 MySQL 服务器上允许的失败连接尝试次数。你可以在 `my.cnf` 或 `my.ini` 配置文件中修改 `max_connect_errors` 的值。为了编辑它,请按以下步骤行事:
    
    - 打开 `my.cnf` 或 `my.ini` 文件。这个文件的路径依赖于操作系统和 MySQL 服务器的安装方式。
    - 寻找 `[mysqld]` 部分,并增加如下行:
    ```
    [mysqld]
    max_connect_errors=10000
    ```
    - 重启 MySQL 服务器。

5. **修复 AttributeError**:
    另一个问题是 `AttributeError: 'MySQLDB' object has no attribute 'conn'`。这意味着你的 `MySQLDB` 对象在你试图调用 `self.conn.close()` 方法时没有 `conn` 属性。这个错误发生在对象的析构函数(`__del__`)中,当 Python 尝试删除对象时。要修复它,需要确保在尝试关闭之前正确地创建并分配了 `conn` 属性。例如,可以修改析构函数以避免尝试关闭未定义的连接:

    ```python
    def __del__(self):
        if hasattr(self, 'conn'):
            self.conn.close()
    ```

做完以上步骤后,应该可以解决你的问题。记得在做这些更改时小心谨慎,尤其如果你正在处理生产环境的数据库。如果你不熟悉这些步骤,可能需要联系数据库管理员或更有经验的开发者来协助你。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值