Я использую 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.
Любой совет будет принят во внимание.






Я не уверен, почему вы сменили пользователя. Возможно, это не лучшая идея. Но при условии, что на то есть веская причина, ниже объясняется ваша ситуация:
Похоже, что 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, я просто инициализирую datadir с помощью mysql. Теперь я думаю, что это вполне возможно, по вашим словам. Я так благодарен.
Я изменил "mysql" на свое имя пользователя, потому что думал, что мне нужно войти в систему как системный пользователь "mysql" для подключения к серверу, точно так же, как "Второй - mysql @ localhost, у него тоже нет пароля, но вы должны "пользователь системы" mysql "для подключения" указан. Я совершенно не прав?