一、场景

  在实际生产环境中要求相对较高的企业对于root权限管控相对比较高,故而很多软件并非安装在root用户下(当然root用户权限也可管理,但正常情况下root权限并不会给业务使用方,而会给一个普通账户权限,例如mysql安装在普通用户下,普通用户只能操作用户下的权限。对于安装在普通用户下的mysql或者在root用户下安装了多实例的对于管理尤其是启停则不能使用mysql自带的mysqld start|stop|restart等进行启停,root用户则可以(注:root用户下自定义安装mysql则需要修改MySQLd 文件详细参考另外一篇博文:http://www.cnblogs.com/Steward-Xu/p/6991385.html))

  如果mysql安装至普通用户下如何启停mysql?

二、使用非脚本方式及手工执行mysql命令实现启动、停止。

  1、启动方法:使用mysqld_safe  --defaults-file=/data/mysql/my.cnf

  2、停止方法:mysqladmin  -u root -p'数据库密码' -S $mysql_sock shutdown  这是mysql官方推介使用的停止方式

    或者采用kill 进程号(不采用kill -9)在使用kill 前必须ps -ef | grep mysql 找到进程再用kill 停止进程。(Mysql 自带的脚本mysqld采用的是kill 进程方式停止)

  3、重启方法:必须先停止shutdown或者kill mysql进程才能使用mysqld_safe  --defaults-file=/data/mysql/my.cnf

  4、Mysql是否启动状态查看只能用ps -ef | grep mysql 查看是否有进程存在,有则表示mysql运行;无则表示mysql没有运行。

三、脚本实现:

#!/bin/sh
###################################################
# this script is created by xuxuedong. #
# e_mail:***@qq.com #
# qqinfo:*** #
# This is a script about Mysq startup and stop #
# version:1.1 #
###################################################
. /etc/init.d/functions
port=
mysql_user="root"
mysql_pwd="xuxuedong"
CmdPath="/iddb/mysql3307/bin"
mysql_sock="/iddb/${port}data/mysql.sock"
####start
. /etc/init.d/functions
function_start_mysql()
{
if [ ! -e "$mysql_sock" ]
then
action "starting Mysql...." /bin/true
/bin/sh ${CmdPath}/mysqld_safe --defaults-file=/iddb/mysql3307/my.cnf >& >/dev/null &
else
action "started Mysql." /bin/true
exit
fi
} function_status_mysql()
{
if [ ! -e "$mysql_sock" ]
then
echo " mysql is running!!!"
else
echo " mysql is not running!!!"
exit
fi
}
#####stop
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ]
then
action "stoped Mysql...." /bin/true
else
${CmdPath}/mysqladmin -u ${mysql_user} -p'xuxuedong' -S $mysql_sock shutdown
sleep ;
[ -eq $? ]&& action "stop Mysql." /bin/true
fi
}
case $ in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
status)
function_status_mysql
;;
restart)
function_stop_mysql
sleep ;
function_start_mysql
;;
*)
echo "USAG:start|stop|restart|status"
;;
esac

/iddb/mysld_start

  脚本使用方法:

  在普通用户下使用  sh  /iddb/mysql_start   start|stop|restart|status 可实现启停和状态查询

  也可在授权/iddb/mysql_start 为可执行及755情况下 使用/iddb/mysql_start   start|stop|restart|status实现启停和状态查询

mysql自己编写启停脚本的更多相关文章

  1. case编写的httpd简单启停脚本

    case编写的httpd简单启停脚本 #!/bin/bash HTTPD="/etc/init.d/httpd" . /etc/init.d/functions case &quo ...

  2. Linux 程序启停脚本

    start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...

  3. linux下的启停脚本

    linux下的根据项目名称,进行进程的启停脚本 #!/bin/bash JAVA=/usr/bin/java APP_HOME=/opt/program/qa/wechat APP_NAME=prog ...

  4. python启停脚本的编写

    先占个位置,打算记录一下启停python 的脚本start.sh,stop.sh的写法. 内容包括启动python脚本的方式,日志的重定向,获取进程id,以及杀掉进程. 参考文章: http://bl ...

  5. nginx启停脚本

    安装nginx时,源码包中未带官方的启动脚本,也就无法使用service nginxd start这种启动方式,查了下资料自己写了一个: #!/bin/bash #@version: #@author ...

  6. Oracle EBS R12的启停脚本

    以下脚本用root用户登录执行: 一.DB启停使用EBS提供的脚本ebs_start.shsu - oraprod -c "/d01/oracle/PROD/db/tech_st/10.2. ...

  7. Oracle BIEE启停脚本

    作为BI的开发人员,经常启停BI服务在所难免,启动的过程又比较长,命令需要不同目录切换,简直烦死人呢, 特意整理了linux中的启动脚本,将以下脚本存成biee.sh,后面的过程就相当简单了, 启动: ...

  8. liunx weblogic服务启停脚本

    #!/bin/bash #sh xx.sh start xx项目 例如:sh autoWeblogic.sh start bius #经测试发现weblogic 启动大概需要完全启动成功35秒左右 停 ...

  9. [sql]mysql启停脚本

    写了个较为完善的mysql多实例的启动停止脚本. [root@lanny 3307]# cat mysql #!/bin/sh [ $# != 1 ]&&{ echo "US ...

随机推荐

  1. 使用grunt js进行js的链接和压缩

    1,http://nodejs.org/download/ 安装nodejs 2,配置环境变量,将nodejs的安装目录放置在Path环境变量中 3,在cmd中 npm install -g grun ...

  2. opencv 知识点笔记

    1.Opencv中cvScalar是CV_RGB的宏,cvScalar的储存顺序是B-G-R,而CV_RGB的储存顺序是R-G-B

  3. Storm 1.0 新特性

    Storm 1.0.0版本增加了很多新的特性,可用性以及性能也得到了很大的改善,该版本是Storm发展历程上一个里程碑式的版本,主要特点如下. 性能提升 Storm 1.0.0版本最大的亮点就是性能提 ...

  4. JS-React:React.js

    ylbtech-JS-React:React.js react (软件行业名词) React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意 ...

  5. Android开发--数据存储之File文件存储

    转载来自:http://blog.csdn.net/ahuier/article/details/10364757,并进行扩充 引言:Android开发中的数据存储方式 Android提供了5种方式存 ...

  6. Eclipse -- 自动补齐设置和其他用法

    1:自动补齐设置:最简单的修改方式是:Windows——>Preferences——>Java-->Editor-->Content Asist,在Auto activatio ...

  7. Google浏览器如何加载本地文件

    Chrome浏览器加载本地文件 一般来说,为了安全起见,浏览器是不能通过load方法来加载本地文件的,load方法只能加载远程服务器上的文件. 在浏览器默认的情况下,试图加载一个本地文件,会出现交叉域 ...

  8. 20个Flutter实例视频教程-第02节: 底部导航栏制作-2

    视频地址: https://www.bilibili.com/video/av39709290?p=2 博客地址: https://jspang.com/post/flutterDemo.html#t ...

  9. Flutter实战视频-移动电商-39.路由_Fluro的路由配置和静态化

    39.路由_Fluro的路由配置和静态化 handler只是单个路由的配置,这节课我们要学习路由的整体配置 整体配置 新建routers.dart文件来做整体配置 detailsHandler就是我们 ...

  10. Jmeter之HTTP request

    1.下载Jmeter http://jmeter.apache.org/download_jmeter.cgi 2.解压,在bin目录下找到jmeter.bat,并双击打开. 3.添加线程组 4.添加 ...