MySQL — популярная система управления реляционными базами данных с открытым исходным кодом, используемая многими разработчиками и организациями. При работе с MySQL важно уделять приоритетное внимание безопасности для защиты конфиденциальных данных. Однако иногда вы можете столкнуться с сообщением об ошибке: «Неустранимая ошибка: прочтите раздел «Безопасность» руководства, чтобы узнать, как запустить mysqld от имени пользователя root!» Эта ошибка обычно возникает при попытке запустить демон MySQL (mysqld) от имени пользователя root, что считается уязвимостью безопасности. В этой статье мы рассмотрим несколько способов решения этой проблемы и безопасного запуска mysqld без root-доступа.
Метод 1: использование службы Systemd
-
Создайте новый файл службы systemd:
sudo nano /etc/systemd/system/mysql.service -
Добавьте в файл следующее содержимое:
[Unit] Description=MySQL Server After=network.target [Service] ExecStart=/usr/sbin/mysqld --user=mysql StandardOutput=syslog SyslogIdentifier=mysql User=mysql Group=mysql [Install] WantedBy=multi-user.target -
Сохраните файл и выйдите из редактора.
-
Запустите службу MySQL:
sudo systemctl start mysql
Метод 2: использование mysqld_safe
-
Остановите работающую службу MySQL:
sudo systemctl stop mysql -
Запустите MySQL с помощью утилиты
mysqld_safe:sudo -u mysql mysqld_safe --skip-grant-tables &Эта команда запускает MySQL с опцией
--skip-grant-tables, которая позволяет обойти проверку привилегий пользователя. -
Подключиться к серверу MySQL как пользователь root:
mysql -u root -
Обновите пароль пользователя root:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';Замените
'new_password'на желаемый пароль. -
Сбросить привилегии и выйти из MySQL:
FLUSH PRIVILEGES; EXIT; -
Остановите процесс
mysqld_safe.
Метод 3. Использование Docker
-
Установите Docker в своей системе (если он еще не установлен).
-
Извлеките официальный образ MySQL Docker:
docker pull mysql -
Запустите новый контейнер MySQL от имени пользователя без полномочий root:
docker run --name mysql-container -e MYSQL_USER=mysql -e MYSQL_PASSWORD=password -e MYSQL_ROOT_PASSWORD=root_password -d mysqlЗамените
'password'и'root_password'на нужные пароли. -
Подключиться к контейнеру MySQL:
docker exec -it mysql-container mysql -u root -pВведите пароль root при появлении запроса.
Запуск MySQL от имени пользователя root создает угрозу безопасности, поэтому крайне важно найти альтернативные методы для обеспечения безопасности вашей базы данных. В этой статье мы рассмотрели три различных подхода к устранению проблемы «Неустранимая ошибка: прочтите раздел «Безопасность» руководства, чтобы узнать, как запустить mysqld от имени пользователя root!» ошибка. Следуя этим методам, вы сможете безопасно запускать mysqld, не ставя под угрозу безопасность вашей системы. Не забывайте всегда уделять приоритетное внимание безопасности при работе с базами данных.