热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

service命令管理mysql启动和停止的方法介绍

​本篇文章给大家带来的内容是关于service命令管理mysql启动和停止的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
本篇文章给大家带来的内容是关于service命令管理mysql启动和停止的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

安装完成mysql之后,每次启动和停止都很麻烦,有时候记不住去网上搜一下,看见大家都用service来进行服务的管理,试了一下,果然好用。推荐大家也要这么用。

启动和停止mysql服务

# 启动
/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的使用方式

## 命令格式
Usage: service 

除了用mysqld示例外,我们修改了主机名、IP地址等信息时,也要经常重启网络生效,此时可以调用:

service network status|restart

用service管理mysqld服务

我们已经了解了基础的知识,现在就可以开始改造了,首先要在你的安装目录里找到mysql.server文件。

$ locate mysql.server
/usr/local/mysql/support-files/mysql.server

这个文件在安装时初始化,其实也就是一个脚本文件,支持输入不同的参数执行不同的功能,我们可以查看它的start函数:

# 根据输入的命令执行不同的脚本,首先判断是否为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/目录下:

cp /usr/local/mysql/support-files/mysql.server /tmp/init.d/mysqld

此时,就可以直接调用service来进行启动了:

service mysqld start

遇到的一些问题

上面的理论很简单,但在启动的过程中还是遇到了一些问题,解决问题最简单的方法就是Google+查看日志文件,这两个方法可以非常快的速度定位并解决。

配置文件被忽略

直接看启动时的报错信息:

$ service mysqld start
Warning: World-writable config file '/etc/my.cnf' is ignored
Starting MySQL.Warning: World-writable config file '/etc/my.cnf' is ignored

直接看报错原因,提示的是全局可写的配置文件被忽略。这个错误是指该配置文件可以被所有用户修改,因此有被恶意篡改的可能,因此不会引入这个文件的配置,忽略。

解决方案就是将该文件改为用户和用户组可读写,其他用户只读不可写:

chmod 664 /etc/my.cnf

PID文件无法创建

直接看报错信息:

$ service mysqld start
Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid).

报错原因显示,启动MySQL时意外退出,因为没有更新PID文件。

这个时候,可能有些人看不太懂,没关系,我们直接看错误日志:

2019-03-21 22:29:45 32896 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/usr/var/mysql/var/mysqld.pid' (Errcode: 2 - No such file or directory)
2019-03-21 22:29:45 32896 [ERROR] Can't start server: can't create PID file: No such file or directory

这个日志就很清楚的写明了无法创建这个mysqld.pid文件,要么是权限问题,要么是路径不存在的问题,后面看发现是路径写错了,更改为正确的路径即可。

错误日志路径的设置:

$ vim my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/var/mysql/var/mysqld.pid
log-error = /user/local/mysql/log/mysql.err

log指令被废弃

解决了上面的问题,我们继续执行,依然发现同样的报错信息,但是日志文件却不同了:

$ service mysqld start
Starting MySQL.The server quit without updating PID file (/usr/var/mysql/var/mysqld.pid).

# 日志文件
2019-03-21 22:37:33 0 [ERROR] /usr/local/mysql/bin/mysqld: ambiguous option '--log=/usr/local/mysql/log/mysql.log' (log-bin, log_slave_updates)
2019-03-21 22:37:33 0 [ERROR] Aborting

发现日志报错信息提示:模糊的选项--log,这个不太明白,Google一下就能看到原因:--log指令已经被废弃很久了,现在使用--general-log来代替。修改my.cnf配置文件即可:

$ vim my.cnf
[mysqld]
general-log = /user/local/mysql/log/mysql.log

启动成功

解决了上面这些问题,终于可以成功启动了,这个时候我们可以方便的对mysqld服务进行启停以及reload了:

$ service mysqld start
Starting MySQL.                                            [  OK  ]

总结

Service服务管理工具,可以帮助我们快速的启停应用程序。在Mysql启动的过程中,掌握日志文件的查看和Google的搜索,对我们来说是最大的助力。

本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的MySQL教程视频栏目!

以上就是service命令管理mysql启动和停止的方法介绍的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • MACElasticsearch安装步骤及验证方法
    本文介绍了MACElasticsearch的安装步骤,包括下载ZIP文件、解压到安装目录、启动服务,并提供了验证启动是否成功的方法。同时,还介绍了安装elasticsearch-head插件的方法,以便于进行查询操作。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
author-avatar
怡智俊婷珮婷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有