博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
service: no such service mysqld 与MySQL的开启,关闭和重启
阅读量:5734 次
发布时间:2019-06-18

本文共 2470 字,大约阅读时间需要 8 分钟。

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/mysqlcp /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注册为系统服务。

 

转载于:https://www.cnblogs.com/givemelove/p/8778000.html

你可能感兴趣的文章
java实现邮箱发送邮件功能
查看>>
Ftl常用标签
查看>>
4.3差错控制-CRC
查看>>
nginx location
查看>>
暴力 Codeforces Round #183 (Div. 2) A. Pythagorean Theorem II
查看>>
Manacher HDOJ 3068 最长回文
查看>>
虚拟机中linux使用本地iso作为yum源
查看>>
django 认证模块auth,表单组件form
查看>>
asp.net 小结1
查看>>
vim 中Ctags的安装和使用
查看>>
Cannot find ./catalina.sh
查看>>
JS数组的常用方法
查看>>
分布式搜索的面试题4
查看>>
SQL Server 高级操作 视图和存储过程
查看>>
springboot 发布
查看>>
浅析Java开发模式—Model1、Model2和三层
查看>>
[C++基础]在构造函数内部调用构造函数
查看>>
EF-CodeFirst-数据迁移
查看>>
Oracle 12c RAC 搭建手册
查看>>
[BeiJing wc2012]连连看(建模,最小费用最大流)
查看>>