今天突然出现一个问题,当通过 IP 地址连接时,mysql 连接会挂起(例如 mysql -h 10.1.248.20),但无论用户是谁,我仍然可以使用 localhost 正常连接。
mysql> show processlist;
+----+----------------------+------------------+------+---------+------+-----------------------------------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+----------------------+------------------+------+---------+------+-----------------------------------------------------------------------+------------------+
| 1 | system user | | NULL | Connect | 10 | Connecting to master | NULL |
| 2 | system user | | NULL | Connect | 10 | Has read all relay log; waiting for the slave I/O thread to update it | NULL |
| 37 | unauthenticated user | 10.1.248.3:36694 | NULL | Connect | NULL | login | NULL |
| 38 | unauthenticated user | 10.1.248.3:36695 | NULL | Connect | NULL | login | NULL |
| 39 | unauthenticated user | 10.1.248.3:36696 | NULL | Connect | NULL | login | NULL |
| 40 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+----------------------+------------------+------+---------+------+-----------------------------------------------------------------------+------------------+
6 rows in set (0.00 sec)
是的,我意识到上面的输出中的复制被破坏了;那是在我尝试重新启动 MySQL 之后(这是一个紧急情况)。
突然间,一切停止了运转,但又重新开始运转。
当时 DNS 运行良好。复制仍在进行。MySQL 响应迅速。
有人知道什么原因导致远程 IP 的 MySQL 登录突然挂起吗?
答案1
尝试添加skip-name-resolve
如下[mysqld]
部分/etc/my.cnf
:
[mysqld]
skip-name-resolve
似乎是一个名称解析问题。