分享一个工作中的小案例:windows主机上用SQLyog使用主机名登录MySQL数据库(Linux系统上搭建),结果报错,因为经常在windows上使用主机名互相访问资源、远程登录等。以为Linux上应该也可以,所以就开始研究。通过查找资料及多方帮助终于解决并搞清楚原因。希望大家不要重蹈覆辙。
故障:在windows服务器上使用主机名登录MySQL出现以下报错,主机名“test-aa-shop1” ping不通,但是对应的IP可以ping通。
故障分析:windows之间可以用主机名互相访问,是因为在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS。在网络中使用计算机名通讯就是使用NetBIOS协议。NETBIOS原理:在 TCP/IP 网络中,计算机具有供人们使用的名称,但计算机通常使用 IP 地址和硬件地址进行通信。在 NetBEUI 中,没有使用 IP 地址,只使用名称和硬件地址。Linux不支持该协议。在linux中,NETBI0S和NETEUI都不存在,Samba承担起了SMB/CIFS协议和NETBIOS实现的职责。如果想实现linun和windows资源访问可以安装Sanmba,但是目前暂时没有方案可以直接跨系统用windows访问linux主机名。
解决:
- 如果个人要临时解决可以在访问的windows上hosts文件里做IP和主机名的解析。
- 搭建DNS服务器,条件允许的话
- 根据局域网的机器系统分类,编写批处理bat脚本,执行bat文件修改host配置
- 编写修稿hosts文件文档,邮件发送给需要修改hosts文件的人员
在此感谢何清大神的帮助!
时间: 2024-10-24 03:50:43