Я хотел запустить 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
Обычно не рекомендуется запускать 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
Ответ находится в приведенной вами ссылке
В 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. Похоже, что вы знаете об этом и пытаетесь исследовать возможные эксплойты, но другие зрители могут быть не столь внимательны к безопасности.