Как полностью удалить СУБД MariaDB и MySQL с Debian/Ubuntu?

Полное удаление баз данных MySQL или MariaDB с системы Linux требует нескольких последовательных шагов, чтобы не только удалить программные пакеты, но и очистить все конфигурационные файлы и данные. Это позволит вам выполнить действительно «чистую» установку позже. Давайте рассмотрим этот процесс подробно.

Шаг 1: Создание резервной копии данных (если нужно)

Прежде чем начать удаление, убедитесь, что у вас есть резервные копии всех важных баз данных:

# Для MySQL/MariaDB создание дампа всех баз данных
mysqldump -u root -p --all-databases > all_databases_backup.sql

Шаг 2: Остановка служб

Перед удалением необходимо остановить все связанные службы:

# Остановка MySQL
sudo systemctl stop mysql
sudo systemctl stop mariadb

# Проверка, что службы действительно остановлены
sudo systemctl status mysql
sudo systemctl status mariadb

Шаг 3: Удаление пакетов

Для Debian/Ubuntu:

# Удаление пакетов MySQL
sudo apt remove --purge mysql-server mysql-client mysql-common mysql-server-core mysql-client-core libmysqlclient* mysql*

# Удаление пакетов MariaDB
sudo apt remove --purge mariadb-server mariadb-client mariadb-common mariadb-server-core mariadb-client-core

# Удаление зависимостей, которые больше не нужны
sudo apt autoremove -y
sudo apt autoclean

Шаг 4: Удаление конфигурационных файлов и данных

После удаления пакетов часто остаются конфигурационные файлы и директории с данными. Их нужно удалить вручную:

# Удаление конфигурационных директорий
sudo rm -rf /etc/mysql
sudo rm -rf /etc/my.cnf
sudo rm -rf /etc/my.cnf.d

# Удаление данных
sudo rm -rf /var/lib/mysql
sudo rm -rf /var/lib/mysql-*

# Удаление логов
sudo rm -rf /var/log/mysql
sudo rm -rf /var/log/mysql.*
sudo rm -rf /var/log/mysqld.*

# Удаление run-файлов
sudo rm -rf /var/run/mysql
sudo rm -rf /var/run/mysqld

# Удаление дополнительных директорий, которые могли быть созданы
sudo rm -rf /usr/lib/mysql
sudo rm -rf /usr/share/mysql

Шаг 5: Проверка наличия пользователей и групп

MySQL и MariaDB создают системных пользователей и группы. Их тоже следует удалить:

# Проверка наличия пользователей
grep -i mysql /etc/passwd
grep -i mariadb /etc/passwd

# Удаление пользователей
sudo userdel mysql
sudo userdel mariadb

# Проверка наличия групп
grep -i mysql /etc/group
grep -i mariadb /etc/group

# Удаление групп
sudo groupdel mysql
sudo groupdel mariadb

Шаг 6: Очистка пакетного менеджера

# Обновление списка пакетов
sudo apt update

Шаг 7: Проверка полного удаления

Проверьте, действительно ли все компоненты MySQL и MariaDB удалены:

# Для Debian/Ubuntu
dpkg -l | grep -i mysql
dpkg -l | grep -i mariadb

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

Скрипт для автоматического удаления

Вот скрипт, который автоматизирует весь процесс удаления:

#!/bin/bash

# Функция для логирования
log() {
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}

# Остановка служб
log "Остановка служб MySQL и MariaDB..."
systemctl stop mysql mariadb mysqld 2>/dev/null || true

# Удаление пакетов для Debian/Ubuntu
if command -v apt &> /dev/null; then
    log "Удаление пакетов MySQL и MariaDB с использованием apt..."
    apt remove --purge -y mysql* mariadb* 2>/dev/null || true
    apt autoremove -y
    apt autoclean
# Удаление пакетов для CentOS/RHEL
elif command -v yum &> /dev/null; then
    log "Удаление пакетов MySQL и MariaDB с использованием yum..."
    yum remove -y mysql* mariadb* 2>/dev/null || true
    yum clean all
fi

# Удаление конфигурационных и data директорий
log "Удаление конфигурационных файлов и данных..."
rm -rf /etc/mysql /etc/my.cnf /etc/my.cnf.d
rm -rf /var/lib/mysql /var/lib/mysql-* /var/lib/mariadb
rm -rf /var/log/mysql* /var/log/mysqld*
rm -rf /var/run/mysql* /var/run/mysqld*
rm -rf /usr/lib/mysql /usr/share/mysql /usr/lib/mariadb /usr/share/mariadb

# Удаление пользователей и групп
log "Удаление системных пользователей и групп..."
userdel mysql 2>/dev/null || true
userdel mariadb 2>/dev/null || true
groupdel mysql 2>/dev/null || true
groupdel mariadb 2>/dev/null || true

# Проверка завершения удаления
log "Проверка завершения удаления..."
DEBIAN_CHECK=$(dpkg -l | grep -E 'mysql|mariadb' 2>/dev/null)
RPM_CHECK=$(rpm -qa | grep -E 'mysql|mariadb' 2>/dev/null)

if [ -n "$DEBIAN_CHECK" ] || [ -n "$RPM_CHECK" ]; then
    log "Внимание: некоторые пакеты могли остаться в системе:"
    if [ -n "$DEBIAN_CHECK" ]; then
        echo "$DEBIAN_CHECK"
    fi
    if [ -n "$RPM_CHECK" ]; then
        echo "$RPM_CHECK"
    fi
else
    log "MySQL и MariaDB успешно удалены из системы!"
    log "Теперь вы можете выполнить чистую установку."
fi

Этот скрипт можно сохранить в файл (например, clean_mysql.sh), сделать его исполняемым с помощью команды chmod +x clean_mysql.sh и запустить с правами администратора: sudo ./clean_mysql.sh.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *