MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Это быстрый, простой в использовании, масштабируемый и неотъемлемая часть популярных стеков LAMP и LEMP.
В этой статье объясняется, как установить и защитить MySQL в Ubuntu 20.04.
Убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
На момент написания этой статьи последней версией 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_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на все вопросы.
Для взаимодействия с сервером 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 и базами данных.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
У вас ошибка.
GRANT ALL PRIVILEGES ON *.* TO ‘administrator’@’localhost’ IDENTIFIED BY ‘very_strong_password’;
это работает в MySQL 5, но в версии 8 выдаст ошибку. В 8 надо так:
CREATE USER ‘username’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL ON *.* TO ‘username’@’localhost’;