Крок 1 — Встановлення MySQL
Для встановлення MySQL на Ubuntu 20.04 ви можете скористатися репозиторієм пакетів APT. На даний момент у репозиторії Ubuntu доступна версія MySQL 8.0.19.
Перед початком встановлення оновіть індекс пакетів на сервері, виконавши наступну команду:
sudo apt update
Потім виконайте встановлення пакету mysql-server:
sudo apt install mysql-server
Під час цього процесу встановлення MySQL буде виконано без запиту налаштування пароля або внесення інших змін до конфігурації. Проте таке встановлення може залишити систему вразливою, що ми виправимо на наступному етапі.
Крок 2 — Налаштування MySQL
Після встановлення MySQL необхідно запустити вбудований скрипт безпеки СКБД. Цей скрипт змінює деякі налаштування безпеки за замовчуванням, наприклад, вимикає віддалений доступ для користувача root та видаляє тестових користувачів.
Запустіть скрипт безпеки за допомогою команди sudo:
sudo mysql_secure_installation
Скрипт запитає вас серію питань, що дозволить налаштувати параметри безпеки MySQL. У першому питанні ви зможете обрати, чи хочете ви використовувати плагін перевірки пароля для підвищення безпеки вашого пароля MySQL.
Якщо ви вирішите використовувати плагін перевірки пароля, скрипт попросить вас обрати рівень перевірки пароля. Ви можете обрати рівень, вказавши 2, що вимагатиме, щоб ваш пароль містив не менше восьми символів і включав малі і великі літери, цифри і спеціальні символи.
Після запуску скрипта безпеки MySQL вас попросять встановити пароль для користувача root MySQL. Введіть і підтвердіть надійний пароль на ваш вибір.
Якщо ви скористалися плагіном перевірки пароля, ви отримаєте інформацію про його надійність. Потім скрипт запитає, чи хочете ви продовжувати використовувати введений вами пароль чи ввести новий. Якщо ви задоволені надійністю введеного пароля і хочете продовжити його використання, введіть Y для підтвердження цього.
Далі ви можете використовувати клавіші Y та ENTER, щоб прийняти відповіді за замовчуванням для всіх наступних питань. При виборі цих відповідей будуть видалені анонімні користувачі та тестова база даних, відключений віддалений доступ для користувача root, а також завантажені нові правила, щоб внесені зміни вступили в дію в MySQL.
Зверніть увагу, що хоча ви встановили пароль для користувача root в MySQL, аутентифікація з використанням пароля при підключенні до оболонки MySQL для цього користувача не налаштована. Якщо потрібно, ви можете змінити цей параметр на кроці 3.
Крок 3 — Налаштування аутентифікації та прав користувачів (необов'язково)
У Ubuntu, при запуску MySQL версії 5.7 (та пізніших), за умовчанням для користувача root MySQL використовується аутентифікація за допомогою плагіна auth_socket, а не пароля. У багатьох випадках це забезпечує вищий рівень безпеки та зручності, проте це також може ускладнити ситуацію, якщо потрібно надати доступ зовнішній програмі (наприклад, phpMyAdmin).
Щоб використовувати пароль для підключення до MySQL як користувача root, необхідно змінити метод аутентифікації з auth_socket на інший плагін, наприклад, caching_sha2_password або mysql_native_password. Для цього відкрийте командний рядок MySQL через термінал:
sudo mysql
Потім перевірте, який метод аутентифікації використовують ваші користувачі MySQL за допомогою наступної команди:
mysql>SELECT user,authentication_string,plugin,host FROM mysql.user;
У даному прикладі видно, що користувач root використовує метод аутентифікації за допомогою плагіна auth_socket. Щоб налаштувати обліковий запис root для використання методу аутентифікації за допомогою пароля, виконайте команду ALTER USER, щоб змінити використаний плагін аутентифікації та встановити новий пароль.
Не забудьте замінити 'password' на надійний пароль, зважаючи на те, що ця команда замінить пароль root, встановлений на кроці 2:
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ваш_новий_пароль';
Після виконання цієї команди користувач root зможе увійти в систему за допомогою вказаного вами пароля.
|
Потім виконайте команду FLUSH PRIVILEGES, яка змусить сервер перезавантажити надані таблиці та ввести в дію зміни:
mysql>FLUSH PRIVILEGES;
Перевірте методи аутентифікації, які використовуються для кожного з ваших користувачів, щоб підтвердити, що користувач root більше не використовує плагін auth_socket для аутентифікації:
mysql>SELECT user,authentication_string,plugin,host FROM mysql.user;
Результати цього прикладу показують, що тепер користувач root MySQL проходить аутентифікацію за допомогою caching_sha2_password. Після переконання в цьому на вашому сервері, вийдіть з оболонки MySQL:
mysql>exit
Як альтернативу, хтось може вважати, що для його робочого процесу краще підходить підключення до MySQL за допомогою спеціально призначеного користувача. Щоб створити такого користувача, відкрийте оболонку MySQL знову:
sudo mysql
|
Створіть нового користувача та встановіть для нього надійний пароль:
mysql> CREATE USER 'pcinfouser'@'localhost' IDENTIFIED BY 'пароль';
Потім надайте вашому новому користувачу відповідні права. Наприклад, ви можете дозволити користувачеві доступ до всіх таблиць у базі даних, а також можна додавати, змінювати і видаляти права користувача за допомогою цієї команди:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'pcinfouser'@'localhost' WITH GRANT OPTION;
Зверніть увагу, що на даний момент вам не потрібно виконувати команду FLUSH PRIVILEGES знову. Ця команда потрібна лише при зміні наданих таблиць застосуванням таких виразів, як INSERT, UPDATE або DELETE. Оскільки ви створили нового користувача замість зміни існуючого, команда FLUSH PRIVILEGES не потрібна.
Після цього вийдіть з оболонки MySQL:
mysql> exit
На закінчення перевіримо встановлення MySQL.
Шаг 4 — Перевірка MySQL
Незалежно від способу встановлення, MySQL повинна автоматично запускатися. Щоб перевірити це, виконайте команду для перевірки статусу:
systemctl status mysql.service
Результат буде приблизно такий:
Якщо MySQL не запускається, ви можете активувати його за допомогою команди:
sudo systemctl start mysql
Додатково для перевірки можна спробувати підключитися до бази даних за допомогою інструменту mysqladmin, який надає можливість виконання адміністративних команд. Наприклад, наступна команда дозволяє підключитися до MySQL як користувач root (-u root), запросити пароль (-p) та отримати версію сервера:
mysqladmin -u root -p version
Після виконання цієї команди вас попросять ввести пароль користувача root MySQL. Якщо підключення встановлено успішно, ви отримаєте інформацію про версію MySQL.
sudo mysqladmin -p -u root version
Результат повинен виглядати приблизно так:
Це означає, що система MySQL запущена і працює.
Заключення
Тепер на вашому сервері встановлена базова версія MySQL.