此工具从多个来源之一提取数据节点、SQL 节点和 API 节点的当前配置信息:NDB Cluster 管理节点
config.ini
或其my.cnf
文件。默认情况下,管理节点是配置数据的来源;--config-file
要覆盖默认值,请使用或
--mycnf
选项执行 ndb_config 。也可以通过指定其节点 ID 将数据节点用作源
。
--config_from_node=
node_id
ndb_config还可以提供所有可以使用的配置参数的离线转储,以及它们的默认值、最大值和最小值等信息。可以以文本或 XML 格式生成转储;有关详细信息,请参阅
本节后
--configinfo
和
--xml
您可以使用选项
、
或
之一按部分( DB
、
SYSTEM
或)
过滤结果。
CONNECTIONS
--nodes
--system
--connections
下表显示了 可以与ndb_config一起使用的所有选项。表后有其他说明。
表 23.29 与程序 ndb_config 一起使用的命令行选项
格式 | 描述 | 添加、弃用或删除 |
---|---|---|
包含字符集的目录 | 删除:8.0.31 |
|
读取 my.cnf 文件中的 cluster_config 部分时覆盖默认组后缀;用于测试 | 添加:NDB 8.0.24 |
|
设置config.ini文件的路径 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
从具有此 ID 的节点获取配置数据(必须是数据节点) | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
以文本格式转储有关所有导航台配置参数的信息,包括默认值、最大值和最小值。与 --xml 一起使用以获得 XML 输出 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
仅打印有关集群配置文件的 [tcp]、[tcp default]、[sci]、[sci default]、[shm] 或 [shm default] 部分中指定的连接的信息。不能与 --system 或 --nodes 一起使用 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
放弃前重试连接的次数 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
尝试联系管理服务器之间等待的秒数 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
与 --ndb-connectstring 相同 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
写入核心文件出错;用于调试 | 删除:8.0.31 |
|
读取全局文件后读取给定文件 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
仅从给定文件中读取默认选项 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
还阅读带有 concat(group, suffix) 的组 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
仅打印具有非默认值的配置参数 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
字段分隔符 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
显示帮助文本并退出 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
指定主机 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
从登录文件中读取给定路径 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
从 my.cnf 文件中读取配置数据 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
设置用于连接到 ndb_mgmd 的连接字符串。语法:“[nodeid=id;][host=]hostname[:port]”。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
与 --ndb-connectstring 相同 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
为此节点设置节点 ID,覆盖 --ndb-connectstring 设置的任何 ID | 删除:8.0.31 |
|
为交易节点的选择启用优化。默认启用;使用 --skip-ndb-optimized-node-selection 禁用 | 删除:8.0.31 |
|
不要从登录文件以外的任何选项文件中读取默认选项 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
获取具有此 ID 的节点配置 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
仅打印节点信息(集群配置文件的 [ndbd] 或 [ndbd default] 部分)。不能与 --system 或 --connections 一起使用 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
一个或多个查询选项(属性) | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
将所有参数和值转储到单个以逗号分隔的字符串 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
打印程序参数列表并退出 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
行分隔符 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
仅打印 SYSTEM 部分信息(请参阅 ndb_config --configinfo 输出)。不能与 --nodes 或 --connections 一起使用 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
指定节点类型 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
显示帮助文本并退出;与 --help 相同 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
显示版本信息并退出 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
|
使用 --xml 和 --configinfo 以 XML 格式获取所有 NDB 配置参数的转储,包括默认值、最大值和最小值 | (支持所有基于 MySQL 8.0 的 NDB 版本) |
-
命令行格式 --cluster-config-suffix=name
介绍 8.0.24-ndb-8.0.24 类型 细绳 默认值 [none]
在读取集群配置部分时覆盖默认组后缀
my.cnf
;用于测试。 该
--configinfo
选项导致 ndb_config转储 NDB Cluster 分布支持的每个 NDB Cluster 配置参数的列表,其中ndb_config是其中的一部分,包括以下信息:简要说明每个参数的用途、作用和用法
config.ini
可以使用参数 的文件部分参数的数据类型或测量单位
适用时,参数的默认值、最小值和最大值
NDB Cluster 发布版本和构建信息
默认情况下,此输出为文本格式。此输出的一部分显示如下:
$> ndb_config --configinfo ****** SYSTEM ****** Name (String) Name of system (NDB Cluster) MANDATORY PrimaryMGMNode (Non-negative Integer) Node id of Primary ndb_mgmd(MGM) node Default: 0 (Min: 0, Max: 4294967039) ConfigGenerationNumber (Non-negative Integer) Configuration generation number Default: 0 (Min: 0, Max: 4294967039) ****** DB ****** MaxNoOfSubscriptions (Non-negative Integer) Max no of subscriptions (default 0 == MaxNoOfTables) Default: 0 (Min: 0, Max: 4294967039) MaxNoOfSubscribers (Non-negative Integer) Max no of subscribers (default 0 == 2 * MaxNoOfTables) Default: 0 (Min: 0, Max: 4294967039) …
将此选项与
--xml
获取 XML 格式输出的选项一起使用。-
命令行格式 --config-file=file_name
类型 文件名 默认值 提供管理服务器的配置文件 (
config.ini
) 的路径。这可能是相对或绝对路径。如果管理节点位于与调用ndb_config的主机不同的主机上,则必须使用绝对路径。 -
命令行格式 --config-from-node=#
类型 数字 默认值 none
最小值 1
最大值 48
从具有此 ID 的数据节点获取集群的配置数据。
如果具有此 ID 的节点不是数据节点, ndb_config 将失败并出现错误。(要改为从管理节点获取配置数据,只需省略此选项即可。)
-
命令行格式 --connections
告诉ndb_config仅打印
CONNECTIONS
信息——即关于在 cluster 配置文件的 , , 或 部分中找到的参数的信息[tcp]
([tcp default]
参见[shm]
第[shm default]
23.4.3.10节,“NDB Cluster TCP/IP 连接”和第 23.4.3.12 节,“NDB集群共享内存连接”,了解更多信息)。 -
命令行格式 --diff-default
仅打印具有非默认值的配置参数。
--fields=
,delimiter
-f
delimiter
命令行格式 --fields=string
类型 细绳 默认值 指定
delimiter
用于分隔结果中的字段的字符串。默认值为,
(逗号字符)。笔记如果
delimiter
包含空格或转义符(例如\n
换行符),则必须用引号引起来。-
命令行格式 --host=name
类型 细绳 默认值 指定要获取其配置信息的节点的主机名。
笔记虽然主机名
localhost
通常会解析为 IP 地址127.0.0.1
,但这不一定适用于所有操作平台和配置。这意味着如果 ndb_configlocalhost
在 解析config.ini
为不同地址的不同主机上运行(例如,在某些版本的 SUSE Linux 上,这是--host=localhost
localhost
127.0.0.2
). 通常,为了获得最佳结果,您应该为与主机相关的所有 NDB Cluster 配置值使用数字 IP 地址,或者验证所有 NDB Cluster 主机是否localhost
以相同的方式处理。 -
命令行格式 --mycnf
从
my.cnf
文件中读取配置数据。 --ndb-connectstring=
,connection_string
-c
connection_string
命令行格式 --ndb-connectstring=connection_string
类型 细绳 默认值 [none]
指定连接到管理服务器时使用的连接字符串。连接字符串的格式与第 23.4.3.3 节,“NDB Cluster 连接字符串”中描述的相同 ,默认为
localhost:1186
.-
命令行格式 --no-defaults
不要从登录文件以外的任何选项文件中读取默认选项。
-
命令行格式 --ndb-nodeid=#
删除 8.0.31 类型 整数 默认值 [none]
指定要获取其配置信息的节点的节点ID。
-
命令行格式 --nodes
告诉ndb_config打印仅与 cluster 配置文件的
[ndbd]
or[ndbd default]
部分中定义的参数相关的信息(请参阅第 23.4.3.6 节,“定义 NDB Cluster 数据节点”)。--connections
此选项与和 互斥--system
;只能使用这 3 个选项中的一个。 --query=
,query-options
-q
query-options
命令行格式 --query=string
类型 细绳 默认值 这是一个以逗号分隔的 查询选项列表,即要返回的一个或多个节点属性的列表。这些包括
nodeid
(节点 ID)、类型(节点类型——即ndbd
、mysqld
或ndb_mgmd
),以及要获取其值的任何配置参数。例如,
--query=nodeid,type,datamemory,datadir
返回每个节点的节点 ID、节点类型、DataMemory
和DataDir
。笔记如果给定的参数不适用于某种类型的节点,则返回一个空字符串作为相应的值。有关详细信息,请参阅本节后面的示例。
--query-all
,-a
命令行格式 --query-all
类型 细绳 默认值 返回所有查询选项的逗号分隔列表(节点属性;请注意,此列表是单个字符串。
--rows=
,separator
-r
separator
命令行格式 --rows=string
类型 细绳 默认值 指定
separator
用于分隔结果中的行的字符串。默认为空格字符。笔记如果
separator
包含空格或转义符(例如\n
换行符),则必须用引号引起来。-
命令行格式 --system
告诉ndb_config只打印
SYSTEM
信息。这包括无法在运行时更改的系统变量;因此,它们在集群配置文件中没有相应的部分。在ndb_config****** SYSTEM ******
的输出中 可以看到它们(以 为前缀 ) 。--configinfo
--nodes
此选项与和 互斥--connections
;只能使用这 3 个选项中的一个。 -
命令行格式 --type=name
类型 枚举 默认值 [none]
有效值 ndbd
mysqld
ndb_mgmd
过滤结果,以便仅返回应用于指定节点
node_type
(ndbd
、mysqld
或ndb_mgmd
)的配置值。 --usage
,--help
, 或-?
命令行格式 --help
导致ndb_config打印可用选项列表,然后退出。
--version
,-V
命令行格式 --version
导致ndb_config打印版本信息字符串,然后退出。
--configinfo
--xml
命令行格式 --configinfo --xml
通过添加此选项使ndb_config以 XML 形式提供输出。
--configinfo
此示例中显示了此类输出的一部分:$> ndb_config --configinfo --xml <configvariables protocolversion="1" ndbversionstring="5.7.40-ndb-7.5.29" ndbversion="460032" ndbversionmajor="7" ndbversionminor="5" ndbversionbuild="0"> <section name="SYSTEM"> <param name="Name" comment="Name of system (NDB Cluster)" type="string" mandatory="true"/> <param name="PrimaryMGMNode" comment="Node id of Primary ndb_mgmd(MGM) node" type="unsigned" default="0" min="0" max="4294967039"/> <param name="ConfigGenerationNumber" comment="Configuration generation number" type="unsigned" default="0" min="0" max="4294967039"/> </section> <section name="MYSQLD" primarykeys="NodeId"> <param name="wan" comment="Use WAN TCP setting as default" type="bool" default="false"/> <param name="HostName" comment="Name of computer for this node" type="string" default=""/> <param name="Id" comment="NodeId" type="unsigned" mandatory="true" min="1" max="255" deprecated="true"/> <param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/> <param name="ExecuteOnComputer" comment="HostName" type="string" deprecated="true"/> … </section> … </configvariables>
笔记通常, ndb_config
--configinfo
--xml
生成的 XML 输出使用每个元素一行进行格式化;出于易读性的原因,我们在上一个示例和下一个示例中添加了额外的空格。这对使用此输出的应用程序应该没有任何影响,因为大多数 XML 处理器要么理所当然地忽略不必要的空白,要么可以被指示这样做。XML 输出还指示何时更改给定参数需要使用该
--initial
选项重新启动数据节点。initial="true"
这通过相应<param>
元素中属性的存在来显示。此外,还显示重启类型(system
或 );node
如果给定参数需要重新启动系统,则通过restart="system"
相应<param>
元素中存在的属性来指示。例如,更改为Diskless
参数设置的值需要系统初始重启,如此处所示(带有restart
和initial
为可见性突出显示的属性):<param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
目前,与不需要初始重启的参数相对应
initial
的元素的 XML 输出中不包含任何属性 ;<param>
换句话说,initial="false"
是默认值,false
如果该属性不存在,则应采用该值。类似地,默认的重启类型是node
(即集群的在线或 “滚动”重启),但restart
仅当重启类型为system
(意味着所有集群节点必须同时关闭,则重新启动)。已弃用的参数在 XML 输出中由
deprecated
属性指示,如下所示:<param name="NoOfDiskPagesToDiskAfterRestartACC" comment="DiskCheckpointSpeed" type="unsigned" default="20" min="1" max="4294967039" deprecated="true"/>
在这种情况下,
comment
指的是一个或多个取代已弃用参数的参数。与 类似initial
,该deprecated
属性仅在参数被弃用时指示,deprecated="true"
对于未弃用的参数根本不出现。(漏洞 #21127135)所需的参数用 表示
mandatory="true"
,如下所示:<param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/>
与仅针对需要初始重启或已弃用的参数显示
initial
or 属性 的方式大致相同,仅当实际需要给定参数时才包含该属性。deprecated
mandatory
重要的该
--xml
选项只能与--configinfo
选项一起使用。使用--xml
without--configinfo
失败并出现错误。与此程序一起使用的选项不同,用于获取当前配置数据,
--configinfo
并 使用在编译ndb_config--xml
时从 NDB Cluster 源获取的信息。因此,这两个选项 不需要连接到正在运行的 NDB Cluster 或访问or 文件。config.ini
my.cnf
-
命令行格式 --print-defaults
打印程序参数列表并退出。
-
命令行格式 --defaults-file=path
类型 细绳 默认值 [none]
仅从给定文件中读取默认选项。
-
命令行格式 --defaults-extra-file=path
类型 细绳 默认值 [none]
读取全局文件后读取给定文件。
-
命令行格式 --defaults-group-suffix=string
类型 细绳 默认值 [none]
还可以阅读带有 concat(group, suffix) 的组。
-
命令行格式 --login-path=path
类型 细绳 默认值 [none]
从登录文件中读取给定路径。
-
命令行格式 --help
显示帮助文本并退出。
-
命令行格式 --connect-string=connection_string
类型 细绳 默认值 [none]
与 相同
--ndb-connectstring
。 -
命令行格式 --ndb-mgmd-host=connection_string
类型 细绳 默认值 [none]
与 相同
--ndb-connectstring
。 -
命令行格式 --ndb-nodeid=#
删除 8.0.31 类型 整数 默认值 [none]
为此节点设置节点 ID,覆盖由 设置的任何 ID
--ndb-connectstring
。 -
命令行格式 --core-file
删除 8.0.31 写入核心文件出错;在调试中使用。
-
命令行格式 --character-sets-dir=path
删除 8.0.31 包含字符集的目录。
-
命令行格式 --connect-retries=#
类型 整数 默认值 12
最小值 0
最大值 12
放弃前重试连接的次数。
-
命令行格式 --connect-retry-delay=#
类型 整数 默认值 5
最小值 0
最大值 5
尝试联系管理服务器之间等待的秒数。
--ndb-optimized-node-selection
命令行格式 --ndb-optimized-node-selection
删除 8.0.31 为交易节点的选择启用优化。默认启用;用于
--skip-ndb-optimized-node-selection
禁用。
不支持将其他ndb_config选项(例如
--query
or
--type
)与
--configinfo
(带或不带该
--xml
选项)结合使用。目前,如果您尝试这样做,通常的结果是除--configinfo
or之外的所有其他选项--xml
都被忽略。但是,不能保证这种行为并随时更改. 此外,由于ndb_config与该--configinfo
选项一起使用时,不会访问 NDB Cluster 或读取任何文件,因此尝试指定其他选项(例如--ndb-connectstring
或
--config-file
with
--configinfo
没有任何意义)。
例子
获取集群中各节点的节点ID和类型:
$> ./ndb_config --query=nodeid,type --fields=':' --rows='\n' 1:ndbd 2:ndbd 3:ndbd 4:ndbd 5:ndb_mgmd 6:mysqld 7:mysqld 8:mysqld 9:mysqld
在此示例中,我们使用
--fields
选项用冒号字符 (:
) 分隔每个节点的 ID 和类型,并使用--rows
选项将每个节点的值放在输出中的新行上。要生成可供数据、SQL 和 API 节点用于连接到管理服务器的连接字符串:
$> ./ndb_config --config-file=usr/local/mysql/cluster-data/config.ini \ --query=hostname,portnumber --fields=: --rows=, --type=ndb_mgmd 198.51.100.179:1186
此ndb_config调用仅检查数据节点(使用
--type
选项),并显示每个节点的 ID 和主机名的值,以及为其DataMemory
和DataDir
参数设置的值:$> ./ndb_config --type=ndbd --query=nodeid,host,datamemory,datadir -f ' : ' -r '\n' 1 : 198.51.100.193 : 83886080 : /usr/local/mysql/cluster-data 2 : 198.51.100.112 : 83886080 : /usr/local/mysql/cluster-data 3 : 198.51.100.176 : 83886080 : /usr/local/mysql/cluster-data 4 : 198.51.100.119 : 83886080 : /usr/local/mysql/cluster-data
在这个例子中,我们分别使用短选项
-f
和-r
来设置字段分隔符和行分隔符,以及短选项-q
来传递要获取的参数列表。要排除来自任何主机的结果,特别是一个主机,请使用以下
--host
选项:$> ./ndb_config --host=198.51.100.176 -f : -r '\n' -q id,type 3:ndbd 5:ndb_mgmd
在这个例子中,我们也使用了缩写形式
-q
来确定要查询的属性。--nodeid
同样,您可以使用该选项 将结果限制为具有特定 ID 的节点。