如何修复 brew 安装的 MariaDB,它挂在 `mysql.server stop` 上并且没有停止?

sun*_*sen 5 macos homebrew mariadb

这个问题不是mariadb server: I can't stop the server with `mysql.server stop`

我不想在启动时运行 MariaDB,所以brew services不是一个选项。

MariaDB 版本是10.4.11-MariaDB.

sun*_*sen 11

以为我找到了罪魁祸首。

查看mysql.server( cat /usr/local/bin/mysql.server)的源代码,我发现mysql.server startrunmysqld_safe像我 ( whoami)一样运行,这正是我所期望的。

现在,我还发现 running 会mysql.server stop运行一个su_kill运行suas的函数,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
}
Run Code Online (Sandbox Code Playgroud)

不确定我是否做错了什么,但根据文档,运行mysql.server start是在 brew 安装时启动 MariaDB 的正确方法。

无论如何,要修补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
Run Code Online (Sandbox Code Playgroud)

  • `sed:/usr/local/bin/mysql.server:就地编辑仅适用于常规文件`对我不起作用 (4认同)