ndb_drop_index 从 NDB
表中删除指定的索引。 建议您仅将此实用程序用作编写 NDB API 应用程序的示例—有关详细信息,请参阅本节后面的警告。
用法
ndb_drop_index -c connection_string table_name index -d db_name
上面显示的语句从 数据库
中的 表
中删除名为 索引
的索引。
下表显示了可与 ndb_drop_index 一起使用的选项。 表后是其他说明。
-
命令行格式 --character-sets-dir=路径
包含字符集的目录。
-
命令行格式 --connect-retries=#
类型 整数 默认值 12
最小值 0
最大值 12
放弃连接之前重试连接的次数。
-
命令行格式 --connect-retry-delay=#
类型 整数 默认值 5
最小值 0
最大值 5
尝试连接管理服务器之间等待的秒数。
-
命令行格式 --connect-string=连接字符串
类型 字符串 默认值 [无]
与
--ndb-connectstring
相同。 -
命令行格式 --core-file
出错时写入核心文件;用于调试。
--database
,-d
命令行格式 --database=名称
类型 字符串 默认值 TEST_DB
表所在的数据库的名称。
-
命令行格式 --defaults-extra-file=路径
类型 字符串 默认值 [无]
读取全局文件后读取给定的文件。
-
命令行格式 --defaults-file=路径
类型 字符串 默认值 [无]
仅从给定文件读取默认选项。
-
命令行格式 --defaults-group-suffix=字符串
类型 字符串 默认值 [无]
还读取带有 concat(组,后缀) 的组。
-
命令行格式 --help
显示帮助文本并退出。
-
命令行格式 --login-path=路径
类型 字符串 默认值 [无]
从登录文件中读取给定的路径。
-
命令行格式 --no-login-paths
跳过从登录路径文件读取选项。
-
命令行格式 --ndb-connectstring=连接字符串
类型 字符串 默认值 [无]
设置用于连接到 ndb_mgmd 的连接字符串。 语法:
[nodeid=
。 覆盖id
;][host=]主机名
[:端口
]]NDB_CONNECTSTRING
和my.cnf
中的条目。 -
命令行格式 --ndb-mgm-tls=级别
类型 枚举 默认值 宽松
有效值 宽松
严格
设置连接到管理服务器所需的 TLS 支持级别;
宽松
或严格
之一。宽松
(默认)表示尝试 TLS 连接,但不要求成功;严格
表示连接需要 TLS。 -
命令行格式 --ndb-mgmd-host=连接字符串
类型 字符串 默认值 [无]
与
--ndb-connectstring
相同。 -
命令行格式 --ndb-nodeid=#
类型 整数 默认值 [无]
设置此节点的节点 ID,覆盖由
--ndb-connectstring
设置的任何 ID。 --ndb-optimized-node-selection
命令行格式 --ndb-optimized-node-selection
启用针对事务节点选择的优化。 默认启用;使用
--skip-ndb-optimized-node-selection
禁用。-
命令行格式 --ndb-tls-search-path=列表
类型 路径名 默认值 (Unix) $HOME/ndb-tls
默认值 (Windows) $HOMEDIR/ndb-tls
指定要搜索 CA 文件的目录列表。 在 Unix 平台上,目录名用冒号 (
:
) 分隔;在 Windows 系统上,使用分号 (;
) 作为分隔符。 目录引用可以是相对的,也可以是绝对的;它可能包含一个或多个环境变量,每个变量都由前缀美元符号 ($
) 表示,并在使用前进行扩展。搜索从最左侧命名的目录开始,从左到右进行,直到找到文件。 空字符串表示空搜索路径,这会导致所有搜索都失败。 由单个点 (
.
) 组成的字符串表示搜索路径仅限于当前工作目录。如果没有提供搜索路径,则使用编译后的默认值。 此值取决于使用的平台:在 Windows 上,这是
\ndb-tls
;在其他平台(包括 Linux)上,它是$HOME/ndb-tls
。 可以通过使用-DWITH_NDB_TLS_SEARCH_PATH
编译 NDB 集群来覆盖此默认值。 -
命令行格式 --no-defaults
除了登录文件之外,不要从任何选项文件读取默认选项。
-
命令行格式 --print-defaults
打印程序参数列表并退出。
-
命令行格式 --usage
显示帮助文本并退出;与
--help
相同。 -
命令行格式 --version
显示版本信息并退出。
使用 NDB API 对集群表索引执行的操作对 MySQL 不可见,并且会使 MySQL 服务器无法使用该表。 如果您使用此程序删除索引,然后尝试从 SQL 节点访问该表,则会导致错误,如下所示
$> ./ndb_drop_index -c localhost dogs ix -d ctest1
Dropping index dogs/idx...OK
$> ./mysql -u jon -p ctest1
Enter password: *******
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 5.7.44-ndb-7.5.35
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW TABLES;
+------------------+
| Tables_in_ctest1 |
+------------------+
| a |
| bt1 |
| bt2 |
| dogs |
| employees |
| fish |
+------------------+
6 rows in set (0.00 sec)
mysql> SELECT * FROM dogs;
ERROR 1296 (HY000): Got error 4243 'Index not found' from NDBCLUSTER
在这种情况下,您使表再次可供 MySQL 使用的 唯一 选择是删除该表并重新创建它。 您可以使用 SQL 语句 DROP TABLE
或 ndb_drop_table 实用程序(请参阅 第 25.5.11 节 “ndb_drop_table — 删除 NDB 表”)来删除该表。