Запуск mysqld с правами root

Я хотел запустить mysqld как пользователь root.

Я использую Ubuntu 21.04 и установил mysql-сервер .

Версия MySQL:

mysql  Ver 8.0.25-0ubuntu0.21.04.1 for Linux on x86_64 ((Ubuntu))

Изменение владельца файла на root

chown -R root /var/lib/mysql

/etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]
user        = root
pid-file    = /var/run/mysqld/mysqld.pid
socket  = /var/run/mysqld/mysqld.sock
port        = 3306
datadir = /var/lib/mysql

Когда я запускаю службу MySQL через:

sudo service mysql start

, я получаю ошибка:

mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Tue 2021-05-25 08:29:56 PDT; 23s ago
    Process: 2413 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 2421 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
   Main PID: 2421 (code=exited, status=1/FAILURE)
     Status: "Server startup in progress"
      Error: 13 (Permission denied)

Однако, если я изменю права доступа к файлу / var / lib / mysql обратно пользователю mysql , служба запустится.

Пожалуйста, дайте мне знать, как я могу запустить это как root.

Если я делаю что-то не так, предложите четкие шаги.

Ссылка: [1]: https://dev.mysql.com/doc/refman/8.0/en/changing-mysql-user.html

1
задан 3 June 2021 в 15:11

2 ответа

Обычно не рекомендуется запускать mysql от имени пользователя root !!

Однако это ваш вызов, ваша ошибка Permission denied , что означает, что вы пытаетесь запустить процесс как пользователь / группа mysql. Поскольку вы используете systemd для запуска службы mysql, проверьте конфигурацию службы systemd:

/lib/systemd/system/mysql.service

Измените пользователя и группу на root:

[Service]
Type=forking
User=mysql
Group=mysql

Не забудьте перезагрузите демон systemd после изменений:

systemctl daemon-reload
0
ответ дан 28 July 2021 в 11:35

Ответ находится в приведенной вами ссылке

В Linux при установке с использованием репозитория MySQL или пакетов RPM сервер MySQL mysqld должен быть запущен локальным пользователем операционной системы mysql. Запуск другим пользователем операционной системы не поддерживается скриптами init, которые входят в состав репозиториев MySQL.

На Unix (или Linux для установок, выполняемых с помощью пакетов tar.gz), сервер MySQL mysqld может быть запущен и запущен любым пользователем.

Поэтому, чтобы запустить mysqld от имени root, вам нужно установить его из пакета tar.gz. Тогда шагов, которые вы уже попробовали, должно быть достаточно.

https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/binary-installation.html содержит инструкции по установке mysql, а https://dev.mysql.com/downloads/mysql/ содержит ссылки на скачивание.

Я должен отметить, что обычно не хорошая идея запускать mysqld от имени root. Похоже, что вы знаете об этом и пытаетесь исследовать возможные эксплойты, но другие зрители могут быть не столь внимательны к безопасности.

0
ответ дан 28 July 2021 в 11:35

Другие вопросы по тегам:

Похожие вопросы: