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

MySQL - популярная система управления базами данных с открытым исходным кодом. Несмотря на то, что в последнее время набирает популярность PostgreSQL и форк MySQL - MariaDB созданный разработчиком оригинальной MySQL, сама MySQL всё ещё остается популярной.

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

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

Для Ubuntu 22.04 доступна только версия MySQL 8. Версия 5.7 считается уже устаревшей и для неё пакеты в новой версии дистрибутива не собирались. Вы можете установить MySQL 8 из официальных репозиториев или же из репозитория разработчиков. На момент написания статьи там находятся одинаковые версии пакетов, но Ubuntu 22.04 только недавно вышла, к концу её срока поддержки ситуация может изменится.

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

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

sudo apt update

Затем выполните такую команду для установки MySQL сервера и клиента:

sudo apt install mysql-server mysql-client

Установка из репозиториев разработчиков

Установка MySQL в Ubuntu 22.04 из репозиториев разработчиков немного сложнее. Сначала необходимо добавить этот репозиторий в систему. Для загрузите deb пакет с конфигурацией репозитория из официального сайта:

 

Сайт может предложить вам зарегистрироваться, но это не обязательно, просто нажмите кнопку No thanks, just start my download:

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

sudo dpkg -i ~/Загрузки/mysql-apt-config

В процессе настройки пакета вам будет необходимо ответить на несколько вопросов установщика. На первом экране выберите Ок и нажмите Enter:

На втором экране вы можете настроить версии компонентов. Поскольку сейчас доступна только одна версия MySQL, то здесь можно оставить всё по умолчанию. Просто спуститесь на пункт Ок с помощью стрелок вверх/вниз и нажмите Enter:

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

sudo apt update

И установите MySQL:

sudo apt install mysql-server mysql-client

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

Вне зависимости от того какой способ установки вы выбрали, во время установки MySQL задаст вам несколько вопросов. Сначала необходимо указать пароль root:

Затем этот пароль необходимо ввести ещё раз для подтверждения:

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

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

А затем установщик предложит оставить новый метод авторизации или вернутся на старый. Клиентские библиотеки для MySQL в Ubuntu уже собраны с поддержкой нового метода, так что его можно оставить:

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

mysql_secure_installation

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

Если же вы уже включили его и не знаете что делать дальше, посмотрите эту статью. Далее утилита спросит нужно ли менять пароль root. Тут тоже можно ответить n, так как пароль у вас уже установлен ранее:

На все остальные вопросы нужно отвечать утвердительно:

  • Remove anonymous users - удалить аноноимных пользователей
  • Disallow root login remotely - отключить удалённые подключения для root пользователя, это касается только удалённых подключений, подключения с localhost удалёнными не считаются.
  • Remove test database and access to it - удалить тестовую базу данных.
  • Reload privilege tables now - перезагрузить таблицу привелений.

 

На этом всё. При такой настройке использовать только sudo для подключения к mysql из консоли нельзя. Если вы попытаетесь это сделать то получите ошибку Access Denied. Теперь, для того чтобы подключится к MySQL с помощью консольного клиента необходимо ввести пароль root заданный ранее:

mysql -u root -p

Как исправить ошибку SET PASSWORD has no significance for user root@localhost

Если вы во время установки MySQL не задали пароль root, то в качестве метода авторизации будет выбран unix_socket. При использовании этого метода в качестве пользователя root может авторизироваться только суперпользователь системы или пользователь с правами sudo. Когда mysql_secure_installation попытается поменять пароль, mysql вам сообщит что:

SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

Что можно примерно перевести как: Выполнять метод SET PASSWORD для 'root'@'localhost' нет смысла потому что выбранный метод авторизации не поддерживает сохранение данных авторизации. Если вы хотите изменить параметры авторизации используйте ALTER USER.

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

sudo mysql

В окружении SQL выполните такую команду:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_пароль';

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

exit;

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

Обратите внимание, что теперь вы не сможете подключится к mysql через sudo без пароля, так как теперь используется метод авторизации по паролю. Если вы хотите вернуть всё как было, после выполнения mysql_secure_installation, подключитесь к MySQL используя пароль и выполните:

ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;

Как удалить MySQL в Ubuntu

Удалить MySQL в Ubuntu 22.04 довольно просто. Если вы хотите просто удалить пакет, оставив конфигурацию используйте команду:

sudo apt remove mysql-server mysql-client

Если же вы хотите полностью удалить MySQL используйте команду purge:

×

sudo apt purge mysql-server mysql-client

Выводы

В этой статье мы рассмотрели как установить MySQL в Ubuntu 22.04, а также как выполнить первоначальную настройку и избежать возможных проблем.

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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (21 оценок, среднее: 4,62 из 5)
Загрузка...

21 комментарий

  1. Anna 12 мая, 2017 Ответить
  2. serii 18 сентября, 2017 Ответить
  3. Андрей 24 декабря, 2017 Ответить
  4. Janis 26 апреля, 2018 Ответить
  5. Валерий 23 мая, 2019 Ответить
    • Kamil 15 июля, 2020 Ответить
  6. Che Rchill 11 июня, 2020 Ответить
  7. Никита 27 сентября, 2020 Ответить
  8. Стас 29 сентября, 2020 Ответить
  9. Евгений 10 декабря, 2020 Ответить
  10. Евгений 10 декабря, 2020 Ответить
  11. Ёr 27 апреля, 2021 Ответить
  12. Ёr 27 апреля, 2021 Ответить
  13. Павел 10 мая, 2021 Ответить
  14. Алекс 14 мая, 2021 Ответить
  15. Алекс 12 июня, 2022 Ответить
  16. Николай 12 августа, 2022 Ответить
  17. Александр 14 октября, 2022 Ответить
  18. Александр 15 октября, 2022 Ответить

Ответить

 Для отправки комментариев необходимо принять политику конфиденциальности - политика конфиденциальности