本文摘自PHP中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于service命令管理mysql启动和停止的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。安装完成mysql之后,每次启动和停止都很麻烦,有时候记不住去网上搜一下,看见大家都用service来进行服务的管理,试了一下,果然好用。推荐大家也要这么用。
启动和停止mysql服务
1 2 3 4 | # 启动
/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/ var /log/mysqld.log --pid-file=/ var /run/mysqld/mysqld.pid --socket=/tmp/mysql.sock
# 停止
kill `cat /usr/local/mysql/ var /mysqld.pid`
|
这样启动和停止需要记住mysql的路径和pid的保存位置,因此比较麻烦。
service 系统服务管理
service命令用于管理系统服务,比如启动(start),停止(stop),重启(restart),查看状态(status)等。service命令本身就是一个shell脚本,用于方便的调用该脚本来完成任务,它在/etc/init.d/目录下查找指定的服务脚本。
相关的命令还有:
chkconfig:用于查看、设置服务的运行级别
ntsysv:用于设置服务的自启动
service运行指定服务(称为System V初始脚本),只保留LANG和TERM两个环境变量,并设置当前路径为/。如果一个服务脚本想要由service进行管理,至少需要支持start和stop命令,并将脚本保存在/etc/init.d/目录下。
service的使用方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ## 命令格式
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
# 查看指定服务的命令行使用帮助
service <service>
## mysqld 举例
$ service mysqld
Usage: mysqld {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
# 启动、停止、重启指定服务
service <service> start|stop|restart
## mysqld举例restart,即先执行stop再执行start命令
$ service mysqld restart
Shutting down MySQL.. [ OK ]
Starting MySQL. [ OK ]
# 显示指定服务的状态
$ service mysqld status
MySQL running (27390) [ OK ]
# 显示所有服务的状态
service --status-all
# 查看系统服务列表,以及每个服务的运行级别
chkconfig --list
# 设置指定服务开机时是否自动启动
chkconfig <service> on|off
# 以全屏幕文本界面设置服务开机时是否自动启动
# 必须以root启动,空格切换状态,tab切换按钮,上下鼠标移动光标
ntsysv
|
除了用mysqld示例外,我们修改了主机名、IP地址等信息时,也要经常重启网络生效,此时可以调用:
1 | service network status|restart
|
用service管理mysqld服务
我们已经了解了基础的知识,现在就可以开始改造了,首先要在你的安装目录里找到mysql.server文件。
1 2 | $ locate mysql.server
/usr/local/mysql/support-files/mysql.server
|
这个文件在安装时初始化,其实也就是一个脚本文件,支持输入不同的参数执行不同的功能,我们可以查看它的start函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | # 根据输入的命令执行不同的脚本,首先判断是否为start
case "$mode" in
'start' )
# Start daemon
# Safeguard (relative paths, core dumps..)
cd $basedir
echo $echo_n "Starting MySQL"
# 查看该bin/mysqld_safe命令是否存在,如果不存在,就直接报错:找不到
if test -x $bindir /mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
# 直接执行mysqld_safe命令,并传入参数,然后创建pid文件
$bindir /mysqld_safe --datadir= "$datadir" --pid-file= "$mysqld_pid_file_path" $other_args >/dev/null &
wait_for_pid created "$!" "$mysqld_pid_file_path" ; return_value=$?
# Make lock for RedHat / SuSE
if test -w "$lockdir"
then
touch "$lock_file_path"
fi
exit $return_value
else
log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
fi
;;
'stop' )
|
然后将它复制到/tmp/init.d/目录下:
1 | cp /usr/local/mysql/support-files/mysql.server /tmp/init.d/mysqld
|
此时,就可以直接调用service来进行启动了:
遇到的一些问题
阅读剩余部分
相关阅读 >>
mysql死锁是什么意思
mysql笔记之视图的使用详解
mysql 5.7版本是怎么修改密码的?
mysql数据表中字段的数据类型有哪些?
理解mysql变量和条件
mysql数据库最简单的备份方法
mysql实现阶段累加的sql写法(代码示例)
mysql脏读怎么解决
数据库怎么增加表中字段
mysql数据插入效率比较
更多相关阅读请进入《日志》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » service命令管理mysql启动和停止的方法介绍