Unix和类似Unix的系统上的MySQL发行版包括一个名为mysql.server的脚本,该脚本使用mysqld_safe启动MySQL服务器。它可以在使用System V风格的运行目录来启动和停止系统服务的系统(例如Linux和Solaris)上使用。适用于MySQL的macOS启动项也使用它。
mysql.server是MySQL源代码树中使用的脚本名称。安装的名称可能不同(例如, mysqld或 mysql)。在下面的讨论中,根据您的系统调整名称mysql.server。
注意
对于某些Linux平台,从RPM或Debian软件包安装的MySQL包括对管理MySQL服务器启动和关闭的系统支持。在这些平台上, 未安装mysql.server和 mysqld_safe,因为它们是不必要的。有关更多信息,请参见 第2.5.9节“使用systemd管理MySQL Server”。
要使用mysql.server脚本手动启动或停止服务器 ,请在命令行中使用start
或 stop
参数调用它:
shell> mysql.server start shell> mysql.server stop
复制
mysql.server将位置更改为MySQL安装目录,然后调用 mysqld_safe。要以某些特定用户身份运行服务器,请将适当的user
选项添加到[mysqld]
全局/etc/my.cnf
选项文件的组中 ,如本节稍后部分所示。(如果在非标准位置安装了MySQL的二进制发行版,则可能必须编辑 mysql.server。修改它以在运行mysqld_safe之前将位置更改为正确的目录 。如果这样做,则是修改后的mysql版本。服务器如果将来升级MySQL,可能会被覆盖;复制您可以重新安装的已编辑版本。)
mysql.server stop通过向服务器发送信号来停止服务器。您也可以通过执行mysqladmin shutdown手动停止服务器。
要在服务器上自动启动和停止MySQL,必须将启动和停止命令添加到/etc/rc*
文件中的适当位置 :
-
如果您使用Linux服务器RPM软件包()或本地Linux软件包安装,则 mysql.server脚本可能会安装在名称为或的目录中 。有关Linux RPM软件包的更多信息,请参见第2.5.4节“使用Oracle的RPM软件包在Linux上安装MySQL”。
MySQL-server-*
VERSION*.rpm``/etc/init.d``mysqld``mysql
-
如果从源代码发行版安装MySQL或使用不会自动安装mysql.server的二进制发行版格式安装 ,则可以手动安装脚本。可以
support-files
在MySQL安装目录下的目录中或MySQL源代码树中找到它。将脚本复制到/etc/init.d
名称为mysql的目录并使其可执行:shell> cp mysql.server /etc/init.d/mysql shell> chmod +x /etc/init.d/mysql
复制安装脚本后,激活脚本以在系统启动时运行所需的命令取决于您的操作系统。在Linux上,您可以使用chkconfig:
shell> chkconfig --add mysql
复制在某些Linux系统上,完全启用mysql 脚本似乎也需要以下命令:
shell> 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]
。
您可以在全局文件中为mysql.server添加选项/etc/my.cnf
。一个典型的 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仅支持 start
和stop
作为命令行参数。
表4.7 mysql.server选项-文件选项
选项名称 | 描述 | 类型 |
---|---|---|
basedir |
MySQL安装目录的路径 | 目录名 |
datadir |
MySQL数据目录的路径 | 目录名 |
pid-file |
服务器应在其中写入其进程ID的文件 | 文件名 |
service-startup-timeout |
等待服务器启动的时间 | 整数 |
-
MySQL安装目录的路径。
-
MySQL数据目录的路径。
-
服务器应在其中写入其进程ID的文件的路径名。除非给出绝对路径名以指定其他目录,否则服务器将在数据目录中创建文件。
如果未提供此选项,则mysql.server 使用默认值
*
host_name*.pid
。传递给mysqld_safe的PID文件值将 覆盖[mysqld_safe]
选项文件组中指定的任何值 。由于 mysql.server读取[mysqld]
选项文件组而不是[mysqld_safe]
组,因此可以通过 在和 组中放置相同的设置来确保 mysqld_safe从mysql.server调用时与手动调用时获得相同的值。pid-file``[mysqld_safe]``[mysqld]
-
service-startup-timeout=*
seconds*
等待确认服务器启动的秒数。如果服务器在这段时间内没有启动,则 mysql.server退出并出现错误。默认值为900。值为0表示完全不等待启动。负值表示要永远等待(无超时)。