文档主页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  ...  /  mysql.server — MySQL 服务器启动脚本

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

在 Unix 和类 Unix 系统上的 MySQL 发行版包含一个名为 mysql.server 的脚本,它使用 mysqld_safe 启动 MySQL 服务器。它可以在 Linux 和 Solaris 等使用 System V 样式运行目录来启动和停止系统服务的系统上使用。它也由 macOS 的 MySQL 启动项使用。

mysql.server 是 MySQL 源代码树中使用的脚本名称。安装后的名称可能不同(例如,mysqldmysql)。在下文的讨论中,根据您的系统适当调整 mysql.server 的名称。

注意

对于某些 Linux 平台,从 RPM 或 Debian 包安装 MySQL 包含对 systemd 的支持,用于管理 MySQL 服务器的启动和关闭。在这些平台上,mysql.servermysqld_safe 不会被安装,因为它们不再需要。有关更多信息,请参见 第 2.5.9 节,“使用 systemd 管理 MySQL 服务器”.

要使用 mysql.server 脚本手动启动或停止服务器,请在命令行中使用 startstop 参数调用它。

mysql.server start
mysql.server stop

mysql.server 将更改位置到 MySQL 安装目录,然后调用 mysqld_safe。要以某个特定用户身份运行服务器,请在全局 /etc/my.cnf 选项文件的 [mysqld] 组中添加适当的 user 选项,如下面的部分所示。(您可能需要编辑 mysql.server,如果您已在非标准位置安装了二进制发行版的 MySQL。修改它以在运行 mysqld_safe 之前更改位置到正确的目录。如果您这样做,如果您将来升级 MySQL,您修改后的 mysql.server 版本可能会被覆盖;创建一个您可以在将来重新安装的已编辑版本的副本。)

mysql.server stop 通过向服务器发送信号来停止服务器。您也可以通过执行 mysqladmin shutdown 手动停止服务器。

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

  • 如果您使用 Linux 服务器 RPM 包(MySQL-server-VERSION.rpm),或本地 Linux 包安装,mysql.server 脚本可能已安装在 /etc/init.d 目录中,名为 mysqldmysql。有关 Linux RPM 包的更多信息,请参见 第 2.5.4 节,“使用 Oracle 的 RPM 包在 Linux 上安装 MySQL”.

  • 如果您从源代码发行版安装 MySQL,或使用不自动安装 mysql.server 的二进制发行版格式,您可以手动安装该脚本。它可以在 MySQL 安装目录下的 support-files 目录或 MySQL 源代码树中找到。将脚本复制到 /etc/init.d 目录,并将其命名为 mysql,并使其可执行。

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

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

    chkconfig --add mysql

    在某些 Linux 系统上,以下命令似乎也是必要的,才能完全启用 mysql 脚本

    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][mysqld] 部分读取选项。为了向后兼容,它也读取 [mysql_server] 部分,但为了保持最新,您应该将这些部分重命名为 [mysql.server]

您可以在全局 /etc/my.cnf 文件中添加 mysql.server 的选项。一个典型的 my.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 只支持 startstop 作为命令行参数。

表 6.8 mysql.server 选项文件选项

选项名称 描述 类型
basedir MySQL 安装目录的路径 目录名称
datadir MySQL 数据目录的路径 目录名称
pid-file 服务器应写入其进程 ID 的文件 文件名
service-startup-timeout 等待服务器启动的时间 整数

  • basedir=dir_name

    MySQL 安装目录的路径。

  • datadir=dir_name

    MySQL 数据目录的路径。

  • pid-file=file_name

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

    如果未指定此选项,则 mysql.server 使用默认值 host_name.pid。传递给 mysqld_safe 的 PID 文件值会覆盖 [mysqld_safe] 选项文件组中指定的任何值。因为 mysql.server 读取 [mysqld] 选项文件组,但不读取 [mysqld_safe] 组,所以您可以确保从 mysql.server 调用时 mysqld_safe 获取的值与手动调用时相同,方法是在 [mysqld_safe][mysqld] 组中都放置相同的 pid-file 设置。

  • service-startup-timeout=seconds

    等待服务器启动确认的时间(以秒为单位)。如果服务器未在此时间内启动,则 mysql.server 会退出并显示错误。默认值为 900。值为 0 表示根本不等待启动。负值表示无限期等待(无超时)。