Mysql问题整理

mysql 警告 could not be resolved: Name or service not known

PHPer 2018-01-27 135次浏览 0条评论 0 0 0
问题: mysql DNS反解:skip-name-resolve 错误日志有类似警告: 1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not...

问题: mysql DNS反解:skip-name-resolve


错误日志有类似警告:


1.120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known

2.120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service not known

3.120119 16:26:04 [Warning] IP address '192.168.1.17' could not be resolved: Name or service not known

通过show processlist发现大量类似如下的连接:

1.|592|unauthenticated user|192.168.1.10:35320|NULL|Connect| |login|NULL|

2.|593|unauthenticated user|192.168.1.14:35321|NULL|Connect| |login|NULL|

3.|594|unauthenticated user|192.168.1.17:35322|NULL|Connect| |login|NULL|

skip-name-resolve 参数的作用:不再进行反解析(ip不反解成域名),这样可以加快数据库的反应时间。

修改配置文件添加并需要重启:

代码如下:

[mysqld]
skip-name-resolve

其实就是在[mysqld]下面一行加入skip-name-resolve重启mysql服务就可以了。

下面是更加详细的解释:

现象:

程序连接mysql时,mysql的error.log里面提示:

[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known

原因:

Mysql数据库服务器没有配置 /etc/hosts,也没有DNS服务,导致mysqld线程解析IP对应的主机名时,解析失败。

参考资料:

Mysql域名解析:

当一个新的客户端尝试跟mysqld创建连接时,mysqld产生一个新线程来处理这个请求。新线程会先检查请求建立连接的主机名是否在Mysql的主机名缓冲中,如果不在,线程会尝试去解析请求连接的主机名。

解析的逻辑如下:

a. Mysql线程通过gethostbyaddr()把获取的IP地址解析成主机名,然后通过gethostbyname()把获取的主机名解析成IP地址,保障主机名和IP地址对应关系的准确;

b. 如果操作系统支持使用安全进程的gethostbyaddr_r()和gethostbyname_r() 调用,Mysqld线程可以用它俩来优化主机名解析;

c. 如果操作系统不支持安全线程调用,Mysqld进程先做一个互斥锁,然后调用gethostbyaddr()和gethostbyname()解析主机名。此时,在第一个进程释放掉主机名缓冲池的主机名之前,其它进程无法再次解析这个主机名; <-------MySQL手册里面在此处说的host name ,意思应该是指同一个IP地址和对应的第一个主机名关系。

在启动mysqld进程是,可以使用 --skip-name-resolve 参数禁用DNS的主机名解析功能,禁用该功能后,在MySQL授权表里面,你只能使用IP地址。 ...

登录 | 立即注册

更新于:2018-01-27 21:50:11
    您需要登录后才可以评论。 登录 | 立即注册
    相关内容

    为何 shadowsocks 弃用一次性验证 (OTA)

    https://yuanmomo.net/2019/08/18/ss-give-up-ota/ 发表于2019-08-18|更新于2020-04-09|分类于SS|评论数:0|阅读次数...

    小技巧:apache启动错误 AH00072: make_sock: could not bind to address [::]:

    用window命令行,查询apache 以一种访问权限不允许的方式做了一个访问套接字的尝试。

    Mysql错误1366的解决办法:Incorrect string value: '\xF0\x9F...' for column 'XXX' at...

    之前是批量用content生成content_no_html并插入保存,遍历整个表的时候遇到几条插入报错,后面的办法是找到该条,通过前端提交修改,如果有报错的看是什么报错,具...

    关于四字节字符入库时错误的解决方案(Incorrect string value: '\xF0\x9F\x99\x8F' f...

    1. 将表字段字符集设置成utf8mb42. 执行插入前执行:SET NAMES utf8mb4;如:SET NAMES utf8mb4;INSERT test(Content) VALUES('~');PHP例子:$paramValues=arr...

    Yii2测了下全文索引,好像是

    推荐内容

    MySQL数据库设计总结

    规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字...

    什么是B-Tree

    二叉查找树、平衡二叉树、红黑树、B-/B+树性能对比

    使用Yii2遇到的问题整理

    Yii的东西很多,学习和使用的时候遇到了各种各样的问题,这里记录整理下,方便大家分享。composer安装kartik-v/yii2-mpdf时报错,这里记录下 Yii2用compos...

    Yii2用composer更新时遇到的错误

    Yii2 用composer update 时提示'git' 不是内部或外部命令,也不是可运行的程序或批处理文件

    Yii2​用composer安装kartik-v/yii2-mpdf时报错,成功解决后,再让其支持中文。

    使用Yii2的setFlash和bootstrap.min.js遇到的问题,bootstrap.min.js的bug?

    Yii2的action不支持大小写吗?其实是支持的

    composer install 使用tips-网上找的composer install的使用技巧方法

    关于编程时遇到意想不到的错误如何解决

    比如当你写的一个php脚本执行出现问题,如果你的脚本里自己带了对错误的处理,可能会显示那里出错了。或者你用的框架,框架里有debug模式,会报错。

    使用Laravel 5.4问题总结

    这里写下laravel5.4的总结,用laravel也有段时间了,优点就不用多说了,好上手,较易学较易用,blade模板是非常的好用,等等。laravel的缺点有几个,灵活性一般,框架稍...

    使用Laravel 5.4问题总结 Lost connection to MySQL server at 'reading initial communication ...

    Laravel 5.4各种错误提示总结

    localStorage介绍和使用

    一、什么是localStorage、sessionStorage在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(co...

    localStorage的使用

    localStorage其他注意事项