Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  mysql.server — MySQL Server Startup Script

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

在 Unix 和类 Unix 系统上的 MySQL 发行版中,包括一个名为 mysql.server 的脚本,它使用 mysqld_safe 启动 MySQL 服务器。它可以在使用 System V 风格运行目录的系统上运行,如 Linux 和 Solaris,以及 macOS 上的 MySQL 启动项中使用。

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

Note

对于一些Linux平台,MySQL从RPM或Debian包安装时,包括了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.server在将来升级MySQL时可能会被覆盖;请复制并重新安装您的编辑版本。)

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

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

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

  • 如果您从源代码分布或不自动安装mysql.server的二进制分布格式安装MySQL,那么您可以手动安装脚本。它可以在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)手册页指出,这些脚本只有当它们的基本名称与*壳文件名模式匹配时才会被执行。目录中的任何其他文件或目录都将被忽略。

  • 作为前述设置的替代,某些操作系统还使用/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 配置文件选项

Option Name Description Type
basedir MySQL 安装目录的路径 目录名称
datadir MySQL 数据目录的路径 目录名称
pid-file 服务器应该写入其进程 ID 的文件 文件名
service-startup-timeout 等待服务器启动所需的时间 整数

  • basedir=dir_name

    MySQL 安装目录的路径。

  • datadir=dir_name

    MySQL 数据目录的路径。

  • pid-file=文件名

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

    如果没有提供这个选项,mysql.server 使用默认值 主机名.pidmysqld_safe 接收到的PID文件值将覆盖在 [mysqld_safe] 选项文件组中指定的任何值。因为 mysql.server 只读取 [mysqld] 选项文件组而不是 [mysqld_safe] 组,你可以确保当从 mysql.server 调用时,mysqld_safe 接收到的值与手动调用时相同,只要在 [mysqld_safe][mysqld] 组中都设置了相同的 pid-file 设置。

  • service-startup-timeout=

    等待服务器启动确认的时间长度,单位为秒。如果在这个时间内服务器没有启动,mysql.server 将以错误状态退出。默认值为900秒。一旦设置为0,则不等待服务器启动;负数值表示永远等待(无超时)。