zoukankan      html  css  js  c++  java
  • service: no such service mysqld 与MySQL的开启,关闭和重启

    1.问题原因与解决办法

    因为修改了MySQL临时文件的目录后,使用service mysqld restart重启MySQL出现如下错误:

    service: no such service mysqld

    错误原因: 
    是因为我们在编译安装MySQL时没有将MySQL的控制脚本mysql.server拷贝到/etc/init.d/中。

    解决办法: 
    将MySQL的安装目录下的support-files/mysql.server拷贝到/etc/init.d/中,并重命名为mysqld。拷贝命令如下:

    #我的mysql安装路径是:/usr/local/mysql
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    2.service命令的工作原理

    service命令,顾名思义,就是用于管理Linux操作系统中服务的命令。可以用来启动、关闭和重新启动系统服务,还可以显示所有系统服务的当前状态。

    但是,能够使用service命令进行操作的,就是已经注册成为linux的系统服务了。window中也可以注册成为系统服务。那么如何注册成为系统服务呢?

    比如从网上下载一个新的软件,安装到linux上面去。想注册成系统服务,我需要自己编写一个shell服务脚本文件才行。这个服务脚本文件如何编写呢?如果不了解servcie命令的机制,会漏掉一些东西了。比如我之前下载的sphinx安装到服务器后。我想使用”service sphinx start”这样的简短命令来管理,就必须注册成为系统服务,而有些软件的源码包中是没有提供写好的脚本的,有时必须自己写一个。但是,幸好MySQL自带了服务脚本可供service命令调用,也就是上面的mysql.server这个脚本,我们要做的就是将MySQL的服务脚本拷贝到/ect/init.d/目录下,并重命名为mysqld。

    与service相关的chkconfig命令的作用? 
    service命令可以快速地开启和停止linux中的服务程序,这在调试过程中非常有用chkconfig命令可以快速地设置开机时需要自动启动的服务程序。

    这两个命令的功能都可以通过其他方法实现,只不过有了它们之后更加方便,维护工作可以更加轻松。

    chkconfig命令的用法不再赘述!网上自行查阅!

    3./ect/init.d/目录存放的是什么

    在Linux中,/etc/init.d 和 /etc/rc.d/init.d这两个目录,都是用来放服务脚本的,这两个目录一般不会同时存在,因为功能是一样的。当Linux启动时,会根据chkconfig命令设置run level来确定是否启动相应的程序,如果启动的话就回去寻找这些目录中的服务脚本,并启动相应的程序。

    4.不使用service如何开启,关闭,重启mysql

    如果没有将mysql注册为系统服务,那么我们可以使用MySQL为我们提供的一些工具来开启,关闭,重启mysql。当然,mysql服务脚本对mysql的操作也是调用这些工具来完成的。这些工具都在mysql的安装目录的bin目录中。贴个图: 
    这里写图片描述

    如果我们按照上面的操作将mysql注册为系统服务的话,使用service来开启,关闭,重启mysql非常方便,命令如下:

    #重启
    service mysqld restart
    
    #开启
    service mysqld start
    
    #关闭
    service mysqld stop

    或者执行运行服务脚本mysqld或者mysql.server:

    #启动
    /etc/inint.d/mysqld start
    
    #关闭
    /etc/inint.d/mysqld stop
    
    #重启
    /etc/inint.d/mysqld restart

    不使用service如何开启,关闭,重启mysql,也就意味这不使用mysql为我们提供的服务脚本mysql.server来管理mysql的开启和关闭。但我们可以使用如下工具来完成。

    开启mysql:

    /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --log-error=/usr/local/mysql/data/Tencent_IM.err --pid-file=/usr/local/mysql/data/Tencent_IM.pid --socket=/tmp/mysql.sock --port=3306

    有点长,上面是我黏贴正在运行的mysql进程,大家也可以在关闭mysql之前使用ps查看,并复制一下。

    或者使用mysqld_safe来启动mysql:

    mysqld_safe --user=mysql &

    关闭mysql:

    mysqladmin -u[username] -p[password] shutdown

    重启mysql: 
    查看mysql的服务脚本mysql.server或者mysqld,我发现重启mysql也是先关闭,再启动。所以没有直接重启的命令,还是乖乖的先关闭,再启动吧!

    当然,利用mysql提供的工具来控制mysql的开启和关闭,应该还有其它的方法,我目前还不要太清楚,有知道的请留言告知,万分感谢!

    5.mysql和mysqld的区别

    mysqld(mysql deamon)是服务端程序,是mysql提供服务的主要程序,提供服务的还有很多其它的程序,见mysql安装目录的bin目录。

    mysql是命令行客户端程序,用于执行sql语句!

    还要注意一点,我们习惯把mysql的服务脚本mysql.server更名为mysqld放在/etc/init.d/目录下,将mysql注册为系统服务。

  • 相关阅读:
    LeetCode 485. Max Consecutive Ones
    LeetCode 367. Valid Perfect Square
    LeetCode 375. Guess Number Higher or Lower II
    LeetCode 374. Guess Number Higher or Lower
    LeetCode Word Pattern II
    LeetCode Arranging Coins
    LeetCode 422. Valid Word Square
    Session 共享
    java NIO
    非阻塞IO
  • 原文地址:https://www.cnblogs.com/givemelove/p/8778000.html
Copyright © 2011-2022 走看看