Не удается использовать учетную запись пользователя/группы Windows «MariaDB», чтобы предоставить разрешение MariaDB на доступ к папке данных

Я пытаюсь обновить свою устаревшую базу данных MariaDB 10.3 и выполнил шаги руководства по удалению старой версии, установке новой версии (10.6) и копированию необходимых данных и INI-файлов в новую папку; Копирование папки «data» из предыдущей установочной папки 10.3 в новую установочную папку 10.6. Впоследствии новый экземпляр MariaDB не сможет получить доступ к этой папке данных из-за разрешений для папки.

Проверяя различия между скопированными разрешениями на папку «данные» и исходной папкой «данные», созданной при установке 10.6, я обнаружил, что в списке групп и имен пользователей есть запись, указанная как «MariaDB». Странно то, что я не могу найти, не говоря уже о том, чтобы добавить этого пользователя/группу в папку «данные», которую я копирую из своего старого местоположения 10.3.

Что это за группа пользователей Windows? Я не могу найти какую-либо документацию от MariaDB или какие-либо руководства, где найти или добавить эту группу пользователей. Единственное упоминание, которое я нашел об этом, находится в https://stackoverflow.com/a/69981074/9162516

... этот «групповой пользователь» не создается под «пользователями и группами» Windows. Таким образом, вы не можете добавить эту группу на вкладку безопасности и установить разрешение на другая папка.

Какого черта? Как я должен назначить разрешения для папки данных из более старой версии или если я хочу скопировать папку из внешнего источника, для которого еще не установлено это разрешение группы пользователей для этой папки и ее содержимого?

Результаты поиска Google присылают мне несвязанные руководства по созданию учетных записей пользователей базы данных MariaDB.

Я не знаю, какие «шаги руководства» вы имеете в виду. Если вы устанавливаете пакет MSI последней версии MariaDB, он обнаружит более старую установку и выполнит обновление.

Georg Richter 09.01.2023 10:21

Я использовал официальные руководства по обновлению , которые, как я позже обнаружил, предназначались только для инстансов Linux. Только когда я добрался до этого руководства: Обновление MariaDB в Windows, появилось примечание: «Важно: игнорируйте любые утверждения, которые говорят вам «просто удалите MySQL и установите MariaDB»....». Огромная документация не работает! Это не решает проблему, если я хочу скопировать в папку данных из внешнего источника. Как мне добавить группу пользователей "MariaDB" в такую ​​папку?

BenjaminWKI 10.01.2023 06:33

А как вы установили сервер MariaDB? Используя установщик .msi, загружая и извлекая двоичный пакет или из исходного кода?

Georg Richter 10.01.2023 11:59

Скачайте и запустите установщик MSI с официального сайта. С тех пор я переустановил старую версию и повторно запустил новую версию установщика, не удаляя старую версию, и она отлично обновила службу Windows БД и расположение папки. Но если мне потребуется внести резервную копию папки данных из другого места без разрешений или, коснувшись дерева, случайно удалить папку данных, как мне восстановить разрешения группы пользователей для недобавляемой группы пользователей?

BenjaminWKI 10.01.2023 14:06
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

В Windows нет пользователя или группы MariaDB и никогда не было. Служба работает под так называемой служебной учетной записью пользователя NT SERVICE\servicename, в 10.6. Служба работает под «NETWORK SERVICE» в более старых версиях.

(Проверить несложно, Запустите services.msc => найдите название вашей службы => справа «Свойства» => Войти)

Тому пользователю, который запускает сервис, нужен полный доступ к файлам в каталоге данных. Как вы предоставляете разрешения, либо с помощью инструментов командной строки, таких как icacls, либо щелкнув в проводнике, зависит от вас.

Теперь, если вы не удалили каталог данных в 10.6, а просто скопировали содержимое вашего старого каталога данных, все было бы в порядке. Это потому, что в Windows разрешения наследуются от родительского каталога, и они уже были правильными.

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

MariaDB/MySQL: частичное «общее» количество строк для перемещения временного окна
Обновите несколько строк из одного SQL UPDATE INNER JOIN с разными значениями
Получите последнюю и предыдущую для нескольких записей, используя IN, отсортированные по дате
Добавление миграции не работает и не дает полезного сообщения об ошибке
Доступ к XMLHttpRequest заблокирован политикой CORS, несмотря на то, что в контроллере включено перекрестное происхождение и установлен заголовок
Список всех объектов базы данных
Spring boot jpa findbyid() перестает работать после перезапуска приложения
Laravel + docker: SQLSTATE [HY000] [1130] Хосту «172.22.0.4» не разрешено подключаться к этому серверу MariaDB
Необходимо рассчитать возраст с помощью функции TIMESTAMPDIFF() на основе года рождения, но некоторые строки возвращают нулевое значение
Синтаксическая ошибка в хранимой процедуре MariaDB с параметром