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

MySQL的SQL语句 - 数据库管理语句 - 其他管理语句 - RESTART 语句

数据库杂货铺 2021-04-30
782
RESTART 语句
 
    RESTART
     
    此语句停止并重新启动 MySQL 服务器。它需要 SHUTDOWN 权限。
     
    RESTART 的一个用途是当无法或不方便通过命令行访问服务器主机上的 MySQL 服务器时重新启动它。例如,SET PERSIST_ONLY 可以在运行时用于对只能在服务器启动时设置的系统变量进行配置更改,但仍必须重新启动服务器才能使这些更改生效。RESTART 语句提供了一种在客户端会话中执行此操作的方法,而不需要在服务器主机上进行命令行访问。
     
    注意
     
    在执行 RESTART 语句之后,客户端当前连接将丢失。如果启用了自动重新连接,则会在服务器重新启动后重新建立连接。否则,必须手动重新建立连接。
     
    成功的 RESTART 操作需要 mysqld 在具有监视进程的环境中运行,以检测为重新启动而执行的服务器关闭:
     
     在存在监视进程的情况下,RESTART 会导致 mysqld 终止,以便监视进程可以确定它应该启动一个新的 mysqld 实例。
     
     如果不存在监视进程,则 RESTART 失败并报错。
     
    这些平台为 RESTART 语句提供了必要的监视支持:
     
      mysqld 作为 Windows 服务或独立程序启动时(mysqld 分支,一个进程充当监视器,另一个进程充当服务器)。
     
     Unix 和类 Unix 系统使用 systemd mysqld_safe 管理 mysqld
     
    要配置监视环境以使 mysqld 启用 RESTART 语句,请执行以下操作:
     
    1. 在启动 mysqld 之前,将 MYSQLD_PARENT_PID 环境变量设置为启动 mysqld 进程的进程ID的值。
     
    2.  mysqld 由于使用 RESTART 语句而执行关机时,它返回退出代码 16
     
    3. 当监控进程检测到退出代码为 16 时,它会再次启动 mysqld。否则,它将退出。
     
    下面是一个在 bash shell 中实现的最小示例:
     
      #!/bin/bash

      export MYSQLD_PARENT_PID=$$

      export MYSQLD_RESTART_EXIT=16

      while true ; do
      bin/mysqld mysqld options here
      if [ $? -ne $MYSQLD_RESTART_EXIT ]; then
      break
      fi
      done
       
      Windows 上,实现 RESTART 的分支使得确定服务器进程用于调试变得更加困难。为了缓解这种情况,除了设置调试环境所做的其他操作之外,用 --gdb 启动服务器会抑制分支。在非调试设置中,--no-monitor 用于抑制监视器进程分支。对于以 --gdb --no-monitor 启动的服务器,执行 RESTART 会导致服务器简单地退出而不重新启动。
       
      Com_restart 状态变量跟踪 RESTART 语句的数目。因为状态变量在每次服务器启动时都会初始化,并且不会在重新启动过程中持续存在,所以 Com_restart 的值通常为零,但如果执行了 RESTART 语句但失败,则可以为非零。
       
       
       
      官方网址:
      https://dev.mysql.com/doc/refman/8.0/en/restart.html
      文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论