25.5.10 ndb_drop_index — Удаление индекса из таблицы NDB
ndb_drop_index удаляет указанный индекс из таблицы NDB. Рекомендуется использовать эту утилиту только в качестве примера для написания приложений NDB API — см. Предупреждение в этом разделе для получения подробностей.
Использование
ndb_drop_index -c connection_string table_name index -d db_name
Приведенное выше оператор удаляет индекс с именем index из таблицы table в database.
Параметры, которые можно использовать с ndb_drop_index, показаны в следующей таблице. Дополнительные описания следуют за таблицей.
-
Формат командной строки --character-sets-dir=pathКаталог, содержащий кодировки символов.
-
Формат командной строки --connect-retries=#Тип Integer Значение по умолчанию 12Минимальное значение 0Максимальное значение 12Количество попыток повторного подключения перед отказом.
-
Формат командной строки --connect-retry-delay=#Тип Integer Значение по умолчанию 5Минимальное значение 0Максимальное значение 5Количество секунд ожидания между попытками связаться с сервером управления.
-
Формат командной строки --connect-string=connection_stringТип String Значение по умолчанию [none]То же, что и
--ndb-connectstring. -
Формат командной строки --core-fileЗаписать файл core при ошибке; используется при отладке.
-
--database,-dФормат командной строки --database=nameТип String Значение по умолчанию TEST_DBИмя базы данных, в которой находится таблица.
-
Формат командной строки --defaults-extra-file=pathТип String Значение по умолчанию [none]Прочитать заданный файл после прочтения глобальных файлов.
-
Формат командной строки --defaults-file=pathТип String Значение по умолчанию [none]Прочитать параметры по умолчанию только из заданного файла.
-
Формат командной строки --defaults-group-suffix=stringТип String Значение по умолчанию [none]Также прочитать группы с concat(group, suffix).
-
Формат командной строки --helpОтобразить справку и завершить работу.
-
Формат командной строки --login-path=pathТип String Значение по умолчанию [none]Прочитать заданный путь из файла входа.
-
Формат командной строки --no-login-pathsПропускает чтение параметров из файла пути входа.
-
Формат командной строки --ndb-connectstring=connection_stringТип String Значение по умолчанию [none]Установить строку подключения для подключения к ndb_mgmd. Синтаксис:
[nodeid=. Перезаписывает записи вid;][host=]hostname[:port]NDB_CONNECTSTRINGиmy.cnf. -
Формат командной строки --ndb-mgm-tls=levelТип Enumeration Значение по умолчанию relaxedДопустимые значения relaxedstrictУстанавливает уровень поддержки TLS, необходимый для подключения к серверу управления; одно из
relaxedилиstrict.relaxed(по умолчанию) означает, что выполняется попытка установить TLS-подключение, но успех не является обязательным;strictозначает, что для подключения требуется TLS. -
Формат командной строки --ndb-mgmd-host=connection_stringТип String Значение по умолчанию [none]То же, что и
--ndb-connectstring. -
Формат командной строки --ndb-nodeid=#Тип Integer Значение по умолчанию [none]Установить идентификатор узла для этого узла, переопределив любой идентификатор, установленный
--ndb-connectstring. -
--ndb-optimized-node-selectionФормат командной строки --ndb-optimized-node-selectionВключить оптимизацию выбора узлов для транзакций. Включено по умолчанию; использовать
--skip-ndb-optimized-node-selectionдля отключения.
-
Формат командной строки --ndb-tls-search-path=listТип Имя пути Значение по умолчанию (Unix) $HOME/ndb-tlsЗначение по умолчанию (Windows) $HOMEDIR/ndb-tlsУкажите список каталогов для поиска файла CA. В операционных системах Unix имена каталогов разделяются двоеточием (
:); в системах Windows в качестве разделителя используется точка с запятой (;). Ссылка на каталог может быть относительной или абсолютной; она может содержать одну или несколько переменных среды, каждая из которых обозначается префиксом символа доллара ($), и расширяется перед использованием.Поиск начинается с левого каталога и продолжается слева направо, пока не будет найден файл. Пустая строка обозначает пустой путь поиска, что приводит к неудаче всех поисков. Строка, состоящая из одной точки (
.), указывает, что путь поиска ограничен текущим каталогом.Если путь поиска не указан, используется значение по умолчанию, скомпилированное в программе. Это значение зависит от используемой платформы: в Windows это
\ndb-tls; в других платформах (включая Linux) это$HOME/ndb-tls. Это можно изменить, скомпилировав NDB Cluster с помощью-DWITH_NDB_TLS_SEARCH_PATH. -
Формат командной строки --no-defaultsНе читать параметры по умолчанию из файла параметров, кроме файла входа.
-
Формат командной строки --print-defaultsВывести список аргументов программы и завершить работу.
-
Формат командной строки --usageОтобразить текст справки и завершить работу; аналогично
--help. -
Формат командной строки --versionОтобразить информацию о версии и завершить работу.
Операции, выполняемые над индексами таблицы Cluster с помощью 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.36
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») для удаления таблицы.
© 2025 Oracle
Licensed under the GPLv2 License.