该工具从 NDB 集群管理节点、config.ini 文件或 my.cnf 文件中提取当前配置信息,用于数据节点、SQL 节点和 API 节点。默认情况下,管理节点是配置数据的来源;要覆盖默认设置,请使用 --config-file
或 --mycnf
选项执行 ndb_config。也可以使用数据节点作为来源,通过指定其节点 ID 使用 --config_from_node=
选项。node_id
ndb_config 还可以提供所有配置参数的脱机转储,包括默认值、最大值和最小值等信息。转储可以以文本或 XML 格式生成;有关详细信息,请参阅本节后面的 --configinfo
和 --xml
选项的讨论。
可以使用 --nodes
、--system
或 --connections
选项按节 (DB
、SYSTEM
或 CONNECTIONS
) 过滤结果。
所有可以与 ndb_config 一起使用的选项都显示在以下表格中。详细描述见表格后。
表 25.28 与程序 ndb_config 一起使用的命令行选项
Format | Description | Added, Deprecated, or Removed |
---|---|---|
覆盖默认组 suffix 当读取 cluster_config 节在 my.cnf 文件中;用于测试 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
读取该二进制配置文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
设置 config.ini 文件的路径 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从具有该 ID 的节点获取配置数据(必须是数据节点) |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
以文本格式转储所有 NDB 配置参数的信息,包括默认值、最大值和最小值。使用 --xml 选项以获取 XML 输出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅打印在 cluster 配置文件的 [tcp]、[tcp default]、[sci]、[sci default]、[shm] 或 [shm default] 节中指定的连接信息。不能与 --system 或 --nodes 一起使用 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在放弃之前尝试连接的次数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在尝试联系管理服务器之间等待的秒数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
与--ndb-connectstring相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
在读取全局文件后读取给定的文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅从给定的文件中读取默认选项 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
也读取带有后缀的组 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅打印非默认值的配置参数 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
字段分隔符 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
|
显示帮助文本并退出 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
指定主机 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从登录文件中读取给定的路径 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
不从登录路径文件中读取登录路径 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
从 my.cnf 文件中读取配置数据 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
设置连接到 ndb_mgmd 的连接字符串。语法:"[nodeid=id;][host=]hostname[:port]"。覆盖 NDB_CONNECTSTRING 和 my.cnf 中的条目 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
与 --ndb-connectstring 相同 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
ndb_mgm 客户端 TLS 要求级别 |
ADDED: 8.3.0 |
|
TLS 密钥和证书的目录列表 |
ADDED: 8.3.0 |
|
不从任何选项文件中读取默认选项,除了登录文件 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
获取具有此 ID 的节点的配置 |
(在所有基于 MySQL 8.3 的 NDB 版本中支持) |
|
仅打印节点信息([ndbd] 或 [ndbd default] 部分的集群配置文件)。不能与 --system 或 --connections 一起使用 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
一个或多个查询选项(属性) |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
将所有参数和值转储到一个逗号分隔的字符串中 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
打印程序参数列表并退出 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
行分隔符 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
仅打印 SYSTEM 部分信息(见 ndb_config --configinfo 输出)。不能与 --nodes 或 --connections 一起使用 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
指定节点类型 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
|
显示帮助文本并退出;同 --help |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
|
显示版本信息并退出 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
使用 --xml 与 --configinfo 一起使用,以获取所有 NDB 配置参数的 XML 格式转储,包括默认值、最大值和最小值 |
(在所有基于 MySQL 8.3 的 NDB 发布版本中支持) |
-
Command-Line Format --字符集目录=path
包含字符集的目录。
-
Command-Line Format --集群配置后缀=name
Type 字符串 Default Value [none]
覆盖默认组后缀时读取集群配置部分在
my.cnf
中;用于测试。 -
--配置信息
选项使 ndb_config 转储 NDB 集群配置参数的列表,包括以下信息:-
每个参数的简要描述、效果和使用
-
参数在
config.ini
文件中的部分 -
参数的数据类型或单位
-
在适用情况下,参数的默认值、最小值和最大值
-
NDB 集群版本和构建信息
默认情况下,此输出为文本格式。这里显示了部分输出:
$> 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-binary-file=
路径-to-file
Command-Line Format --config-binary-file=路径/to/file
Type 文件名 Default Value 指定管理服务器的缓存二进制配置文件 (
ndb_
) 的路径。可以是相对路径或绝对路径。如果管理服务器和 ndb_config 二进制文件位于不同的主机上,必须使用绝对路径。nodeID
_config.bin.seqno
以下示例演示了如何将
--config-binary-file
与其他 ndb_config 选项结合以获取有用的输出:$> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --type=ndbd config of [DB] node id 5 that is different from default CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE NodeId,5,(mandatory) BackupDataDir,/local/data/8.1,(null) DataDir,/local/data/8.1,. DataMemory,2G,98M FileSystemPath,/local/data/8.1,(null) HostName,127.0.0.1,localhost Nodegroup,0,(null) ThreadConfig,,(null) config of [DB] node id 6 that is different from default CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE NodeId,6,(mandatory) BackupDataDir,/local/data/8.1,(null) DataDir,/local/data/8.1. DataMemory,2G,98M FileSystemPath,/local/data/8.1,(null) HostName,127.0.0.1,localhost Nodegroup,0,(null) ThreadConfig,,(null) $> ndb_config --config-binary-file=../mysql-cluster/ndb_50_config.bin.1 --diff-default --system config of [SYSTEM] system CONFIG_PARAMETER,ACTUAL_VALUE,DEFAULT_VALUE Name,MC_20220906060042,(mandatory) ConfigGenerationNumber,1,0 PrimaryMGMNode,50,0
以下是
config.ini
文件的相关部分:[ndbd default] DataMemory= 2G NoOfReplicas= 2 [ndb_mgmd] NodeId= 50 HostName= 127.0.0.1 [ndbd] NodeId= 5 HostName= 127.0.0.1 DataDir= /local/data/8.1 [ndbd] NodeId= 6 HostName= 127.0.0.1 DataDir= /local/data/8.1
通过比较输出与配置文件,可以看到文件中的所有设置都被管理服务器写入二进制缓存,从而应用于集群。
-
Command-Line Format --config-file=file_name
Type 文件名 Default Value 指定集群配置文件 (
config.ini
) 的路径。可以是相对路径或绝对路径。如果管理服务器和 ndb_config 二进制文件位于不同的主机上,必须使用绝对路径。 -
Command-Line Format --config-from-node=#
Type 数字 Default Value none
Minimum Value 1
Maximum Value 48
从具有此 ID 的数据节点获取集群配置数据。
如果具有此 ID 的节点不是数据节点,ndb_config 将失败并显示错误。(要从管理节点获取配置数据,请省略此选项。)
-
Command-Line Format --connect-retries=#
Type 整数 Default Value 12
Minimum Value 0
Maximum Value 12
在放弃之前尝试连接的次数。
-
Command-Line Format --connect-retry-delay=#
Type 整数 Default Value 5
Minimum Value 0
Maximum Value 5
在尝试联系管理服务器之间等待的秒数。
-
Command-Line Format --connect-string=connection_string
Type 字符串 Default Value [none]
与
--ndb-connectstring
相同。 -
Command-Line Format --connections
告诉ndb_config 只打印
CONNECTIONS
信息,即来自集群配置文件的[tcp]
、[tcp default]
、[shm]
或[shm default]
部分的参数信息(参见第 25.4.3.10 节,“NDB 集群 TCP/IP 连接” 和 第 25.4.3.12 节,“NDB 集群共享内存连接”,以获取更多信息)。 -
Command-Line Format --core-file
在错误时写入核心文件;用于调试。
-
Command-Line Format --defaults-extra-file=path
Type 字符串 Default Value [none]
在读取全局文件后读取给定的文件。
-
Command-Line Format --defaults-file=path
Type 字符串 Default Value [none]
仅从给定的文件中读取默认选项。
-
Command-Line Format --defaults-group-suffix=string
Type 字符串 Default Value [none]
还读取带有 concat(group, suffix) 的组。
-
Command-Line Format --diff-default
仅打印非默认值的配置参数。
-
--fields=
,delimiter
-f
delimiter
Command-Line Format --fields=string
Type 字符串 Default Value 指定一个
delimiter
字符串,用于分隔结果中的字段。默认为,
(逗号字符)。Note如果
delimiter
包含空格或转义字符(例如\n
newline 字符),则必须将其引号括起来。 -
Command-Line Format --help
显示帮助文本并退出。
-
Command-Line Format --host=name
Type 字符串 Default Value 指定要获取配置信息的节点的主机名。
Note当主机名
localhost
通常解析到 IP 地址127.0.0.1
,但这并不一定适用于所有操作平台和配置。这意味着,当localhost
在config.ini
中使用时,可能会导致 ndb_config--host=localhost
失败,如果 ndb_config 在不同的主机上运行,其中localhost
解析到不同的地址(例如,在某些版本的 SUSE Linux 中,这是127.0.0.2
)。一般来说,为了获得最佳结果,您应该使用数字 IP 地址来配置 NDB 集群的所有主机相关值,或者验证所有 NDB 集群主机都以相同的方式处理localhost
。 -
Command-Line Format --login-path=path
Type 字符串 Default Value [none]
从登录文件中读取给定的路径。
-
Command-Line Format --mycnf
从
my.cnf
文件中读取配置数据。 -
--ndb-connectstring=
,connection_string
-c
connection_string
Command-Line Format --ndb-connectstring=connection_string
Type 字符串 Default Value [none]
指定连接到管理服务器的连接字符串。连接字符串的格式与 第 25.4.3.3 节“NDB 集群连接字符串” 中描述的相同,默认为
localhost:1186
。 -
Command-Line Format --ndb-mgm-tls=level
Type 枚举 Default Value relaxed
Valid Values relaxed
strict
设置连接到管理服务器所需的 TLS 支持级别;可以是
relaxed
或strict
。relaxed
(默认)表示尝试 TLS 连接,但不需要成功:strict
表示需要 TLS 连接。 -
Command-Line Format --ndb-mgmd-host=connection_string
Type 字符串 Default Value [none]
与
--ndb-connectstring
相同。 -
Command-Line Format --ndb-nodeid=#
Type 整数 Default Value [none]
设置当前节点的节点 ID,覆盖
--ndb-connectstring
设置的 ID。 -
--ndb-optimized-node-selection
Command-Line Format --ndb-optimized-node-selection
启用事务节点选择的优化。默认启用;使用
--skip-ndb-optimized-node-selection
禁用。 -
Command-Line Format --ndb-tls-search-path=list
Type 路径名 Default Value (Unix) $HOME/ndb-tls
Default Value (Windows) $HOMEDIR/ndb-tls
指定要搜索的CA文件目录列表。在 Unix 平台上,目录名以冒号 (
:
) 分隔;在 Windows 系统上,使用分号 (;
) 作为分隔符。目录引用可以是相对的或绝对的,可以包含一个或多个环境变量,每个变量以美元符号 ($
) 开头,并在使用前展开。搜索从左侧命名的目录开始,自左向右进行,直到找到文件。空字符串表示空搜索路径,导致所有搜索失败。点 (
.
) 表示搜索路径仅限于当前工作目录。如果未提供搜索路径,则使用编译时的默认值。该值取决于平台:在 Windows 上为
\ndb-tls
;在其他平台(包括 Linux)上为$HOME/ndb-tls
。这可以通过使用-DWITH_NDB_TLS_SEARCH_PATH
编译 NDB Cluster 来覆盖。 -
Command-Line Format --no-defaults
不从任何选项文件中读取默认选项,除了登录文件。
-
Command-Line Format --no-login-paths
跳过从登录路径文件中读取选项。
-
Command-Line Format --ndb-nodeid=#
Type 整数 Default Value [none]
指定要获取配置信息的节点 ID。
-
Command-Line Format --nodes
告诉 ndb_config 只打印在集群配置文件的
[ndbd]
或[ndbd default]
部分中定义的参数信息(见 第 25.4.3.6 节,“Defining NDB Cluster Data Nodes”)。该选项与
--connections
和--system
互斥;只能使用这三个选项之一。 -
Command-Line Format --print-defaults
打印程序参数列表并退出。
-
--query=
,query-options
-q
query-options
Command-Line Format --query=string
Type 字符串 Default Value 这是一个逗号分隔的查询选项列表,即要返回的节点属性列表。这些包括
nodeid
(节点 ID)、type
(节点类型,即ndbd
、mysqld
或ndb_mgmd
)和要获取的配置参数。例如,
--query=nodeid,type,datamemory,datadir
返回每个节点的节点 ID、节点类型、DataMemory
和DataDir
。Note如果某个参数不适用于某种类型的节点,则返回空字符串。
-
--query-all
,-a
Command-Line Format --query-all
Type 字符串 Default Value 返回一个逗号分隔的所有查询选项(节点属性)列表,注意该列表是一个单字符串。
-
--行=
,separator
-r
separator
Command-Line Format --行=string
Type 字符串 Default Value 指定用于分隔结果中的行的
separator
字符串。默认是一个空格字符。Note如果
separator
包含空格或转义字符(例如\n
newline 字符),那么它必须被引号括起来。 -
Command-Line Format --系统
告诉 ndb_config 只打印
SYSTEM
信息。这些信息是系统变量,不能在运行时更改;因此,在集群配置文件中没有相应的部分。它们可以在 ndb_config--configinfo
的输出中看到(以****** SYSTEM ******
开头)。这个选项与
--nodes
和--connections
是互斥的;只能使用这三个选项中的一个。 -
Command-Line Format --类型=name
Type 枚举 Default Value [none]
Valid Values ndbd
mysqld
ndb_mgmd
过滤结果,以便只返回指定
node_type
(ndbd
,mysqld
, 或ndb_mgmd
) 的配置值。 -
--usage
,--help
, 或-?
Command-Line Format --help
使 ndb_config 打印可用选项的列表,然后退出。
-
--版本
,-V
Command-Line Format --版本
使 ndb_config 打印版本信息字符串,然后退出。
-
--configinfo
--xml
Command-Line Format --configinfo --xml
使 ndb_config
--configinfo
以 XML 格式提供输出,添加这个选项。以下是一个示例输出:$> ndb_config --configinfo --xml <configvariables protocolversion="1" ndbversionstring="5.7.44-ndb-7.5.32" 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>
Note通常,ndb_config
--configinfo
--xml
生成的 XML 输出使用每个元素一行;我们在前一个示例中添加了额外的空格,以便阅读性更好。这对使用该输出的应用程序不应该产生任何影响,因为大多数 XML 处理器要么忽略非essential 空格,要么可以被指示忽略这些空格。XML 输出还指示更改给定参数时需要使用
--initial
选项重新启动数据节点。这在相应的<param>
元素中显示为initial="true"
属性。此外,重新启动类型(system
或node
)也显示;如果给定参数需要系统重新启动,则在相应的<param>
元素中显示restart="system"
属性。例如,改变Diskless
参数的值需要系统初始重新启动,如下所示(restart 和 initial 属性突出显示以提高可读性):<param name="Diskless" comment="Run wo/ disk" type="bool" default="false" restart="system" initial="true"/>
目前,对于不需要初始重新启动的参数,XML 输出中不包括
initial
属性;换言之,initial="false"
是默认值,如果属性不存在,则假定值为false
。类似地,默认重新启动类型是node
(即在线或“滚动”重新启动集群),但只有在重新启动类型为system
时,才包括restart
属性(即所有集群节点必须同时关闭,然后重新启动)。已弃用的参数在 XML 输出中由
deprecated
属性指示,如下所示:<param name="NoOfDiskPagesToDiskAfterRestartACC" comment="DiskCheckpointSpeed" type="unsigned" default="20" min="1" max="4294967039" deprecated="true"/>
在这种情况下,
comment
引用一个或多个超越弃用参数的参数。类似于initial
,deprecated
属性仅在参数弃用时显示,带有deprecated="true"
,并且对于未弃用的参数不出现。(Bug #21127135)必需的参数用
mandatory="true"
指示,如下所示:<param name="NodeId" comment="Number identifying application node (mysqld(API))" type="unsigned" mandatory="true" min="1" max="255"/>
与
initial
或deprecated
属性类似,mandatory
属性仅在给定参数实际需要时包含。Important--xml
选项只能与--configinfo
选项一起使用。使用--xml
而不使用--configinfo
将失败并显示错误。与用于获取当前配置数据的选项不同,
--configinfo
和--xml
使用在编译 ndb_config 时从 NDB 集群源获取的信息。因此,不需要连接到正在运行的 NDB 集群或访问config.ini
或my.cnf
文件。
将其他 ndb_config 选项(例如 --query
或 --type
)与 --configinfo
结合使用(带或不带 --xml
选项)不受支持。目前,如果您尝试这样做,通常结果是所有其他选项除了 --configinfo
或 --xml
都将被忽略。但是,这种行为不保证并且可能随时更改。此外,由于 ndb_config 在使用 --configinfo
选项时不访问 NDB 集群也不读取任何文件,因此尝试指定其他选项,如 --ndb-connectstring
或 --config-file
与 --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 的节点。