Как переустановить mysql ubuntu

Обновлено: 05.07.2024

Недавно я сделал новую установку Ubuntu 16.04. Я также установил mysql-server и mysql-client (их версия по умолчанию 5.7.12) через apt-get install .

Поскольку 5.7.12 показывал некоторые проблемы, я решил удалить его. Сначала я попробовал apt-get remove mysql-server mysql-client , но увидел, что такие артефакты, как /etc/mysql и /var/lib/mysql , не были удалены.

Затем я попробовал apt-get --purge removed mysql-server mysql-client , но все равно без разницы.

Итак, я удалил их вручную (через rm -rf ). Я также вручную удалил все *mysql* файлы в /usr/ , которые пришли из любых mysql-* пакетов зависимостей, таких как mysql-common .

Однако теперь, когда я хочу переустановить mysql-server and -client , я обнаруживаю, что не могу.

Фактически, сейчас я нахожусь в состоянии, в котором я не могу ни apt-get remove mysql-server , ни apt-get install mysql-server !

Я бы не хотел переустанавливать всю благословенную ОС со всеми другими моими приложениями и средой, еще раз из-за mysql-server .

Следующее, например, ошибка, которую я получаю при попытке удалить mysql-server :

И при попытке установки я получаю эту ошибку:

Вот результат работы apt-get install -f :

Спасибо я забыл упоминать, что я хотел, чтобы он был открытым исходным кодом, но Спасибо! – Didan974 25 September 2017 в 08:19

подсказку, что до сих пор существует ошибочный стартовый скрипт.

Ищите /etc/init.d/mysql и любые сим-ссылки на него. Удаление этих ссылок, по-видимому, исправило мои проблемы с переустановкой после прыжка.

Основная ошибка

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

На самом деле он говорит о том, что пакет mysql-server-5.7 является зависимостью для mysql-server , уже установлен, но не настроен. Поэтому вам необходимо очистить его, чтобы удалить те хлебные крошки, оставленные mysql-server-5.7 .

Обоснование

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

Вы можете проверить состояние пакета, выполнив следующую команду.

Обычно, если вы видите код ] un или rc слева от имени пакета, вы сможете определить, действительно ли это неработающий пакет.

Когда я столкнулся с этой проблемой, это было с libapache2-mod-php и libapache2-mod-php7.0 . Это был мой результат.

В моем случае он утверждал, что статус моего пакета неизвестен и что он не установлен (код un ) в моей системе.

Когда вы сообщаете apt to удалить что-то, он может оставить пакеты, файлы конфигурации и другие элементы, которые могут быть проблематичными во время автоматической установки.

Когда вы сообщаете apt очистить что-то, он лучше всего удаляет все хлебные крошки, которые удаление могли оставить.

Первоначально я сказал, что Я предположил, что процесс все еще запущен, но, скорее всего, он был Неактивен или мертв.

Лучший способ проверить, мешает ли служба удалению вашего пакета, - сначала проверить эту службу.

1) Исследование mysql service

Используя системную ошибку, предоставленную нам apt , мы можем фактически использовать systemctl , чтобы исследовать ошибку, проверяя состояние ] mysql service

В нашем случае мы хотим увидеть, запущен ли mysql, поэтому можем ввести

. Вы должны увидеть этот вывод, если служба работает

2) Остановка службы mysql с использованием [113 3334] systemctl

примечание: [шаблон] должен быть именем, указанным в service или initctl . причина, по которой я использую шаблон , заключается в том, что systemctl использует сопоставление регулярных выражений, поэтому будьте осторожны, если вы должны использовать аргумент kill .

где шаблон представляет имя демона / службы mysql. если остановка не работает, попробуйте

3) Удаление / очистка mysql

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

Примечание: убедитесь, что вы выбрали правильную версию mysql . Например, если вы используете 5.5, измените номер версии соответствующим образом.

ПРЕДУПРЕЖДЕНИЕ: следующие шаги приведут к удалению ваших данных! (первая команда должна быть выполнена для создания резервной копии)

4) Исправление поврежденных пакетов и обработка недостающих зависимостей

Убедитесь, что вы выполнили сначала apt update , а затем apt install

5) Если все остальное не помогло, соберите и установите mysql самостоятельно

Если ни один из выше работает,вам придется вручную загрузить исходный код, скомпилировать и использовать make или bash для установки оттуда (не так болезненно, как кажется, поскольку все происходит автоматически).

MySQL - это одна из самых популярных систем управления базами данных, которая применяется почти везде, начиная от различных предприятий и промышленности и заканчивая организацией работы веб-сайтов.

Сейчас существует несколько версий MySQL. Непосредственно MySQL, разрабатываемая компанией Oracle и свободный форк от основного разработчика MySQL - MariaDB. Имя MairaDB программа получила в честь первой дочери программиста, также как и MySQL в честь имени второй. В большинстве дистрибутивов Linux используется MariaDB, в том числе и в Ubuntu. Но в этой статье давайте рассмотрим установку именно MySQL в Ubuntu 20.04.

Установка MySQL 8 в Ubuntu

Программа и все необходимые компоненты есть в официальных репозиториях, поэтому установить её не составит труда. Для установки из официальных репозиториев сначала обновите списки пакетов:

sudo apt update

Затем установите необходимые пакеты:

sudo apt install mysql-server mysql-client

На данный момент в репозиториях Ubuntu 20.04 есть уже версия Mysql 8.20. Вы можете проверить установленную версию такой командой:

Кроме того, желательно проверить, запущенна ли служба MySQL:

sudo systemctl status mysql

Вы должны увидеть зеленую надпись Active, Running и версию программы, которую устанавливали.

Установка MySQL 5.7 в Ubuntu

Если вам нужна версия 5.7, то её в репозиториях нет, но вы можете получить эту версию из репозитория разработчика. Если в системе уже есть более новая версия, её надо полностью удалить:

sudo apt remove --autoremove mysql-server mysql-client

Также удалите каталог с базами данных MySQL они не совместимы со старой версией:

sudo rm -Rf /var/lib/mysql

Для установки репозитория скачайте этот пакет:

Затем установите его:

sudo dpkg -i mysql-apt-config_0.8.12-1_all.deb

В процессе установки программа попросит выбрать дистрибутив. Если у вас Ubuntu 20.04 или выше, выбирайте версию для Ubuntu 18.04 - bionic:

Затем выберите MySQL Server and Cluster:

После этого останется выбрать нужную версию MySQL, например 5.7:

После этого обновите списки репозиториев и посмотрите какие версии MySQL доступны:

sudo apt update

sudo apt-cache policy mysql-server

Осталось установить установить mysql 5.7 в Ubuntu:

sudo apt install mysql-server=5.7.31-1ubuntu18.04 mysql-community-server=5.7.31-1ubuntu18.04 mysql-client=5.7.31-1ubuntu18.04

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

После этого вы снова можете посмотреть версию:

Настройка mysql в Ubuntu

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

На первом шаге настраивается плагин валидации пароля. Чтобы его включить нажмите Y, или его можно не включать. Затем надо задать сложность пароля, который позволит установить этот плагин. Здесь 0 означает слабый пароль, а 2 - сложный. Когда плагин будет настроен введите пароль root и подтвердите, что хотите использовать именно его:

Введите Y для отключения анонимного доступа к MySQL, затем ещё раз Y чтобы запретить подключаться к базе от имени root удаленно:

Снова Y, чтобы удалить тестовую базу данных. Затем, обновите привилегии для пользователей:

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

sudo mysql -u root

Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:

mysql> CREATE DATABASE testDB;

Далее создадим пользователя:

mysql> CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'password';

Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:

mysql> GRANT ALL PRIVILEGES ON testDB.* TO 'my_user'@'localhost'

Или вы можете дать права только на несколько инструкций:

mysql> GRANT SELECT,UPDATE,DELETE ON testDB.* TO 'my_user'@'localhost';

Если какую-либо инструкцию нужно запретить, удалите ее:

mysql> REVOKE UPDATE ON testDB.* FROM 'my_user'@'localhost';

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

mysql> FLUSH PRIVILEGES;

Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:

Также вы можете посмотреть полномочия для нужного пользователя:

mysql> SHOW GRANTS FOR 'my_user'@'localhost';

Теперь установка MySQL Ubuntu 20.04 полностью завершена и вы можете использовать эту базу данных для решения своих задач.

Удаление MySQL в Ubuntu

Чтобы удалить mysql Ubuntu 20.04 понадобиться немного больше команд чем для удаления простого пакета. После удаления основных пакетов в системе остается еще много файлов. Мы рассмотрим как удалить все.

Сначала остановите сервисы:

sudo systemctl stop mysql
sudo killall -KILL mysql mysqld_safe mysqld

Удалите основные пакеты и их зависимости:

sudo apt -y purge mysql-server mysql-client
sudo apt -y autoremove --purge
sudo apt autoclean

Удалите пользователя mysql и остатки программы в системе:

deluser --remove-home mysql
sudo delgroup mysql
rm -rf /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql /var/lib/mysql /var/log/mysql* /var/log/upstart/mysql.log* /var/run/mysqld
updatedb

Удалите все логи подключений к mysql из терминала:

sudo find / -name .mysql_history -delete

Теперь ваша система полностью очищена от MySQL.

Выводы

В этой статье мы рассмотрели как выполняется установка MySQL в Ubuntu 20.04. Как видите, это не очень трудно, хотя и требует некоторых знаний и немного времени на то, чтобы со всем разобраться. Надеюсь, эта информация была для вас полезной.

MariaDB - это очень популярная система управления базами данных (СУБД), которая пришла на смену MySQL. Фактически, это одно и то же программное обеспечение (форк), только MariaDB развивается открытым сообществом разработчиков и автором MySQL, а разработкой MySQL занимается компания Oracle. Следовательно, MariaDB чаще получает обновления, раньше получает новые возможности и патчи, которые устраняют проблемы с безопасностью.

Поэтому MariaDB заменила MySQL во многих дистрибутивах (например, в дистрибутивах Debian) и теперь поставляется по умолчанию. Однако данная СУБД не устанавливается в Ubuntu по умолчанию. Если вам необходимо установить MariaDB в Ubuntu, то необходимо устанавливать пакет с именем mariadb-server, иначе установится база данных MySQL. В этой статье мы рассмотрим, как установить MariaDB в Ubuntu 20.04.

Установка MariaDB в Ubuntu 20.04

1. Установка из официальных репозиториев

MariaDB присутствует в официальных репозиториях Ubuntu, и если вам нужна стабильная версия, то лучше устанавливать её именно оттуда. На момент написания статьи (23 августа 2021 года) в официальных репозиториях Ubuntu присутствует версия 10.03. Для установки данной версии, выполните следующую команду в терминале:

sudo apt -y install mariadb-server-10.3 mariadb-client

Для получения ссылки на репозиторий откройте официальный сайт, выберите ваш дистрибутив, выберите версию дистрибутива, а затем желаемую версию MariaDB:

crNC83TyjpeswskFfSEgyFgYa2WUboD1Qyhq21oYikhzzEGhhXUZQjJvB3Ow6WcYiV+zeQyVxn9Yp26qslY5yy58aKLmlNBfRUjRpWghlPV0CifLCuykthqH6DGSDS0UjT0ZGXHDZYvtQajQXSWptsMW9vkFoQNOlHlyiuhvf8fr+oAfp5WVGUAAAAASUVORK5CYII=

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

w9VvwEHRKSc2AAAAABJRU5ErkJggg==

Для Ubuntu 20.04 необходимо выполнить следующие команды:

a9OtyaBrkahBwZekMVuuEcQc8iIxxG9ixWIL6+UrnhVEVPf1Ob1jeYnup1bhqv8fuL3kCWyV4NAAAAAASUVORK5CYII=

Далее обновите списки репозиториев и устанавливаем MariaDB:

sudo apt update

sudo apt -y install mariadb-server mariadb-client

XBSvREqbYRbVJeP+XUGc6p8ol4cxywwqdsX1XwuIHCtbj+P9i6aRACebQ+AAAAAElFTkSuQmCC

После того, как установка будет завершена, проверьте запущена ли СУБД:

sudo systemctl status mariadb

wEaZzYIsi6wzQAAAABJRU5ErkJggg==

Теперь установка MariaDB завершена и можно переходить к настройке.

Настройка MariaDB в Ubuntu 20.04

1. Первоначальная настройка

Сразу после установки MariaDB ещё не готова к работе. Для обеспечения её безопасности необходимо выполнить команду:

На первом этапе программа попросит вас ввести пароль от учетной записи root именно от самой СУБД MariaDB (не путать с пользователем root в операционной системе). Так как во время установки программа не предлагала ввести нам пароль, зададим его на данном этапе. При появлении фразы Enter current password for root (enter for none): нажимаем на клавишу Enter.

Далее при появлении фразы Switch to unix_socket authentication [Y/n], введите y, для переключения авторизации на Unix сокеты и нажмите клавишу Enter.

Далее появится фраза Change the root password? [Y/n], введите y, для того чтобы изменить пароль root и нажмите Enter, затем задайте два раза пароль:

uba1jiaxlydlDPznnUzDrGxyf+HyJxHbSZ1kutAAAAAElFTkSuQmCC

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

wVXfOnit0KHLgAAAABJRU5ErkJggg==

2. Создание базы данных

Теперь СУБД готова к работе. Давайте создадим первую базу данных. Чтобы подключиться к базе данных, выполните в терминале команду:

sudo mysql -u root -p

D5lCr2gGi6EmAAAAAElFTkSuQmCC

Сначала введите пароль от своей учетной записи root операционной системы и только потом пароль пользователя root от самой СУБД (который вы задавали на предыдущем этапе).

Для создания базы данных с именем test_database выполните SQL команду:

CREATE DATABASE test_database;

x99QcZoMP4iXwAAAABJRU5ErkJggg==

Затем необходимо создать пользователя и дать ему все права на эту базу данных, чтобы ваше приложение могло с ней работать:

CREATE USER 'test_user' IDENTIFIED BY 'password';

Wraji+cacv7m1fLp280v8HUnyH7ViHO64AAAAASUVORK5CYII=

У нашего пользователя имя text_user и пароль password. Теперь дадим ему права на созданную ранее базу данных:

GRANT ALL ON *.* TO 'test_user'@localhost IDENTIFIED BY 'password';

Как удалить MariaDB из Ubuntu 20.04

Чтобы удалить MariaDB Ubuntu, достаточно выполнить команду:

sudo apt -y purge mariadb-server mariadb-client

PlOM0hRp4SX1O0Mkt306k32w9gkkxtf4PHXx+Uk0YAxAgeSYSOcmTp2ROiLo9lL35N4o4dIMQ30n6aeIB0qzNA0T310ZZ+dA2BRr6pGe2+C8owpyKqHWGKLlGeQG+L8BOA5D05lQfrAAAAAASUVORK5CYII=

Затем очистите систему от пакетов, которые установились автоматически:

sudo apt -y autoremove

И можно удалить файлы базы данных, которые находятся по адресу /var/lib/mysql/

sudo rm -Rf /var/lib/mysql

Выводы

В этой статье мы разобрали, как выполняется установка MariaDB в Ubuntu 20.04. Как видите, процесс практически не отличается от установки MySQLЕсли вам нужна база данных с поддержкой всех самых современных возможностей и нововведений, обязательно следует выбрать MariaDB. А что вы предпочитаете, MariaDB или MySQL?

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

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

Удаление MySQL в Ubuntu

В Ubuntu MySQL имеет такое же имя пакетов, сюда относятся mysql-server и mysql-client. Если вы хотите удалить MariaDB, то здесь пакеты будут называться по другому: mariadb-server mariadb-client.

1. Версия MySQL

Давайте сначала посмотрим, какая версия MySQL у вас установлена. Для этого выполните:


Затем вы можете посмотреть установленные пакеты с помощью пакетного менеджера:

sudo apt search mysql-server


2. Удаление MySQL

Остановите сервис базы данных:

sudo systemctl stop mysqld


Чтобы удалить MySQL с сохранением настроек и файлов конфигурации, нужно использовать опцию remove:

sudo apt remove mysql-server mysql-common mysql-server-core-* mysql-client-core-*

Однако, если вы хотите удалить базу данных полностью, вместе со всеми её конфигурационными файлами, нужно использовать purge:

sudo apt purge mysql-server mysql-common mysql-server-core-* mysql-client-core-*

Также нужно зайти в каталог /var/lib/mysql и удалить оттуда файлы базы данных, если они вам больше не нужны:

sudo rm -Rf /var/lib/mysql/

И удалите папку конфигурационных файлов, если она осталась:

sudo rm -Rf /etc/mysql/

Не забудьте про логи:

sudo rm -rf /var/log/mysql

Удалите пользователя и группу, созданные для MySQL:

sudo deluser --remove-home mysql
sudo delgroup mysql

3. Удаление PPA

Если вы устанавливали новую версию базы данных из PPA, и этот репозиторий вам больше не нужен, его тоже желательно удалить. На данный момент официальный репозиторий MySQL устанавливается в стиле CentOS с помощью deb-пакета, который можно скачать на официальном сайте. Вам достаточно его удалить:

sudo apt purge mysql-apt-config

Если ваш репозиторий добавлялся по другому, вы можете найти его и удалить в папке /etc/apt/sources.list.d/. Файлы репозиториев MySQL будут содержать в своём имени слова mysql или mariadb. В моём случае таких файлов нет:


Выводы

В этой небольшой статье мы разобрались, как удалить MySQL Ubuntu с помощью пакетного менеджера. Как видите, просто удалить пакет недостаточно, нужно удалить ещё несколько файлов, если вы хотите полностью очистить свою систему от ненужных файлов.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Оцените статью:

(7 оценок, среднее: 4,14 из 5)

Об авторе

2 комментария

что делать в такой ситуации:

$ sudo apt purge mysql-server mysql-common mysql-server-core-* mysql-client-core-*
Reading package lists. Done
Building dependency tree
Reading state information. Done
Note, selecting 'mysql-server-core-5.0' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.1' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.5' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.6' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.7' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-8.0' for glob 'mysql-server-core-*'
Package 'mysql-server-core-5.7' is not installed, so not removed
Package 'mysql-server-core-5.5' is not installed, so not removed
Package 'mysql-server-core-5.6' is not installed, so not removed
Package 'mysql-server-core-5.0' is not installed, so not removed
Package 'mysql-server-core-5.1' is not installed, so not removed
Note, selecting 'mysql-client-core-5.0' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.1' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.5' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.6' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.7' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-8.0' for glob 'mysql-client-core-*'
Package 'mysql-client-core-5.7' is not installed, so not removed
Package 'mysql-client-core-5.5' is not installed, so not removed
Package 'mysql-client-core-5.6' is not installed, so not removed
Package 'mysql-client-core-5.0' is not installed, so not removed
Package 'mysql-client-core-5.1' is not installed, so not removed
Package 'mysql-client-core-8.0' is not installed, so not removed
Package 'mysql-server-core-8.0' is not installed, so not removed
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
default-mysql-client : Depends: mysql-client-8.0 but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

что делать в такой ситуации?

$ sudo apt purge mysql-server mysql-common mysql-server-core-* mysql-client-core-*
Reading package lists. Done
Building dependency tree
Reading state information. Done
Note, selecting 'mysql-server-core-5.0' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.1' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.5' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.6' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-5.7' for glob 'mysql-server-core-*'
Note, selecting 'mysql-server-core-8.0' for glob 'mysql-server-core-*'
Package 'mysql-server-core-5.7' is not installed, so not removed
Package 'mysql-server-core-5.5' is not installed, so not removed
Package 'mysql-server-core-5.6' is not installed, so not removed
Package 'mysql-server-core-5.0' is not installed, so not removed
Package 'mysql-server-core-5.1' is not installed, so not removed
Note, selecting 'mysql-client-core-5.0' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.1' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.5' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.6' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-5.7' for glob 'mysql-client-core-*'
Note, selecting 'mysql-client-core-8.0' for glob 'mysql-client-core-*'
Package 'mysql-client-core-5.7' is not installed, so not removed
Package 'mysql-client-core-5.5' is not installed, so not removed
Package 'mysql-client-core-5.6' is not installed, so not removed
Package 'mysql-client-core-5.0' is not installed, so not removed
Package 'mysql-client-core-5.1' is not installed, so not removed
Package 'mysql-client-core-8.0' is not installed, so not removed
Package 'mysql-server-core-8.0' is not installed, so not removed
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
default-mysql-client : Depends: mysql-client-8.0 but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Читайте также: