【mysql笔记】主机名和IP地址解析详解-[Warning] IP address xxx could not be resolved: Name or service not known

IDEA连接MySQL数据库全链路排查指南:从原理到实战解决连接失败问题 JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的标准API,它通过驱动程序管理器加载特定数据库的驱动,建立与数据库服务器的网络连接。其核心原理是基于TCP/IP协议,通过连接字符串(URL)传递主机、端口、数据库及关键参数信息,驱动负责协议的封装与通信。在软件开发与数据库管理实践中,JDBC连接是数据持久化操作的基础,广泛应用于企业级应用、微服务架构及各类数据管理场景。当使用IntelliJ IDEA内置的Database工具连接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地址。

   如果你所处环境的DNS非常慢 或者 有很多主机, 你可以通过禁用DNS解析功能--skip-name-resolve 或者 提高 HOST_CACHE_SIZE大小 来提升数据库的响应效率。

   禁用主机名缓冲的发方法: 使用--skip-host-cache 参数; 刷新主机名缓冲区: 执行 flush hosts 或者执行mysqladmin flush-hosts;

   禁用TCP/IP连接: 使用--skip-networking参数。


实验:

# grep 192.168.1.1 /etc/hosts

   192.168.1.1 hostname_online

sql>    grant usage on *.* to root@'h_tt_%' identified by 'root';

sql>    flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES)   ### IP解析为hostname_online,不是h_tt_%,访问被拒。

# grep 192.168.1.1 /etc/hosts

192.168.1.1 hostname_online

192.168.1.1 h_tt_1

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES)#### mysqld没有刷新主机池缓冲池中的IP和主机名信息,此时IP对应hostname_online

sql> flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

ERROR 1045 (28000): Access denied for user 'root'@'hostname_online' (using password: YES) ####  mysqld解析了/etc/hosts里面同一个IP对应的第一个主机名关系时,就不再解析后面这个IP对应的主机名关系

# grep 192.168.1.1 /etc/hosts

192.168.1.1 h_tt_1

192.168.1.1 hostname_online

sql> flush hosts;

# mysql -h 192.168.1.1 -uroot -proot

sql> exit


【实验:】验证解析相同IP对应的第一个主机名关系后,就不再解析相同IP:

Sql>grant usage on *.* to root@’h_tt_%’ identified by ‘root’;

Sql>flush hosts;

# grep h_tt /etc/hosts                   # grep h_tt /etc/hosts

192.168.1.1hostname_online               192.168.1.1h_tt_1

192.168.1.1h_tt_1                        192,168.1.2h_tt_1

    访问mysql被拒绝;                         从两个IP都可以访问mysql.


【结论】

此实验验证了,上述mysql手册中对"How MySQL Uses DNS"的解释。

即mysqld线程解析/etc/hosts是,是以IP作为唯一标识的,及时一个IP对应了多个主机名,但是mysqld线程只解析第一条对应关系,不论后面有几条这个IP对应的不同主机名的记录,Mysqld进程都不会去解析,都是无效的。


【适用环境:】

   没有DNS服务器,主机非常非常多,或者 不想维护/etc/hosts里面手动配置的IP和主机名对应列表时,可以在mysql授权时执行主机名为"%" 或者禁用IP和主机名解析功能(--skip-name-resolve)。


Debian 11 初始服务器配置:SSH密钥登录、sudo权限与UFW防火墙加固全流程 Linux服务器初始化配置是保障系统安全与稳定运行的基础环节,其核心围绕身份认证、权限控制和网络防护三大技术支柱展开。Debian作为主流LTS发行版,其11代号bullseye在默认安全策略上显著收紧——禁用root远程登录、不启用防火墙、未预置sudo组权限,要求运维人员必须按严格时序完成DNS修复、SSH密钥化、sudo组授权及UFW默认拒绝策略部署。这一过程直接决定后续是否面临暴力破解、提权失效或端口暴露等生产风险。本文聚焦Debian 11开箱后的首15分钟关键操作,覆盖从`ssh user@ip 阅读详情

相关推荐

mysql could not be resolved: Name or service not known

今天查看mysql日志的时候发现[Warning] IP address '10.0.0.220' could not be resolved: Name or service not known,原来是mysql DNS反解:skip-name-resolve的原因,屏蔽一下就可以了

mysql出现:could not be resolved: Name or service not known

mysql错误日志出现这样的警告: 2021-05-31 21:31:59 15546 [Warning] IP address '192.168.232.179' could not be resolved: Name or service not known 是因为没有添加:skip-name-resolve 参数 skip-name-resolve : 不再进行反解析(ip不反解成域名) vim /etc/my.cnf #添加即可 skip-name-resolve :wq 重启数据库: /et

qq_39677803的博客 1万+

【模型转换】将.mindir文件转换成.ms文件(Windows篇)

首先需要在MindSpore中训练好并经过评估可用的模型,可以以标准格式(例如onnx, mindir等)导出,得到.mindir模型文件(例如lenet.mindir)。为了将模型部署到自定义应用中,还需要将其转换为更为紧凑和高效的ms格式模型,用于在MindSpore-Lite环境中推理,这可以通过MindSpore Lite提供的模型转换工具converter_lite完成。

qq_42962847的博客 1425

mysql显示错误日志 [Warning] IP address ‘xxxx‘ could not be resolved: Name or service not known错误解决

mysql日志显示[Warning] IP address 'xxxx' could not be resolved: Name or service not known,那是因为mysql默认会反向解析DNS,对于访问者Mysql不会判断是hosts还是ip都会进行dns反向解析,频繁地查询数据库和权限检查,这大大增加了数据库的压力,导致数据库连接缓慢,严重的时候甚至死机,出现“连接数据库时出错”等字样。 解决办法:禁用dns反查即可 进入/etc 找到mysql的配置文件my.cnf(linux环境

jacklin_01的博客 7436

迪文串口屏开发环境搭建全流程:从DGUS Tool到串口联调

串口屏作为嵌入式人机交互的核心组件,通过串口通信实现主控MCU与显示终端的指令交互。其工作原理基于变量地址映射,主控读写VP地址即可驱动屏上控件,兼具低功耗与高稳定性。在工业控制、医疗设备及智能家居面板等场景中,串口屏能显著降低开发门槛与硬件成本。迪文屏凭借DGUS Tool上位机与自定义串口协议,成为主流选择。掌握DGUS Tool版本匹配、串口驱动安装及VP地址规划,是快速搭建开发环境的关键。

weixin_33937499的博客 611

VSCode+Keil高效开发STM32:Keil Assistant插件配置全攻略

本文详细介绍了如何通过VSCode的Keil Assistant插件,将Keil MDK的编译调试能力与VSCode的现代编辑体验相结合,打造高效的STM32开发环境。文章涵盖了从环境配置、工程导入、智能提示设置到与STM32CubeMX协同工作的全流程攻略,旨在解决Keil编辑器效率低下的痛点,大幅提升嵌入式开发的编码与项目管理效率。

gold的博客 508

mysql显示[Warning] IP address 'xxxx' could not be resolved: Name or service not known错误解决

mysql日志显示[Warning] IP address 'xxxx' could not be resolved: Name or service not known,那是因为mysql默认会反向解析DNS,对于访问者Mysql不会判断是hosts还是ip都会进行dns反向解析,频繁地查询数据库和权限检查,这大大增加了数据库的压力,导致数据库连接缓慢,严重的时候甚至死机,出现“连接数据库时出错

帅气的可乐 4万+

从零开始VCS+Verdi 安装过程

从零开始VCS+Verdi 安装及破解过程 主要参考:VCS+Verdi 安装及破解过程(CentOS7)-----FPGA开发 1. 安装文件结构 –vcs-mx_vL-2016.06 –verdi_vL-2016.06-1 –scl_v11.9 #此程序统一管理license等破解文件 –SynopsysInstaller.rar #此程序用于安装以上3个程序 –sc...

Ztrans的博客 2万+

mysql错误日志报IP address '' could not be resolved: Nam

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34390996的博客 6915

ComfyUI的G-Dino模型加载器报错解决方案:从崩溃到重生

遇到G-Dino模型加载器报错不要慌,按照本文的步骤操作,99%的问题都能解决。模型文件正确下载到指定位置segment_anything节点安装完整且无冲突需要补充更多细节或故障排除方法吗?可以随时告诉我。

2301_78150483的博客 4024

【测开求职】面试题:操作系统 吐血整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。涵盖考研范围内的所有知识内容,读者可以先查看上面的链接走一遍操作系统的整体框架结构。其中,重点难点以及易混淆的知识点,笔者用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。另外操作系统在校招中有非常明显的重点,一般情况下只会考察进程管理,内存管理,和设备管理,且这三者考察频率依次递减,文件管理基本不会考察。

vector的博客 7912

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

MySQL的error log 出现大量的 DNS反解析错误。 DNS解析是指,将 域名解析成ip地址; DNS反解析是指,将IP地址反解析成域名; Version: '5.5.40-log' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server (GPL) 151023 7:57:55 [Warning] IP...

weixin_33897722的博客 1651

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

2026年全国青少年信息素养大赛算法应用主题赛(C++赛项复赛模拟卷1:文末附答案)

王老师青少年编程 1616

Ubuntu系统网络与包管理&工业级容器运行时containerd

很早之前的 Docker Engine 中就有了 containerd,现在已经 从 Docker Engine 里分离出来,作为一个独立的开源项目,目标是提供一个更加开放、稳定的容器运行基础设施。containerd 是 CNCF 毕业的工业级容器运行时(Container Runtime),强调简单性健壮性和可移植性向上:给 Kubernetes、nerdctl、crictl 等客户端提供标准化接口向下:对接 runc、crun 等 OCI 运行时,负责真正的容器启动/管理。

weixin_73616238的博客 256

R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

data+scenario+science+insight 3926

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Ubuntu 20.04 手动部署 Postfix 邮件服务器实战指南

Postfix 是 Linux 系统中最主流的邮件传输代理(MTA),其核心作用是可靠路由和投递电子邮件。它基于 SMTP 协议工作,通过 DNS MX 查询、TLS 加密协商、SPF/DKIM 签名验证等机制保障邮件可信传递。作为轻量级、高安全、可审计的开源 MTA,Postfix 广泛应用于监控告警、CI/CD 通知、日志归档等运维自动化场景。在 Ubuntu 20.04 这类长期支持系统中,手动配置 Postfix 不仅能规避默认安装的收信陷阱,更能建立端到端的发信控制链——从主机名解析、DNS 可达

weixin_34006965的博客 745

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql IP address could not be resolved

为什么80%的码农都做不了架构师?>>> ...

weixin_33979363的博客 369

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

mysql name or service not known_MySQL反解析出现could not be resolved: Name or service not known解决办法...

错误日志有类似警告120119 16:26:04 [Warning] IP address '192.168.1.10' could not be resolved: Name or service not known120119 16:26:04 [Warning] IP address '192.168.1.14' could not be resolved: Name or service ...

weixin_33532301的博客 2620

[转]mysql显示[Warning] IP address 'xxxx' could not be resolved: Name or service not known错误解决

mysql日志显示[Warning] IP address 'xxxx' could not be resolved: Name or service not known,那是因为mysql默认会反向解析DNS,对于访问者Mysql不会判断是hosts还是ip都会进行dns反向解析,频繁地查询数据库和权限检查,这大大增加了数据库的压力,导致数据库连接缓慢,严重的时候甚至死机,出现“连接数据库时出错...

seowen的开发 小本子 2406

IP address could not be resolved: Temporary failure in name resolution

在自己的mysql日志中发现了如下的错误信息 2017-09-15T01:07:10.373535Z 5 [Warning] IP address '192.168.33.1' could not be resolved: Temporary failure in name resolution 2017-09-15T01:07:28.445920Z 6 [Warning] IP address '

乐乐的博客 3016

SAP提示 IP ADDRESS cannot be converted to the host name

问题: 提示如下错误: 解决方案:以下两个XML文件删除就可以了;

beyond911的专栏 979

关于mysql的 [Warning] IP address 'XXX' could not be resolved: Temporary failure in name resol

最近排查mysql执行效率的时候,查看mysql的实时日志大量一直显示190526 8:05:55 [Warning] IP address ‘XXXXXX’ could not be resolved: Name or service not known,后面查log文件,每天包含该句日志达到几千万条,严重的浪费了log日志空间和效率。 下面我一起来看看其中的原因: mysql日志显示[War...

江西看见你科技有限公司 5081

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

早上的时候发现mysql从库有点异常,看完了从库的日志,也看看主库的error log吧,这一看不得了啊,什么乱七八糟的ip都出现在日志里面,是不是叫人 密码爆破了。。mysql版本5.6.13 2017-06-04 09:29:19 45300 [Warning] IP address '123.206.224.80' could not be resolved: Temporary failure in name

orangleliu 笔记本 1万+

mysql ip 日志_mysql错误日志报IP address '' could not be resolved: Nam

在工作中出现这样的问题,研发和测试同事在连接mysql的时候,突然mysql连接断开,每天都会出现1-2次错误日志内容2014-04-08 17:58:11 24636 [Warning] IP address '192.168.1.116' could not be resolved: Name or service not known2014-04-08 17:58:24 24636 [War...

weixin_32875295的博客 1128

rocketmq broker 第三章注册过程1

hi 大家好 上两章介绍了namesrv的启动和注册过程,有什么不对的地方欢迎大家吐槽,接着开始分析broker吧有些地方画不下了 通过分析看细节吧..1,createBrokerController System.setProperty(RemotingCommand.RemotingVersionKey, Integer.toString(MQVersion.C...

weixin_33984032的博客 322
上一篇: 【oracle运维】数据库连接数设置
下一篇: 【oracle运维】导出某属主用户的所有表结构(excel格式)
杰克牌辣酱
博客等级 码龄18年 26粉丝 141原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值