MySQL 错误 “could not be resolved: ..” 和引发的思考

原创 2017年06月04日 16:42:14

早上的时候发现mysql从库有点异常,看完了从库的日志,也看看主库的error log吧,这一看不得了啊,什么乱七八糟的ip都出现在日志里面,是不是叫人 密码爆破了。。

  • mysql版本5.6.13
  • Centos6.7

错误

mysql 错误error log中的日志是这样的

2017-06-04 09:29:19 45300 [Warning] IP address '123.206.224.80' could not be resolved: Temporary failure in name resolution
2017-06-04 09:56:13 45300 [Warning] IP address '118.194.128.7' could not be resolved: Temporary failure in name resolution
2017-06-04 09:56:13 45300 [Warning] IP address '118.194.128.7' could not be resolved: Temporary failure in name resolution
2017-06-04 09:56:13 45300 [Warning] IP address '118.194.128.7' could not be resolved: Temporary failure in name resolution
2017-06-04 09:56:13 45300 [Warning] IP address '118.194.128.7' could not be resolved: Temporary failure in name resolution
2017-06-04 09:56:14 45300 [Warning] IP address '118.194.128.7' could not be resolved: Temporary failure in name resolution

解决

mysql 默认对每个client的地址会进行dns反查,然后确认是否已经授权,DNS Lookup Optimization and the Host Cache

很多人给的解决方案是这样的,修改 /etc/my.cnf , 然后重启服务.

[mysqld]
skip-host-cache
skip-name-resolve

这么设置还解决了 就是某些dns解析不正常导致的连接巨慢问题。

思考

如果您的机器暴露在公网环境,并且这些ip都是陌生的,那么您的MySQL可能被扫描了。为什么没有看到 access denied 的错误日志呢?因为还需要一些配置啊。

mysql 登录审计参考

第一种方案,使用 general query log

配置中添加

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

日志的样子

121227  8:32:18    39 Connect   root@localhost on
           39 Connect   Access denied for user 'root'@'localhost' (using password: YES)

query log记录的是所有的查询日志,对服务的性能损害太大了,所以这个方案不好,pass。

第二种方案,修改 error log 配置

修改配置

log_warnings = 2

避免重启可以线上的可以在线修改

mysql> SHOW VARIABLES LIKE "%warning%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_warnings  | 1     |
| sql_warnings  | OFF   |
| warning_count | 0     |
+---------------+-------+
3 rows in set (0.00 sec)

mysql> set global log_warnings = 2;
Query OK, 0 rows affected (0.00 sec)

日志的样子

121227  8:44:21 [Warning] Access denied for user 'root'@'localhost' (using password: YES)

这样的话用 grep 就能查询到什么时候有坏人来过

sudo cat /var/log/mysql/error.err | egrep '[aA]ccess denied'

加强方案

不让从公网访问,或者添加访问ip白名单。如果必须开启远程访问,client的ip又不能固定,那也没好的办法,一般有点实力的公司还是有内网,vpn,或者 mysql proxy等的方案的。

版权声明:本文为orangleliu (http://blog.csdn.net/orangleliu/)原创文章,自由传播,文章转载请声明, 多谢。

安装、使用eclipse+CDT编译C++程序

我想安装、使用eclipse+CDT的初衷 在看live555的源码,需要方便管理源码的工具: 使用eclipse编译和管理live555源码 ://blog.csdn.net/nkmnkm/a...
  • yyhustim
  • yyhustim
  • 2013年02月27日 10:39
  • 2226

记一次mybatis的classpath踩坑记录

spring + mybatis配置路径错误引起的错误
  • jinzhencs
  • jinzhencs
  • 2016年01月27日 17:02
  • 10343

JAVA常见问题解决办法汇总

1.java.lang.NullPointerException        原因是:有空指针,有地址没赋值 2.Exception in thread "main" java.lang.Ari...
  • shengmingqijiquan
  • shengmingqijiquan
  • 2016年04月17日 22:33
  • 23296

Android NDK *** could not be resolved

  • 2014年12月04日 18:02
  • 2.42MB
  • 下载

android ndk 开发流程以及“Method could not be resolved”的解决办法,代码提示

android ndk开发流程及“method could not be resolved”的解决办法以及代码提示功能
  • ljpww72729
  • ljpww72729
  • 2015年07月31日 10:00
  • 402

Eclipse error: *** could not be resolved

小编打了如上代码,发现在cout,endl,return出均有错误提示信息: "cout"could not be resolved; "endl"could not be resolved; "...
  • u013053957
  • u013053957
  • 2015年06月15日 21:15
  • 354

未能解析此远程名称:’nuget.org’(The remote name could not be resolved: 'nuget.org')

The remote name could not be resolved: 'nuget.org'(未能解析此远程名称:’nuget.org’) Turn on "Allow NuGet to d...
  • zhou44129879
  • zhou44129879
  • 2013年10月30日 21:59
  • 4002

关于struts2的checkboxlist、select等标签发生could not be resolved as a collection/array/map/enumeration/iterat

今天研究struts2的标签功能,在用checkboxlist的时候, 代码如下 s:checkboxlist list="roles" listKey="id" listValue="nam...
  • a385833253
  • a385833253
  • 2011年12月05日 21:28
  • 925

mac eclipse EDT C++以及symbol 'std' could not be resolved问题的解决

环境配置测试文件test.cpp#include using namespace std;int main() { cout
  • yeizisn
  • yeizisn
  • 2016年12月29日 15:03
  • 528

window平台下 Eclipse Ndk开发中的Method 'NewStringUTF' could not be resolved问题

最近需要用到android的ndk,但是在eclipse中,一直提示Method 'NewStringUTF' could not be resolved,诸如此类的错误。 可问题是,jni.h...
  • brokge
  • brokge
  • 2014年10月09日 13:55
  • 10139
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL 错误 “could not be resolved: ..” 和引发的思考
举报原因:
原因补充:

(最多只允许输入30个字)