Полное удаление баз данных 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
.
Добавить комментарий