最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

mysql随Linux开机自动启动_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 17:26:01
文档

mysql随Linux开机自动启动_MySQL

mysql随Linux开机自动启动_MySQL:在MySQL的管理过程中,偶尔会遇到一些PC Server宕机或者重启,这时我需要在主机启动后再将MySQL服务启动。一般情况下,这项工作都是简单的。但是,当面临上百台或者更多的MySQL主机的时候,这种偶尔可能会很多,这种偶尔还会在半夜或者凌晨发生,如果
推荐度:
导读mysql随Linux开机自动启动_MySQL:在MySQL的管理过程中,偶尔会遇到一些PC Server宕机或者重启,这时我需要在主机启动后再将MySQL服务启动。一般情况下,这项工作都是简单的。但是,当面临上百台或者更多的MySQL主机的时候,这种偶尔可能会很多,这种偶尔还会在半夜或者凌晨发生,如果

  在MySQL的管理过程中,偶尔会遇到一些PC Server宕机或者重启,这时我需要在主机启动后再将MySQL服务启动。一般情况下,这项工作都是简单的。但是,当面临上百台或者更多的MySQL主机的时候,这种“偶尔”可能会很多,这种“偶尔”还会在半夜或者凌晨发生,如果每次都手动操作,这是很繁琐的。更重要的是,如果因此而打断了凌晨的美梦是不值得的。

  要实现随开启自动启动mysqld,我们需要搞定如下几个问题:

  1. Linux开机自动启动脚本放在哪儿?

  一般的,作为服务器使用的Linux一般会以“完全多用户模式(Multi-User Mode with Networking)”级别来启动,这种情况下Linux在启动时会运行/etc/rc.d/rc3.d/下的全部脚本。例如我们在这个目录下会看到脚本”/etc/rc.d/rc3.d/S90crond”,意味着开机启动时会运行S90crond脚本。

  2. Linux如何运行这些脚本?

  既然已经知道自动启动脚本该放在哪儿了,一切就好办。我们只需要将一个启动MySQL的脚本放过去就好了。下面是我们的一个简单的启动脚本v0.1 mysqldauto

  $vi mysqldauto

  #!/bin/sh

  # Version: 0.1 by orczhou@gmail.com

  /opt/mysql/bin/mysqld_safe --user=mysql & #这里需要修改为你的mysqld_safe目录

  $chmod +x mysqldauto

  $mv mysqldauto /etc/rc.d/init.d/

  $ln -s /etc/rc.d/init.d/mysqldauto /etc/rc.d/rc3.d/S99mysqld

  这样我们就把创建的mysqldauto脚本放到了/etc/rc.d/rc3.d/下面(注意这里使用了link的方式),mysqld可以自动启动了。

  这有两个问题需要解释:

  * * * * * 为什么不直接在目录/etc/rc.d/rc3.d/下创建文件,而要创建一个软连接?这并不是必须的。但是这样做是有很多好处的(后面会解释),不过这样做至少会看起来更加专业。

  * * * * * 为什么文件名要用S99mysqld?这是规则,在rc3.d下面的脚本如果以字母S开头,那么执行时Linux会给它传递一个start参数(如果以字母K开头,则会传递stop参数);S后面接个数字,表示了这个脚本的启动顺序,如果目录rc3.d下还有S98*那么它会在S99之前运行。(看到这儿,你可以猜测一下前面我们为什么要创建软连接了)

  好了,自此你的mysqld就已经可以随Linux开机自动启动了。

  3. 怎样做更专业些?

  上面这样做,已经可以解决问题了,不过写法多少有些“山寨”,下面我们看看怎样改造一下。

  * * * * * 改造1:处理参数start。既然前面提到以字母S开头的脚本会自动传递一个参数start,K则会传递stop。那么我再做如下修改:

  $vi mysqldauto

  #!/bin/sh

  # Version: 0.2 by orczhou@gmail.com

  MYSQLHOME=/opt/mysql #这里需要修改为你的mysql安装目录

  if [ $# -ge 1 ];then

  mysqldProc=`ps -ef|grep -E "mysqld.+safe"|grep -v "grep"|wc -l`

  if [ $1 = "stop" ] ;then

  if [ $mysqldProc -eq 1 ];then

  $MYSQLHOME/bin/mysqladmin -uroot shutdown

  fi

  elif [ $1 = "start" ];then

  if [ $mysqldProc -eq 0 ];then

  $MYSQLHOME/bin/mysqld_safe --user=mysql &

  fi

  fi

  fi

  做了如此改造后,我们脚本需要接收两个参数start stop了。如果你想让你mysqld在关闭主机的时候自动关闭,那么stop参数就可以起作用了:

  $ln -s /etc/rc.d/init.d/mysqldauto /etc/rc.d/rc0.d/K20mysqld

  这里做软连接好处就体现出来了,启动和关闭只需要用一个脚本就可以了。

  * * * * * 改造2:当你面临几十上百台主机的时候,MySQL的启动参数可能会不一样,例如备库启动时可能需要mysqld_safe –user=mysql –read_olny=1 &,这种情况怎么办呢?这里提供一个解决思路。

  在主机上运行一个脚本,探测当前mysqld的启动参数,然后写到一个指定的文件里。最后,在你的启动脚本中,读取这个文件里面的启动参数来启动mysqld。It works。

文档

mysql随Linux开机自动启动_MySQL

mysql随Linux开机自动启动_MySQL:在MySQL的管理过程中,偶尔会遇到一些PC Server宕机或者重启,这时我需要在主机启动后再将MySQL服务启动。一般情况下,这项工作都是简单的。但是,当面临上百台或者更多的MySQL主机的时候,这种偶尔可能会很多,这种偶尔还会在半夜或者凌晨发生,如果
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top