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

早上的时候发现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等的方案的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在您提供的引用中,问题是关于.less文件中导入的依赖项不能解析的情况。解决这个问题的方法是安装lib-flexible,并添加相应的转换器。 首先,您需要通过运行以下命令来安装lib-flexible: ``` npm install lib-flexible --save-dev ``` 安装完成后,您可以在路径上使用lib-flexible,将其作为解析.less文件的依赖项。 接下来,您需要在您的entry_point.less文件中添加转换器,以将其自动转换为相应的.css文件。您可以使用以下配置: ``` transformers: - less_node: entry_point: web/builder.less ``` 这将告诉系统将entry_point.less文件转换为CSS,并将其输出到相应的位置。 通过执行这些步骤,您应该能够解决导入但无法解析的.less文件依赖项的问题,并成功地将其转换为CSS文件。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [bug:The following dependencies are imported but could not be resolved lib-flexibleflexible](https://blog.csdn.net/m0_67390969/article/details/123420288)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [less_node:Dart .less 到 .css 转换器](https://download.csdn.net/download/weixin_42136365/20058530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值