Как я могу исправить установленную brew MariaDB, которая зависает на `mysql .server stop` и не останавливается? - PullRequest
1 голос
/ 27 января 2020

Этот вопрос не является дубликатом сервера mariadb: я не могу остановить сервер с помощью `mysql .server stop` .

Я не хочу запускать MariaDB при загрузке, поэтому brew services не вариант.

Версия MariaDB 10.4.11-MariaDB.

1 Ответ

1 голос
/ 27 января 2020

Думаю, я нашел виновника.

Взглянув на исходный код mysql.server (cat /usr/local/bin/mysql.server), я обнаружил, что запуск mysql.server start запускает mysqld_safe как я (whoami) что я и ожидал.

Теперь я также обнаружил, что при запуске mysql.server stop запускается su_kill функция, которая запускает su как mysql, что завершается ошибкой, поскольку пользователь mysql не существует на macOS.

user='mysql'

su_kill() {
  if test "$USER" = "$user"; then
    kill $* >/dev/null 2>&1
  else
    su - $user -s /bin/sh -c "kill $*" >/dev/null 2>&1
  fi
}

Не уверен, что я делаю что-то не так, но согласно документации 1019 *, запуск mysql.server start является правильным способом запуска MariaDB при установке brew.

В любом случае, для исправления mysql.server stop, запустите:

cp /usr/local/bin/mysql.server /usr/local/bin/mysql.server.backup
sed -i "" "s/user='mysql'/user=\`whoami\`/g" /usr/local/bin/mysql.server
...