MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Он быстрый, простой в использовании, масштабируемый и неотъемлемая часть популярных стеков LAMP
и LEMP
.
В этом руководстве объясняется, как установить и защитить MySQL в Ubuntu 20.04.
Содержание
Подготовка
Убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка MySQL в Ubuntu
На момент написания этой статьи последней версией MySQL, доступной в репозиториях Ubuntu, была версия MySQL 8.0. Для его установки выполните следующие команды:
sudo apt update
sudo apt install mysql-server
После завершения установки служба MySQL запустится автоматически. Чтобы убедиться, что сервер MySQL работает, введите:
sudo systemctl status mysql
Выходные данные должны показать, что служба включена и работает:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-04-28 20:59:52 UTC; 10min ago
Main PID: 8617 (mysqld)
Status: "Server is operational"
...
Обеспечение безопасности MySQL
Установка MySQL поставляется со сценарием mysql_secure_installation
который позволяет легко повысить безопасность сервера базы данных.
Вызвать скрипт без аргументов:
sudo mysql_secure_installation
Вам будет предложено настроить VALIDATE PASSWORD PLUGIN
который используется для проверки надежности паролей пользователей MySQL и повышения безопасности:
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: y
Существует три уровня политики проверки пароля: низкий, средний и надежный. Нажмите y
если вы хотите настроить плагин проверки пароля, или любую другую клавишу, чтобы перейти к следующему шагу:
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
В следующем запросе вам будет предложено установить пароль для пользователя root MySQL:
Please set the password for root here.
New password:
Re-enter new password:
Если вы настроите плагин проверки пароля, сценарий покажет вам силу вашего нового пароля. Введите y
чтобы подтвердить пароль:
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
Затем вас попросят удалить анонимного пользователя, ограничить доступ пользователя root к локальному компьютеру, удалить тестовую базу данных и перезагрузить таблицы привилегий. Вы должны ответить y
на все вопросы.
Войти как root
Для взаимодействия с сервером MySQL из командной строки используйте клиентскую утилиту MySQL, которая устанавливается как зависимость пакета сервера MySQL.
В MySQL 8.0 пользователь root по умолчанию аутентифицируется плагином auth_socket
.
Плагин auth_socket
аутентифицирует пользователей, которые подключаются с localhost
через файл сокета Unix. Это означает, что вы не можете пройти аутентификацию как root, указав пароль.
Чтобы войти на сервер MySQL как пользователь root, введите:
sudo mysql
Вам будет представлена оболочка MySQL, как показано ниже:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 12
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
Если вы хотите войти на свой сервер MySQL как root с помощью внешней программы, такой как phpMyAdmin, у вас есть два варианта.
Первый — изменить метод аутентификации с auth_socket
на mysql_native_password
. Вы можете сделать это, выполнив следующую команду:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'very_strong_password';
FLUSH PRIVILEGES;
Второй рекомендуемый вариант — создать нового выделенного административного пользователя с доступом ко всем базам данных:
GRANT ALL PRIVILEGES ON *.* TO 'administrator'@'localhost' IDENTIFIED BY 'very_strong_password';
Выводы
Мы показали вам, как установить MySQL в Ubuntu 20.04. Теперь, когда ваш сервер базы данных запущен и работает, следующим шагом может быть изучение того, как управлять учетными записями пользователей и базами данных MySQL .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Этот пост является частью серии Как установить LAMP Stack в Ubuntu 20.04. Другие сообщения из этой серии:
- Как установить Apache в Ubuntu 20.04
- Как установить PHP в Ubuntu 20.04
- Как настроить виртуальные хосты Apache в Ubuntu 20.04
- Защитите Apache с помощью Let’s Encrypt в Ubuntu 20.04