Сброс пароля root для MySQL или MariaDB в Ubuntu
Сброс пароля root для MySQL или MariaDB может потребоваться в различных ситуациях: забытый пароль, необходимость изменить устаревший пароль или унаследованная система без известных учетных данных. В этом руководстве мы рассмотрим, как выполнить сброс пароля root в операционной системе Ubuntu, обеспечивая безопасность и целостность вашей базы данных.
Предварительные требования
- Права суперпользователя (root) или возможность использовать sudo.
- Установленный MySQL или MariaDB сервер.
- Доступ к терминалу на вашем сервере или рабочей станции.
Остановка службы MySQL/MariaDB
Прежде чем начать процесс сброса пароля, необходимо остановить текущую работу службы базы данных.
Для MySQL: sudo service mysql stop
Для MariaDB: sudo service mariadb stop
Проверьте, что служба остановлена:
sudo service mysql status
или
sudo service mariadb status
Запуск сервера в безопасном режиме
Запустите сервер в безопасном режиме с опцией --skip-grant-tables, чтобы отключить проверку привилегий и паролей.
sudo mysqld_safe --skip-grant-tables &
Примечание: Символ & позволяет запустить процесс в фоновом режиме.
Вход в консоль MySQL/MariaDB без пароля
Теперь вы можете войти в консоль базы данных без пароля:
mysql -u root
Обновление пароля root
В зависимости от версии вашей базы данных, команды могут отличаться.
Для MySQL 5.7 и выше:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'новый_пароль';
Для более ранних версий MySQL и MariaDB:
UPDATE mysql.user SET authentication_string=PASSWORD('новый_пароль') WHERE User='root' AND Host='localhost';
Важно: Замените 'новый_пароль' на ваш новый надежный пароль.
Применение изменений
FLUSH PRIVILEGES;
Выход из консоли
EXIT;
Остановка безопасного режима сервера
Найдите PID (идентификатор процесса) запущенного сервера и завершите его работу.
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
Перезапуск службы MySQL/MariaDB
Для перезапуска службы используйте следующие команды:
Для MySQL: sudo service mysql start
Для MariaDB: sudo service mariadb start
Проверка нового пароля
Попробуйте войти в консоль базы данных с новым паролем:
mysql -u root -p
Когда будет запрошен пароль, введите новый пароль.
Дополнительные меры безопасности
После выполнения основных мер безопасности важно продолжать поддерживать и улучшать защиту вашей базы данных. Ниже приведены дополнительные рекомендации, которые помогут обеспечить безопасность MySQL или MariaDB.
- Используйте mysql_secure_installation
Этот встроенный скрипт поможет настроить базовые параметры безопасности:
mysql_secure_installation
- Создайте отдельных пользователей с минимальными привилегиями
Вместо использования учетной записи root для всех операций создавайте специальных пользователей для каждого приложения или задачи с необходимыми минимальными правами.
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE ON database.* TO 'user'@'localhost';
- Используйте ufw или другой брандмауэр для ограничения доступа к портам MySQL/MariaDB.
ufw allow from your_ip_address to any port 3306
Он позволит вам установить уровень сложности пароля, удалить анонимных пользователей, запретить удаленный вход root и удалить тестовую базу данных.
- Обновите пароли для всех учетных записей root, если их несколько.
- Ограничьте удаленный доступ к учетной записи root, редактируя файл конфигурации и устанавливая bind-address на 127.0.0.1.
- Регулярно создавайте резервные копии ваших баз данных и настроек.
Заключение
Сброс пароля root для MySQL или MariaDB в Ubuntu — это процесс, требующий внимательности и точности. Следуя этому руководству, вы сможете безопасно обновить пароль и восстановить доступ к вашей базе данных. Всегда помните о важности использования надежных паролей и регулярного обновления мер безопасности.