MariaDB: Manjaro: право собственности на datadir сбрасывается на mysql: mysql после каждой перезагрузки

Я использую mariadb 10.5.9-1 на Manjaro 5.10.23-1.

Я инициализировал каталог базы данных mariadb с помощью этой команды:

$ sudo mariadb-install-db --user=shaouai --basedir=/usr --datadir=/var/lib/mysql

После инициализации каталога данных, разрешения и владение /var/lib/mysql:

$ ls -ld /var/lib/mysql
drwx------ 5 shaouai root 4096 Apr 10 00:08 mysql
$ ls -lh /var/lib/mysql
total 109M
-rw-rw---- 1 shaouai shaouai  24K Apr 10 00:08 aria_log.00000001
-rw-rw---- 1 shaouai shaouai   52 Apr 10 00:08 aria_log_control
-rw-rw---- 1 shaouai shaouai  972 Apr 10 00:08 ib_buffer_pool
-rw-rw---- 1 shaouai shaouai  12M Apr 10 00:08 ibdata1
-rw-rw---- 1 shaouai shaouai  96M Apr 10 00:08 ib_logfile0
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 mysql
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 performance_schema
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 test

И есть еще один каталог /run/mysqld, в котором файл mysqld.sock находится по умолчанию, когда сервер запущен и работает, имеет разрешения и право собственности:

$ ls -ld /run/mysqld/
drwxr-xr-x 2 shaouai shaouai 60 Apr 10 08:31 /run/mysqld/

Я понятия не имею, когда был создан /run/mysqld, возможно, первый раз сервер успешно запустился.

mysqld_safe --datadir=/var/lib/mysql может успешно запустить сервер.

Но проблема в том, что после каждой перезагрузки разрешения и права собственности на /var/lib/mysql и /run/mysqld сбрасывались на mysql:mysql:

$ ls -ld /var/lib/mysql
drwx------ 5 mysql mysql 4096 Apr 10 00:08 mysql
$ ls -lh /var/lib/mysql
total 109M
-rw-rw---- 1 shaouai shaouai  24K Apr 10 00:08 aria_log.00000001
-rw-rw---- 1 shaouai shaouai   52 Apr 10 00:08 aria_log_control
-rw-rw---- 1 shaouai shaouai  972 Apr 10 00:08 ib_buffer_pool
-rw-rw---- 1 shaouai shaouai  12M Apr 10 00:08 ibdata1
-rw-rw---- 1 shaouai shaouai  96M Apr 10 00:08 ib_logfile0
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 mysql
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 performance_schema
drwx------ 2 shaouai shaouai 4.0K Apr 10 00:08 test
$ ls -ld /run/mysqld/
drwxr-xr-x 2 mysql mysql 60 Apr 10 08:31 /run/mysqld/

Таким образом, из-за различных «доступов отказано» сервер mariadb не запустился.

Есть один вопрос, такой же, как у меня.

Здесь - это полный вывод systemctl cat mariadb.service.

Любой совет будет принят во внимание.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
9
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не уверен, почему вы сменили пользователя. Возможно, это не лучшая идея. Но при условии, что на то есть веская причина, ниже объясняется ваша ситуация:

Похоже, что mysqld_safe мог изменить разрешения. Если вы запускаете этот способ тестирования, добавьте к аргументам --user=shaouai.

Чтобы разрешить systemd по умолчанию запускаться от имени пользователя shaouai

systemctl edit mariadb.service

Добавлять:

[Service]
User=shaouai
Group=shaouai

Потом:

chown -R shaouai: /var/lib/mysql /run/mysqld/

Потом systemctl restart mariadb.service.

Это запустит службу от имени этого пользователя вместо пользователя mysql по умолчанию.

Я изменил "mysql" на свое имя пользователя, потому что думал, что мне нужно войти в систему как системный пользователь "mysql" для подключения к серверу, точно так же, как "Второй - mysql @ localhost, у него тоже нет пароля, но вы должны "пользователь системы" mysql "для подключения" указан. Я совершенно не прав?

shaouai 10.04.2021 05:41

Если я могу подключиться к серверу и мне не нужно быть системным пользователем mysql, я просто инициализирую datadir с помощью mysql. Теперь я думаю, что это вполне возможно, по вашим словам. Я так благодарен.

shaouai 10.04.2021 06:17

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