暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

原创 由迪 2020-11-15
557

Unix和类似Unix的系统上的MySQL发行版包括一个名为mysql.server的脚本,该脚本使用mysqld_safe启动MySQL服务器。它可以在使用System V风格的运行目录来启动和停止系统服务的系统(例如Linux和Solaris)上使用。适用于MySQL的macOS启动项也使用它。

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

注意

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

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

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) 只有当他们的基地名称匹配该目录中的脚本执行手册状态 *.shshell文件名模式。目录中存在的任何其他文件或目录都将被静默忽略。

  • 作为上述设置的替代方法,某些操作系统还可以在启动时使用/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仅支持 startstop作为命令行参数。

表4.7 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]组,因此可以通过 在和 组中放置相同的设置来确保 mysqld_safemysql.server调用时与手动调用时获得相同的值。 pid-file``[mysqld_safe]``[mysqld]

  • service-startup-timeout=*seconds*

    等待确认服务器启动的秒数。如果服务器在这段时间内没有启动,则 mysql.server退出并出现错误。默认值为900。值为0表示完全不等待启动。负值表示要永远等待(无超时)。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论