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 -V
Кроме того, желательно проверить, запущенна ли служба 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 wget https://dev.mysql.com/get/mysql-apt-config_0.8.12-1_all.deb
Затем установите его:
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
Перед тем как вы сможете полноценно использовать только что установленную базу данных, необходимо выполнить ее первоначальную настройку. Для этого был разработан специальный скрипт, выполните его:
sudo mysql_secure_installation
На первом шаге настраивается плагин валидации пароля. Чтобы его включить нажмите Y, или его можно не включать. Затем надо задать сложность пароля, который позволит установить этот плагин. Здесь 0 означает слабый пароль, а 2 - сложный. Когда плагин будет настроен введите пароль root и подтвердите, что хотите использовать именно его:
Введите Y для отключения анонимного доступа к MySQL, затем ещё раз Y чтобы запретить подключаться к базе от имени root удаленно:
Снова Y, чтобы удалить тестовую базу данных. Затем, обновите привилегии для пользователей:
После завершения настройки вы можете подключиться к пользователя root к серверу баз данных из командной строки:
sudo mysql -u root
Здесь нам необходимо создать пользователя, от имени которого мы будем использовать базу данных, а также саму базу данных. Для этого воспользуемся командами SQL. Сначала создаем базу данных:
Далее создадим пользователя:
Слова my_user и password нужно заменить на свои имя пользователя и пароль. Дальше нужно дать права пользователю на управление этой базой данных:
Или вы можете дать права только на несколько инструкций:
Если какую-либо инструкцию нужно запретить, удалите ее:
После завершения работы с правами нужно их обновить:
Чтобы убедиться что нет никого лишнего, вы можете вывести список пользователей:
Также вы можете посмотреть полномочия для нужного пользователя:
Теперь установка 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. Как видите, это не очень трудно, хотя и требует некоторых знаний и немного времени на то, чтобы со всем разобраться. Надеюсь, эта информация была для вас полезной.
> sudo systemctl staus mysql
*status
Не потрудитесь исправить отпечатку " sudo systemctl staus mysql",
я сразу подумал, что у меня что-то не установилось.
Исправил.
добрый день,
спасбио за статью!
у меня вместо:
mysql> SELECT user,host,password FROM mysql.user;
сработало:
mysql> SELECT user, host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+------------------+-----------+-------------------------------------------+
| root | localhost | *6A7A490FB9DC8C33C2B025A91737077A7E9CC5E5 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *8A2ECED366D879D5A1C2F9FD7BF080C2584129DB |
| a | localhost | *464719AB5EB2E5CCC904977466497009634378D6 |
+------------------+-----------+-------------------------------------------+
5 rows in set (0,00 sec)
и видно что есть еще служебные пользователи, а зачем они?
Удаление БД не получается. Коррекно удаление будет командами ниже:
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean
Добрый день! Подскажите, после этого - Дальше наберите Y чтобы установить пароль root: Чтобы я не вводил пишет:
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded
Enter current password for root (enter for none):
Нашел ответ в интернете: https://www.versatilewebsolutions.com/blog/2015/05...
Вкратце:
1.Находим файл конфигураций my.cnf в каталоге /etc/mysql/ , и редактируем его - добавляем в самом низу файла
[mysqld]
plugin-load-add = auth_socket.so
и сохраняем файл(С этим возникнут проблемы если делать это через Nautilus тем же geditом. В терминале можно ввести
gksu gedit /путь/к/папке/с_файлом/файл
предварительно выполнив sudo apt install gksu, если пакет gksu неустановлен, подробнее тут: https://losst.ru/kak-redaktirovat-fajly-v-ubuntu
2.Перезагружаем mysql командой
sudo systemctl restart mysql.service
3.Пробуем зайти в mysql без ввода пароля к mysql, вводим пароль только на требование системы(sudo)
sudo mysql -u root
После этих действий у меня все заработало!!!
Спасибо, что расписано по шагам!
Но мне не повезло: "Вы должны увидеть зеленую надпись Active Running и версию программы, которую устанавливали." - зеленая надпись есть, версии нет.
И при установке не было фиалетового экрана, как на скриншотах, и вопросов про рутовый пароль. Соответственно, споткнулся на пароле в конфигурационном скрипте: предыдущий не задан, а пустой не принимает. Пойду гуглить и курить мануалы...
попробуй сначала "sudo apt install mysql-server" выполнить
Спасибо автору статьи!
Установил MySQL на ubuntu server, создал пользователя user со всеми привелегиями. Пытаюсь удаленно к нему подключиться командой mysql -h 192.168.1.25 -u user -p выходит предложение ввести пароль. Ввожу пароль и выскакивает ошибка ERROR 2003 (HY000) Can't connect to MySQL server on '192.0168.1.25' (10060). Почему удаленно не подключается - не могу понять?
Всем спасибо. Уже разобрался. Надо настроить iptables для брандмауэра.
Вот, может кому пригодится для удаленного подключения к серверу:
sudo iptables -I INPUT -p udp --dport 3306 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 3306 --syn -j ACCEPT
sudo iptables-save
и перезагрузить сервер mysql
sudo /etc/init.d/mysql restart
добрый день.
при установке версии 5.7 по вашей инструкции на убунту 20.04, после выбора ОС Ubuntu 18.04 - bionic, MySQL Server and Cluster был предложен версии 8.0 - выбрал ее. на следующем шаге появилась возможность выбрать mysql 5.7. после подтверждения выбора установка вернулась к выбору MySQL product - уже с возможностью выбора MySQL Server and Cluster 5.7. Выбрал. И здесь установка зациклилась на этих двух шагах - выбор продукта (выбираю MySQL Server and Cluster 5.7) и выбор server version (выбираю mysql-5.7). Как быть?
автор, у вас косяк в инструкции. т.к. встречаюсь с ними на вашем ресурсе не в первый раз и потерял немало времени, подробнее не расскажу. посмотрите сами. при желании, вам исправить это недолго
Короче проще вернуться на Ubuntu 18.04 и не парить себе мозги, зачем разработчики впихнули восьмую версию мне не понятно.
Могли бы и сказать — ради других читателей. Спасибо, чё.