Архив рубрики: Linux

Ваш путеводитель по одной из самых популярных и влиятельных операционных систем в мире. От базовых команд и установки дистрибутивов до глубокого изучения ядра и сетевых технологий — здесь вы найдете статьи и руководства на самые разные темы, связанные с Linux. Независимо от вашего уровня подготовки, здесь найдется что-то интересное и полезное.

Установка Elasticsearch в Ubuntu 22.04

Elasticsearch - это популярное решение для организации полнотекстового поиска с открытым исходным кодом, на основе библиотеки Apache Lucene. Программа поддерживает продвинутую фильтрацию, различные типы поисковых запросов, морфологический анализ текстов и многое другое.

На сайте уже есть статьи о том как пользоваться фильтрами Elastic, а также как работает поиск. В этой статье мы рассмотрим как выполняется установка Elasticsearch в Ubuntu 22.04, а также как настроить авторизацию в Elasticsearch и как установить графический интерфейс Kibana для управления индексами.
Читать далее Установка Elasticsearch в Ubuntu 22.04

Как очистить таблицу в MySQL

В MySQL, как и в других СУБД можно очищать таблицы. Очистка таблицы позволяет удалять данные при этом не затрагивая саму структуру таблицы. В MySQL существует несколько способов очистки таблицы. В частности, можно выделить очистку таблицы при помощи команд DELETE и TRUNCATE.

Обе команды выполняют одну и ту же задачу, но имеют несколько отличий о которых будет рассказано далее в статье. Также будет упомянуто об удалении данных из таблицы при наличии внешних ключей (foreign key). В данной статье будет рассмотрено как очистить таблицу в MySQL различными способами в операционной системе Ubuntu 20.04.

Как очистить таблицу в MySQL

Для очистки таблицы в MySQL существует несколько способов. Далее будут рассмотрены все возможные способы.

1. Удаление данных таблицы с помощью DELETE

Для удаления данных из таблицы можно воспользоваться инструкцией DELETE которая может удалять строки таблицы по заданному условию. Предположим, есть таблица MyGuests в которой есть пользователь John:

gChghB3nCc1nAAAAABJRU5ErkJggg==

При помощи оператора DELETE и заданного условия - в данном случае удаление будет происходит по столбцу firstname который принимает значение имени пользователя будет удалена запись с номером (id) 1 и именем John:

DELETE FROM MyGuests WHERE firstname = 'John';

0IAAAAASUVORK5CYII=

Также оператор DELETE может удалять все строки таблицы сразу. В качестве примера есть таблица с двумя записями:

wPbRaK+HpwjqAAAAABJRU5ErkJggg==

Удалим все строки за один раз не задавая никаких условий. Для этого необходимо выполнить следующий SQL запрос:

DELETE FROM MyGuests;

D0jAi4fJLLPKAAAAAElFTkSuQmCC

На этом очистка таблицы MySQL завершена.

2. Удаление данных таблицы с помощью TRUNCATE

Также для удаления всех строк в таблице существует специальная команда TRUNCATE. Она схожа с DELETE, однако он не позволяет использовать WHERE. Также стоит выделить следующие особенности при очистки таблицы MySQL с помощью оператора TRUNCATE:

  • 1) TRUNCATE не позволяет удалять отдельные строки;
  • 2) DELETE блокирует каждую строку, а TRUNCATE всю таблицу;
  • 3) TRUNCATE нельзя использовать с таблицами содержащими внешние ключи других таблиц;
  • 4) После использования оператора TRUNCATE в консоль не выводится информация о количестве удаленных строк из таблицы.

В качестве примера возьмем таблицу с двумя записями из предыдущего примера:

wPbRaK+HpwjqAAAAABJRU5ErkJggg==

Для очистки этой таблицы MySQL от всех записей необходимо выполнить следующий SQL запрос:

TRUNCATE MyGuests;

AAAAAElFTkSuQmCC

Как уже было упомянуто ранее команда TRUNCTE не выводит количество удалённых строк в таблице поэтому в консоль был выведен текст 0 rows affected.

Как очистить таблицу с Foreign Key Constraint

Если в таблице присутствуют внешние ключи (Foreign Key) то просто так очистить таблицу не получится. Предположим, есть 2 таблицы - Equipment и EquipmentCategory:

uAAAAABJRU5ErkJggg==

В таблице Equipment присутствует столбец с именем category_id, который связан внешним ключом со столбцом id в другой таблице - EquipmentCategory. Например:

Equipment:

  • id
  • category_id
  • name

EquipmentCategory:

  • id
  • name

Если попытаться очистить все строки таблицы EquipmentCategory при помощи оператора TRUNCATE то будет выведена следующая ошибка:

ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`Inventory`.`Equipment`, CONSTRAINT `Equipment_ibfk_1`)

H4MLkDZh0EBYAAAAAElFTkSuQmCC

Данная ошибка говорит о том, что таблица ссылается на другую таблицу и имеет ограничение на удаление в виде внешнего ключа. Чтобы избежать данной ошибки можно воспользоваться отключением проверки внешних ключей и добавлением параметра ON DELETE CASCADE при создании таблицы.

1. Отключение проверки внешних ключей

Чтобы очистить таблицу при наличии в ней внешних ключей можно отключить проверку внешних ключей. Для этого нужно выполнить следующую команду:

SET FOREIGN_KEY_CHECKS=0;

cDloNFGT405U9o5GdyKv3wcICGE9BUwIwEz9hXWJApv5jiQbBW8OD89ghZ5dKHAQxqNL1ASiyXUDDP2HV3yU+WQrB5gTNuSaQmCzcLJsVMgq8T6SqcJKcmJvGuK7byVmWpnhifH36Gbao9GAIKASBrpwASvOGqVaXrMaJBfkWm0qmJYWvuIsgUJDH5n6WeLs+MHx7cDpeql3Im0lSrzTXJU575f5TWzoezznzLAAAAAElFTkSuQmCC

Данная команда отключит проверку внешних ключей и тем самым позволит очистить таблицу при помощи команды TRUNCATE:

TRUNCATE Equipment;

AAAAAElFTkSuQmCC

Также очистить таблицу можно и при помощи DELETE:

DELETE FROM Equipment;

D0jAi4fJLLPKAAAAAElFTkSuQmCC

После очистки таблицы можно вернуть проверку внешних ключей при помощи команды:

SET FOREIGN_KEY_CHECKS=1;

GRa4gAAAABJRU5ErkJggg==

Однако такой способ использовать не рекомендуется, потому что вы теряете консистентность данных в базе данных и программа использующая её может работать некорректно. Есть и другое решение. При удалении таблицы удалять все связанные с ней записи в других таблицах.

2. Добавление опции ON DELETE CASCADE

Опция ON DELETE CASCADE используется для неявного удаления строк из дочерней таблицы всякий раз, когда строки удаляются из родительской таблицы. Опция ON DELETE CASCADE её можно задать при создании таблицы, однако если вы этого не сделали, то можно удалить CONSTRAINT и создать его заново.

Для просмотра информации о внешнем ключе содержащемся в таблице необходимо выполнить команду SHOW CREATE TABLE:

SHOW CREATE TABLE EquipmentCategory;

В данном примере таблица называется EquipmentCategory и в ней присутствует константа с именем EquipmentCategory_ibfk_1.

Далее необходимо удалить внешний ключ при помощи команд ALTER TABLE и DROP. Например, если EquipmentCategory - имя таблицы, а EquipmentCategory_ibfk_1 - имя внешнего ключа выполните:

ALTER TABLE EquipmentCategory DROP FOREIGN KEY EquipmentCategory_ibfk_1;

После этого внешний ключ необходимо вернуть обратно добавив к нему опцию ON DELETE CASCADE. Команда будет следующей:

ALTER TABLE EquipmentCategory ADD FOREIGN KEY (category_id) references EquipmentCategory(id) on DELETE CASCADE;

После этого таблицу можно очистить при помощи команды TRUNCATE:

TRUNCATE EquipmentCategory;

Читать далее Как очистить таблицу в MySQL

Дата выхода Linux Mint 21 и что нового

Возможно вы уже знаете, что дистрибутив Linux Mint основан на выпуске Ubuntu с длительным сроком поддержки (LTS). Ubuntu 22.04 LTS была выпущена несколько месяцев назад. Это значит, что новая версия Linux Mint уже не за горами.

И действительно, следующая мажорная версия Linux Mint 21 уже находится в разработке. Официально дата выхода Linux Mint 21 ещё не объявлена, однако можно ожидать что это будет 22 июля или начало августа.
Читать далее Дата выхода Linux Mint 21 и что нового

Список пользователей в MySQL

В каждой СУБД всегда присутствует возможность посмотреть список пользователей зарегистрированных на сервере СУБД. MySQL также не лишена данной особенности. Помимо вывода списка всех пользователей зарегистрированных в MySQL дополнительно можно вывести имя текущего пользователя а также список всех пользователей которые подключены к серверу MySQL в данный момент.

В данной статье будет рассмотрено как посмотреть список пользователей MySQL присутствующих на сервере в операционной системе Ubuntu 20.04.

Читать далее Список пользователей в MySQL

Как сделать скриншот в Ubuntu

Функция создания скриншота на компьютере или ноутбуке достаточно часто оказывается полезной, например, для уточнения каких-то моментов, объяснения или поиска решения проблемы. А еще с ее помощью получится сохранить интересный момент, который происходит на экране.

В данной статье мы расскажем, как сделать скриншот в Ubuntu 22.04. Будет описано два способа: использование встроенного инструмента и сторонней утилиты.

Читать далее Как сделать скриншот в Ubuntu

Поиск в Elasticsearch

Elasticsearch - это одна из самых популярных систем для организации поиска, основанная на библиотеке Lucene. Раньше на этом сайте публиковалась статья в которой было рассказано как установить и настроить Elasticsearch, а также как использовать основные типы запросов, фильтры и группировку данных.

В этой статье я хочу сосредоточится только на поиске. Мы рассмотрим как работают анализаторы, токенизаторы, а также разберемся как всё это эффективно использовать для организации поиска.

Читать далее Поиск в Elasticsearch

Как сохранить файл в nano Linux

Текстовый редактор nano - это один из самых популярных редакторов среди новичков в Linux. Он доступен по умолчанию в большинстве дистрибутивов, довольно простой в использовании и прекрасно справляется с редактированием конфигурационных файлов.

В этой небольшой статье мы рассмотрим как сохранить файл в nano Linux. Это может понадобится если вы уже отредактировали конфигурационный файл и хотите сохранить изменения.
Читать далее Как сохранить файл в nano Linux

Как копировать в терминале Linux

Буфер обмена операционной системы и возможность копировать и вставлять текст из одного места в другое очень сильно облегчает работу в терминале. Теперь вам необязательно искать команду в истории или набирать её вручную. Вы можете скопировать текст с другого терминала, файла или браузера, а затем выполнить его. Сложно представить как передать команде длинные и сложные параметры без возможности копирования и вставки.

В этой небольшой статье мы рассмотрим как копировать в терминале Linux в разных ситуациях, а также как вставить полученный текст. В целом, тут нет ничего сложного если вы работаете с графическим окружением и там поддерживается мышь.
Читать далее Как копировать в терминале Linux

Как размонтировать диск в Linux

При прекращении работы с диском в Linux, чтобы полностью закрыть к нему доступ и избежать повреждения данных при выключении, следует его размонтировать. Для этих целей существует утилита umount, которая запускается через терминал.

В данной статье мы разберемся с ее синтаксисом и опциями. А заодно рассмотрим, как размонтировать диск в Linux. Для удобства все будет описано на конкретных примерах.

Читать далее Как размонтировать диск в Linux

Как узнать разрядность Linux

Разрядность операционной системы определяет набор инструкций процессора, которые будут использоваться для работы с данными и памятью компьютера. Существует две самые популярные разрядности, это i386 или 32 битная разрядность и x86_64 или 64 битная разрядность. Первая уже устаревшая и поддерживает работу с не больше чем 4 гигабайта оперативной памяти.

Вторая же более современная и сейчас используется практически везде. Все современные процессоры поддерживают обе архитектуры, однако многие дистрибутивы Linux уже отказались от поддержки i386 в пользу x86_64. В этой небольшой статье мы рассмотрим как узнать разрядность Linux.
Читать далее Как узнать разрядность Linux