### 4.3.3 mysql.server — MySQL 服务器启动脚本

[](<>)

Unix 和类 Unix 系统上的 MySQL 发行版包括一个名为[**mysql.server**](mysql-server.html)，它使用启动 MySQL 服务器[**mysqld\_安全的**](mysqld-safe.html).它可以用于 Linux 和 Solaris 等使用 System V 风格的运行目录来启动和停止系统服务的系统。它也被用于 MySQL 的 macOS 启动项使用。

[**mysql.server**](mysql-server.html)是 MySQL 源代码树中使用的脚本名称。安装的名称可能不同（例如，[**mysqld**](mysqld.html)要么[**mysql**](mysql.html)）。在下面的讨论中，调整名称[**mysql.server**](mysql-server.html)适合您的系统。

笔记

对于某些 Linux 平台，从 RPM 或 Debian 软件包安装 MySQL 包括用于管理 MySQL 服务器启动和关闭的 systemd 支持。在这些平台上，[**mysql.server**](mysql-server.html)和[**mysqld\_安全的**](mysqld-safe.html)没有安装，因为它们是不必要的。有关详细信息，请参阅[第 2.5.9 节，“使用 systemd 管理 MySQL 服务器”](using-systemd.html).

使用[**mysql.server**](mysql-server.html)脚本，从命令行调用它`开始`要么`停止`论据：

```
mysql.server start
mysql.server stop
```

[**mysql.server**](mysql-server.html)将位置更改为 MySQL 安装目录，然后调用[**mysqld\_安全的**](mysqld-safe.html).要以某个特定用户身份运行服务器，请添加适当的`用户`选项`[mysqld]`全球集团`/etc/my.cnf`选项文件，如本节后面所示。（您可能必须编辑[**mysql.server**](mysql-server.html)如果您在非标准位置安装了 MySQL 的二进制发行版。修改它以在运行之前将位置更改为正确的目录[**mysqld\_安全的**](mysqld-safe.html).如果你这样做，你的修改版本[**mysql.server**](mysql-server.html)以后升级 MySQL 可能会被覆盖；制作您可以重新安装的编辑版本的副本。）

[**mysql.server 停止**](mysql-server.html)通过向服务器发送信号来停止服务器。您也可以通过执行手动停止服务器[**mysqladmin 关闭**](mysqladmin.html).

要在您的服务器上自动启动和停止 MySQL，您必须将启动和停止命令添加到您的服务器中的适当位置`/etc/rc*`文件：

-   如果您使用 Linux 服务器 RPM 包 (`MySQL-服务器-*`版本`*.rpm`)，或本地 Linux 软件包安装，[**mysql.server**](mysql-server.html)脚本可能安装在`/etc/init.d`有名字的目录`mysqld`要么`mysql`.看[第 2.5.4 节，“使用 Oracle 的 RPM 包在 Linux 上安装 MySQL”](linux-installation-rpm.html)，有关 Linux RPM 软件包的更多信息。

-   如果您从源分发版安装 MySQL 或使用不安装的二进制分发格式[**mysql.server**](mysql-server.html)自动，您可以手动安装脚本。它可以在`支持文件`MySQL 安装目录下或 MySQL 源代码树中的目录。将脚本复制到`/etc/init.d`有名字的目录[**mysql**](mysql.html)并使其可执行：

    ```
    cp mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    ```

    安装脚本后，激活它以在系统启动时运行所需的命令取决于您的操作系统。在 Linux 上，您可以使用**chkconfig**：

    ```
    chkconfig --add mysql
    ```

    在某些 Linux 系统上，似乎还需要以下命令才能完全启用[**mysql**](mysql.html)脚本：

    ```
    chkconfig --level 345 mysql on
    ```

-   在 FreeBSD 上，启动脚本通常应该进入`/usr/local/etc/rc.d/`.安装`mysql.server`脚本为`/usr/local/etc/rc.d/mysql.server.sh`启用自动启动。这`rc(8)`手册页指出此目录中的脚本仅在其基本名称与`*.sh`shell 文件名模式。目录中存在的任何其他文件或目录都将被静默忽略。

-   作为上述设置的替代方案，某些操作系统还使用`/etc/rc.local`要么`/etc/init.d/boot.local`在启动时启动其他服务。要使用此方法启动 MySQL，请将如下命令附加到相应的启动文件中：

    ```
    /bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'
    ```

-   对于其他系统，请查阅您的操作系统文档以了解如何安装启动脚本。

[**mysql.server**](mysql-server.html)从`[mysql.server]`和`[mysqld]`选项文件的部分。为了向后兼容，它还读取`[mysql_server]`部分，但要保持最新状态，您应该将这些部分重命名为`[mysql.server]`.

[](<>)

您可以添加选项[**mysql.server**](mysql-server.html)在全球范围内`/etc/my.cnf`文件。一个典型的`我的.cnf`文件可能如下所示：

```
[mysqld]
datadir=/usr/local/mysql/var
socket=/var/tmp/mysql.sock
port=3306
user=mysql

[mysql.server]
basedir=/usr/local/mysql
```

这[**mysql.server**](mysql-server.html)脚本支持下表中显示的选项。如果指定，他们*必须*放在选项文件中，而不是放在命令行中。[**mysql.server**](mysql-server.html)仅支持`开始`和`停止`作为命令行参数。

[](<>)

**表 4.7 mysql.server 选项-文件选项**

| 选项名称 | 描述 | 类型 |
| ---- | --- | --- |
| [`基于的`](mysql-server.html#option_mysql_server_basedir) | MySQL安装目录的路径 | 目录名称 |
| [`数据目录`](mysql-server.html#option_mysql_server_datadir) | MySQL数据目录的路径 | 目录名称 |
| [`pid文件`](mysql-server.html#option_mysql_server_pid-file) | 服务器应在其中写入其进程 ID 的文件 | 文件名 |
| [`服务启动超时`](mysql-server.html#option_mysql_server_service-startup-timeout) | 等待服务器启动多长时间 | 整数 |

-   [](<>) [`基于=*`目录名`*`](mysql-server.html#option_mysql_server_basedir)

    [](<>)[](<>)

    MySQL 安装目录的路径。

-   [](<>) [`数据目录=*`目录名`*`](mysql-server.html#option_mysql_server_datadir)

    [](<>)[](<>)

    MySQL 数据目录的路径。

-   [](<>) [`pid文件=*`文件名`*`](mysql-server.html#option_mysql_server_pid-file)

    [](<>)[](<>)

    服务器应在其中写入其进程 ID 的文件的路径名。服务器在数据目录中创建文件，除非给出绝对路径名来指定不同的目录。

    如果没有给出这个选项，[**mysql.server**](mysql-server.html)使用默认值`*`主机名`*.pid`.传递给的 PID 文件值[**mysqld\_安全的**](mysqld-safe.html)覆盖在`[mysqld_safe]`选项文件组。因为[**mysql.server**](mysql-server.html)读取`[mysqld]`选项文件组，但不是`[mysqld_safe]`组，您可以确保[**mysqld\_安全的**](mysqld-safe.html)调用时获得相同的值[**mysql.server**](mysql-server.html)就像手动调用时一样`pid文件`在这两个设置`[mysqld_safe]`和`[mysqld]`团体。

-   [](<>) [`服务启动超时=*`秒`*`](mysql-server.html#option_mysql_server_service-startup-timeout)

    [](<>)[](<>)

    等待确认服务器启动的时间（以秒为单位）。如果服务器在这段时间内没有启动，[**mysql.server**](mysql-server.html)退出并出现错误。默认值为 900。值为 0 表示根本不等待启动。负值意味着永远等待（没有超时）。
