查看“使用DNS SRV记录连接服务器”的源代码
←
使用DNS SRV记录连接服务器
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
在域名系统(DNS)中,SRV记录(服务位置记录)是一种资源记录类型,它使客户端能够指定一个指示服务、协议和域的名称。对名称进行DNS查找将返回一个回复,其中包含域中提供所需服务的多个可用服务器的名称。有关DNS SRV的信息,包括记录如何定义列出的服务器的优先级顺序,请参阅RFC 2782。 MySQL支持使用DNS SRV记录连接服务器。接收到DNS SRV查找结果的客户端将尝试按照DNS管理员为每个主机分配的优先级和权重的顺序连接到列出的每个MySQL服务器。仅当客户端无法连接到任何服务器时,才会发生连接失败。 当多个MySQL实例(例如服务器集群)为应用程序提供相同的服务时,可以使用DNS SRV记录来协助故障转移、负载平衡和复制服务。对于应用程序来说,直接管理连接尝试的候选服务器集合是很麻烦的,而DNS SRV记录提供了一种替代方法: *DNS SRV记录使DNS管理员能够将单个DNS域映射到多个服务器。当配置中添加或删除服务器或更改它们的主机名时,DNS SRV记录也可以由管理员进行集中更新。 *集中管理DNS SRV记录消除了个别客户端在连接请求中识别每个可能主机的需求,或者连接由附加软件组件处理的需求。应用程序可以使用DNS SRV记录获取有关候选MySQL服务器的信息,而不是自己管理服务器信息。 *DNS SRV记录可以与连接池一起使用,此时不再在当前DNS SRV记录列表中的主机上的连接在空闲时将从池中删除。 MySQL支持在以下情况下使用DNS SRV记录连接服务器: *多个MySQL Connectors实现了DNS SRV支持;连接器特定的选项可用于请求针对X协议连接和经典MySQL协议连接的DNS SRV记录查找。有关一般信息,请参阅使用DNS SRV记录进行连接。有关详细信息,请参阅各个MySQL Connectors的文档。 *C API提供了一个mysql_real_connect_dns_srv()函数,与mysql_real_connect()类似,但参数列表不指定要连接到的MySQL服务器的特定主机。相反,它命名了一个指定了一组服务器的DNS SRV记录。请参阅mysql_real_connect_dns_srv()。 *mysql客户端具有--dns-srv-name选项,用于指示指定了一组服务器的DNS SRV记录。 DNS SRV名称由服务、协议和域组成,其中每个服务和协议都以下划线为前缀: _service._protocol.domain 以下DNS SRV记录标识了多个候选服务器,例如用于建立X协议连接的客户端可能会使用: Name TTL Class Priority Weight Port Target _mysqlx._tcp.example.com. 86400 IN SRV 0 5 33060 server1.example.com. _mysqlx._tcp.example.com. 86400 IN SRV 0 10 33060 server2.example.com. _mysqlx._tcp.example.com. 86400 IN SRV 10 5 33060 server3.example.com. _mysqlx._tcp.example.com. 86400 IN SRV 20 5 33060 server4.example.com. 在这里,mysqlx表示X协议服务,tcp表示TCP协议。客户端可以使用名称_mysqlx._tcp.example.com请求此DNS SRV记录。在连接请求中指定名称的特定语法取决于客户端的类型。例如,客户端可能支持在类似URI的连接字符串中指定名称,或者作为键值对。 经典协议连接的DNS SRV记录可能如下所示: Name TTL Class Priority Weight Port Target _mysql._tcp.example.com. 86400 IN SRV 0 5 3306 server1.example.com. _mysql._tcp.example.com. 86400 IN SRV 0 10 3306 server2.example.com. _mysql._tcp.example.com. 86400 IN SRV 10 5 3306 server3.example.com. _mysql._tcp.example.com. 86400 IN SRV 20 5 3306 server4.example.com. 在这里,名称mysql指定了经典MySQL协议服务,端口为3306(默认的经典MySQL协议端口),而不是33060(默认的X协议端口)。 使用DNS SRV记录查找时,客户端通常必须遵循以下连接请求规则(可能有客户端或连接器特定的例外情况): *请求必须指定完整的DNS SRV记录名称,其中服务和协议名称以下划线为前缀。 *请求不能指定多个主机名。 *请求不能指定端口号。 *仅支持TCP连接。不能使用Unix套接字文件、Windows命名管道和共享内存。
返回至“
使用DNS SRV记录连接服务器
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息