› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
krisbai
V2EX  ›  MySQL

Nginx 代理 Mysql 出现锁 IP 的情况

  •  
  •   krisbai · Oct 27, 2020 · 4284 views
    This topic created in 2164 days ago, the information mentioned may be changed or developed.

    有没有好点的解决方案呢,以下时报错: Host ‘host_name‘ is blocked because of many connection errors. Unblock with ‘mysqladmin flush-hosts’

    11 replies  •  2020-10-27 18:46:22 +08:00
    ragnaroks
        1
    ragnaroks  
       Oct 27, 2020   ❤️ 1
    出错的链接太多了,要么拉高阈值,要么定时执行如上命令行
    encro
        2
    encro  
       Oct 27, 2020   ❤️ 1
    Host ‘host_name‘ is blocked

    host_name 错了。。。。

    应该是实际的 host name 不是字符串"host_name"
    lzhlzhlc123
        3
    lzhlzhlc123  
       Oct 27, 2020
    上服务器登录数据库 执行命令 FLUSH HOSTS
    lzhlzhlc123
        4
    lzhlzhlc123  
       Oct 27, 2020
    要么有人用错误的密码疯狂连接你的数据库,要么就是你自己连接数据库的时候密码或者用户名输入错误,如果后端服务用的 tomcat,可以进 log 里面看一下 catalina.out 是不是报的数据库连接池连接失败
    est
        5
    est  
       Oct 27, 2020
    nginx 还可以代理 mysql ?走 tcp 代理功能么?
    krisbai
        6
    krisbai  
    OP
       Oct 27, 2020
    @lzhlzhlc123 感谢回复。FLUSH HOSTS 这个命令 ok 的,但是治标不治本。我们用 nginx 做的同步服务,开发的同事反馈不走代理直接走阿里的 SLB 没问题的。好像是多任务同步就会出问题,单任务正常执行,摸不着头脑。
    krisbai
        7
    krisbai  
    OP
       Oct 27, 2020   ❤️ 1
    @est 对的,有个 steam 模块支持代理 mysql 。
    akira
        8
    akira  
       Oct 27, 2020
    大概率是 2l 说的问题,
    治标的话,改大 mysql 的 max_connect_errors 应该能有改善。
    治本的话,还是要找出是哪个地方出错了
    encro
        9
    encro  
       Oct 27, 2020
    我说的很明显了,因为你配置的 host 是 "host_name"而不是真实的 host name,所以 nginx 去连名字叫做"host_name"的 host,链接不上,错误次数太多,所以被 block 了,解决办法是将 host_name 修改为真实的 mysql host name,并运行 mysqladmin flush-hosts 解除屏蔽。



    整个英文也是这个意思:


    Host ‘host_name‘ is blocked because of many connection errors. Unblock with ‘mysqladmin flush-hosts’

    主机"host_name"被屏蔽因为错误数太多,通过 ‘mysqladmin flush-hosts’解除屏蔽。

    为什么会错误次数太多?无非就是因为这个 host_name 不是一个真实的 mysql 服务器名称或者 IP 地址,你需要将这个换成真实的 mysql 服务器名称或者 IP 地址。
    encro
        10
    encro  
       Oct 27, 2020
    @akira

    我记得默认连接错误有几万次呢,够用了。
    encro
        11
    encro  
       Oct 27, 2020
    如果你主机名设置对了,那么就是网络链接(比如没开端口)或者 dns 解析问题(比如没有配置正确 resolv.conf )了。

    检查办法就是 ping/telnet host_name,估计不通。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2506 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 15:07 · PVG 23:07 · LAX 08:07 · JFK 11:07
    ♥ Do have faith in what you're doing.