5

我在执行命令“# find / -name mysqld”时感到困惑。因为 mysqld 位于以下四个地方:

  1. /usr/libexec/mysqld
  2. /etc/rc.d/init.d/mysqld
  3. /var/lock/subsys/mysqld
  4. /var/运行/mysqld

另外三个mysql守护进程的目的是什么?

4

1 回答 1

10

这里有以下解释

  • /usr/libexec/mysqld :实际的二进制可执行文件
  • /etc/rc.d/init.d/mysqld :服务启动文件(文本文件)
  • /var/run/mysqld : PID/run 文件夹(mysqld在这个文件夹中写入一个run文件)
  • /var/lock/subsys/mysqld:不确定

如果你运行which mysqld,你应该看到第一个

你永远不会直接运行它

当您运行时service mysqld start,它会调用/etc/rc.d/init.d/mysqld启动一个名为mysqld_safe(Run which mysqld_safe) 的程序。mysqld_safemysqld共同成为服务器守护进程。

反过来,mysqld_safe将启动 mysqld,然后检查退出代码。您可以运行less /etc/rc.d/init.d/mysqld并查看此内容。如果 mysqld 由于系统关闭或正常没有结束service mysql stop,mysqld_safe 将尝试重新启动mysqld

于 2012-07-12T05:18:16.947 回答