- Установка MySQL в Ubuntu 22.04
- Установка MySQL в Ubuntu 22.04
- Установка из официальных репозиториев
- Установка из репозиториев разработчиков
- Настройка MySQL в Ubuntu
- Как исправить ошибку SET PASSWORD has no significance for user root@localhost
- Как удалить MySQL в Ubuntu
- Выводы
- Как установить MySQL на Ubuntu 20.04
- Установка MySQL 8.0
- Настройка MySQL
- Настройка аутентификации с помощью пароля
- Автоматический запуск MySQL
Установка 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 только недавно вышла, к концу её срока поддержки ситуация может изменится.
Установка из официальных репозиториев
Для установки пакетов из официальных репозиториев сначала необходимо обновить списки пакетов в системе:
Затем выполните такую команду для установки 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 install mysql-server mysql-client
Настройка MySQL в Ubuntu
Вне зависимости от того какой способ установки вы выбрали, во время установки MySQL задаст вам несколько вопросов. Сначала необходимо указать пароль root:
Затем этот пароль необходимо ввести ещё раз для подтверждения. Вы можете оставить пароль пустым, тогда MySQL будет использовать авторизацию Unix для входа при запуске клиента mysql из консоли, а удалённого доступа вообще не будет. Однако это только добавит проблем вам в будущем, поэтому лучше задать пароль root сейчас.
Далее установщик предупредит о том, что MySQL использует новый способ авторизации. Вы можете ознакомиться с информации в этом окне:
А затем установщик предложит оставить новый метод авторизации или вернутся на старый. Клиентские библиотеки для MySQL в Ubuntu уже собраны с поддержкой нового метода, так что его можно оставить:
Если вы не указали пароль root во время установки или установщик не запросил этот пароль, его нужно установить сейчас. Для этого выполните такую команду:
mysqladmin password -u root -p
Команда два спросит у вас новый пароль и подтверждение. Далее нужно выполнить mysql_secure_installation, для того чтобы защитить ваш MySQL сервер. Если вы задали пароль на этапе установки MySQL, то можете запускать команду без sudo. Если же нет, сначала необходимо установить пароль для пользователя root. Читайте об этом в следующем разделе.
После того как вы введете пароль 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 заданный ранее:
Как исправить ошибку 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 если он не задан вы не можете, поэтому программа зациклится и не пустит вас дальше. Самый простой способ сделать это — использовать команду mysqladmin:
sudo mysqladmin password -u root -p
Если вы не хотите использовать mysqladmin, то можете сделать всё то же самое с помощью SQL запроса. Сначала необходимо подключится к MySQL и поменять метод авторизации и заодно пароль:
В окружении SQL выполните такую команду:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘ваш_пароль’;
Затем вы можете закрыть клиент MySQL используя команду:
Далее необходимо запустить 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:
Выводы
В этой статье мы рассмотрели как установить MySQL в Ubuntu 22.04, а также как выполнить первоначальную настройку и избежать возможных проблем.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как установить MySQL на Ubuntu 20.04
MySQL – система управления базами данных (СУБД), используемая чаще всего в веб-разработке, но и не только там. MySQL является, наверное, одной из самых распостранённых СУБД. Её сильные стороны – быстрота, надёжность, универсальность. Ниже о том, как MySQL можно установить на сервер Ubuntu 20.04.
Установка MySQL 8.0
Первым делом, как всегда, необходимо обновить репозитории пакетов сервера:
Теперь можно переходить к установке пакетов MySQL:
$ sudo apt install mysql-server
На момент написания статьи в репозиториях доступна версия 8.0.22. Проверить версию установленного пакета можно при помощи команды:
На этом процесс установки MySQL закончен. Теперь, необходимо внести некоторые изменения в конфигурацию установленной СУБД.
Настройка MySQL
Настройка заключается в изменении некоторых наиболее уязвимых опций СУБД, которые используются по умолчанию. Данное действие производится при помощи встроенного в MySQL специального скрипта:
$ sudo mysql_secure_installation
Для начала в открывшемся диалоге необходимо определить, нужно ли производить настройку компоненты валидации пароля, используемой при проверке надёжности пароля в MySQL. Если вы даёте согласие на использование валидации пароля, скрипт предложит вам установить уровень валидации, выбрав из 0 – низкий, 1 – средний, 2 – высокий:
На следующем шаге нужно установить пароль для учётной записи root в MySQL:
Скрипт оценит надёжность введённого пароля и запросит вашего согласия на его использование:
В последующем диалоге можно использовать ответ Yes для удаления анонимных пользователей СУБД, запрещения удалённого подключения под рутовой учётной записью MySQL, удаления дефолтной БД test и для загрузки новых таблиц привилегий:
Настройка аутентификации с помощью пароля
Для аутентификации учётной записи root MySQL по умолчанию используется плагин auth_socket. Это во многом более безопасно и удобно, но может осложнять взаимодействие СУБД с внешними приложениями в случаях, когда необходимо предоставить им доступ к пользователю MySQL.
Чтобы использовать пароль для подключения к СУБД под учётной записью root нужно изменить метод аутентификации. В нашем случае это – auth_socket.
В командной строке необходимо подключиться к MySQL:
и вывести список аккаунтов СУБД, в котором виден используемый ими метод аутентификации (колонка plugin), командой:
mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;
Вывод данной инструкции должен выглядеть примерно так:
Для изменения метода аутентификации учётной записи root нужно использовать команду:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'psswd';
где значение psswd необходимо заменить на более надёжный пароль, который будет в дальнейшем использоваться учётной записью root для авторизации в MySQL.
Если вы планируете использовать MySQL с приложениями PHP, такими как phpMyAdmin, то возможно, будет актуально настроить аутентификацию с помощью более старого плагина mysql_native_password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'psswd
';
Для применения произведённых изменений необходимо выполнить инструкцию:
Проверить применение изменений можно набрав команду:
mysql> SELECT user, authentication_string, plugin,host FROM mysql.user;
Выход из оболочки MySQL производится командой:
Если для подключения к MySQL будет использоваться специально созданная для этого учётная запись, то необходимо войти в MySQL командой:
либо, если аутентификация рутовой учётной записи производится с помощью пароля:
Далее, создайте нового пользователя:
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'psswd';
Для предоставления новому пользователю прав на доступ к таблицам базы данных выполните инструкцию:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
После чего можно выйти из оболочки MySQL:
Автоматический запуск MySQL
Каким бы способом не был установлен MySQL, его запуск должен производиться автоматически. Чтобы убедиться в этом, необходимо набрать:
$ systemctl status mysql.service
Также, активировать MySQL можно командой:
$ sudo systemctl start mysql
Теперь на вашем сервере произведена базовая установка СУБД MySQL.