golang中连接达梦数据库使用域名来代替IP时会出现解析问题

news/2024/12/21 23:06:13/

中间件使用gorm

driverName := "dm"
dataSourceName := fmt.Sprintf("dm://%s:%s@%s:%s/SYSDBA?charset=utf8&parseTime=true", config.Database.Username, config.Database.Password, config.Database.Address, config.Database.Port)config.Database.Address   这里使用了比如"dm8"这样的字符串,而不是ip

执行程序会遇到Error 6001: Communication  error dial address: localhost:5236的报错

这个是因为dm的驱动包中有问题,我这里使用的是V1.0.0版本的驱动
在n.go文件中,
func (c *DmConnector) mergeConfigs(dsn string) error函数中有这样的逻辑

host, port, err := net.SplitHostPort(host)
if err != nil || net.ParseIP(host) == nil {c.host = hostDef
} else {c.host = host
}

这里可以看到,会对域名进行格式校验,如果不是合法IP,则将其替换成了hostDef,也就是localhost。
吐槽一下,两个host明明不是同一个东西,为啥不能使用2个名称呢

所以将其修改
 

if err != nil {c.host = hostDef
} else if net.ParseIP(host) == nil {if ip, err := net.LookupHost(host); err != nil {c.host = hostDef} else {if len(ip) == 1 {c.host = ip[0]} else {c.host = hostDef}}
} else {c.host = host
}


http://www.ppmy.cn/news/1527052.html

相关文章

注意!Facebook已移除细分定位排除受众的功能

上月,Meta发布更新将移除细分定位排除受众的功能,1月31前现有的使用细分定位排除条件的广告仍可继续投放,但新建广告无法使用细分定位排除功能,1月31后所有使用细分定位排除条件的广告都将无法投放,这就意味着广告主们…

django 通过地址访问本地文件

django 通过地址访问本地文件 在Django中,如果你想通过URL访问本地文件,你可以使用Django的serve视图。首先,你需要配置你的urls.py来匹配文件存储的路径,并且确保文件存储在你的本地文件系统中。 以下是一个简单的例子&#xff…

春秋云境之CVE-2022-30887

一.靶场环境 1.下载靶场环境 根据题目提示,此靶场存在文件上传漏洞。 2.启动靶场环境 我们可以看到是一个登录页面,我们尝试进行登录 二.登录页面 1.尝试进行登录 我们发现用户名必须是邮箱,那么弱口令肯定不行,我们可以看到…

python学习第八节:爬虫的初级理解

python学习第八节:爬虫的初级理解 爬虫说明:爬虫准备工作:分析网站url分析网页内容 爬虫获取数据:1.使用urllib库发起一个get请求2.使用urllib库发起一个post请求3.网页超时处理4.简单反爬虫绕过5.获取响应参数6.完整请求代码 解析…

2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网

现在这是一个联网的状态 可以在商店里面下载东西 也能ping成功 打开虚拟网络编辑器 放管理员权限 进行设置的更改 选择DNS设置 按提示修改即可 注意的是首选的DNS服务器必须是114.114.114.114 原因 这边刚刚去查了一下 114.114.114.114 是国内的IP地址 8.8.8.8 是国外的I…

高级编程--第七章 XML

1、目标 理解XML该你那及优势 回避那些格式良好的XML文档 了解XML中特殊字符的处理方式 了解解析器概念 了解DOM树节点构造 会使用Dom操作XML数据(添加/保存) 2、XML简介 XML(EXtensible Markup Language),可扩展标记语言&…

@PathVariable,@RequestParam,@RequestBody注解,springboot与前端请求之间的数据类型转换

前端数据与springboot java数据类型转换 springboot&mybatis中数组和字符串数据类型的转换-CSDN博客中曾经提到,在Spring Boot中,通过URL传参、payload中的key-value形式或json形式,将前端数据以字符串格式发送到后端,后端We…

​​​​​​​Oracle11 分析函数等高级函数使用说明

目录 1、Group by 2、Connect by 3、分析函数 4、Model 5、Listagg与自定义聚合函数 1、Group by 与GROUP BY 一起使用的关建字 GROUPING , ROLLUP,CUBE,结合这些特性的函数可以实现SQL的明细分组统计 GROUPING 记录是对哪个字段进行统计 select deptno,job,sum(sal),gro…