1、前言

之前,遇到过在不同 linux 系统中启动或关闭 mysql,网上查询命令大都不一样,大致分为下面三种(以重启为例):

service mysql restart

service mysqld restart

service mysql.server restart

那么这几种究竟有什么区别,是版本原因还是配置原因?抽了个时间查询资料,搞明白了原因。

2、service 服务配置

直接说上面问题的答案,是配置的原因!

上面三个重启 mysql 的命令,本质是通过 service 来启动的。service 命令,顾名思义,就是用于管理 Linux 操作系统中服务的命令。可以用来启动、关闭和重新启动系统服务,还可以显示所有系统服务的当前状态。

但是,能够使用 service 命令进行操作的,就是已经注册成为 linux 的系统服务了。window 中也可以注册成为系统服务。那么如何注册成为系统服务呢?

注册成系统服务分为两步:

  • 第一步:编写一个 shell 服务脚本(有的程序是自带服务脚本的,可以不用自己写)
  • 第二步:将该脚本服务复制到/ect/init.d/目录下

下面以 mysql 为例,来说一下将 mysql 注册成系统服务。

第一步:找到服务脚本

mysql 是自带服务脚本的,其位置在 mysql 安装目录下的 support-file 目录中,比如 mysql 安装目录为/usr/local/mysql,则:

在这里插入图片描述

如上图,mysql.server 就是其自带的服务脚本(代码太长了,这里就不贴图看了,有兴趣自己可以打开看看其代码)。

第二步:将该脚本服务复制到/ect/init.d/目录下

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

OK,到了这一步,我们就可以明白 service mysqld restart 与 service mysql restart 的区别了。

如果/etc/init.d/目录下存在的是 mysql.server 命令,那么要重启 mysql,只能使用:service mysql restart 或者 service mysql.server restart。

如果你将 mysql.server 重命名为 mysqld,那么要使用 service 命令重启 mysql,就必须要使用 service mysql restart。

说白了,就是看看你的服务脚本名称是什么了!

注意:如果/etc/init.d 目录没有找到,可以找/etc/rc.d/init.d 目录,两者都是用来放服务脚本的,这两个目录一般不会同时存在,如果同时存在一般会存在软连接,具体可以参考:Linux 之 init.d、rc.d 文件夹说明

Logo

更多推荐