linux系统设置程序开机启动(以mysql为例)
来源:互联网 发布:ubuntu zip压缩命令 编辑:程序博客网 时间:2024/06/06 13:15
现在最新版的mysql都是release版本,即不需要configure、make、make install命令来配置安装的。解压之后直接复制到目标目录下,然后按照目录中的INSTALL-BINARY文件中所指示的进行配置即可。
1. > groupadd mysql
2. > useradd -r -g mysql mysql
这两步的作用是创建必需的组和所有者(其实这两步的具体作用我也不是很了解,因为我一直都是使用root账号来操作的)。
注意的是,有些linux系统(我遇到过的有redhat、centos)中都会自带mysql,但是版本一般比较旧。如果删除旧版本安装新版本,最好在/etc/passwd中将已经有的mysql用户删除掉(当然应该也可以沿用系统自动创建的组和用户)。
3. > cd /usr/local/mysql // 这个是我通常用的放置用户程序的路径
4. > chown -R mysql .
5. > chgrp -R mysql . // 将文件夹的所有者和所有者所在的组设置为mysql
6. > scripts/mysql_install_db --user=mysql // 安装
7. > chown -R root . // 将文件夹的所有者改回root
8. > chown -R mysql data // 将存放数据库文件的目录所有者设置为mysql
(我还是觉得上面几步太折腾了,因为我一直都是使用root操作。不过这几步的作用马上就显现出来了。。。)
9. > cp support-files/my-large.cnf /etc/my.cnf
关于这步以后再详细介绍,这里只要知道是创建数据库配置文件即可
10. > bin/mysqld_safe --user=mysql &
启动mysql,并使之在后台运行,启动时设置该进程的用户为mysql。
这里多解释几句:
首先,mysql的守护进程是mysqld,bin目录下也有这个命令。但实际上用户很少与之直接交互,而是通过一个包装程序mysqld_safe与之交互。mysqld_safe会在守护进程mysqld启动之前添加一些与安全有关的日志特性和系统集成特性(具体是哪些我也不知道,暂时应该也不需要知道。。。)。
其次,在启动守护进程的时候,将进程用户设置为mysql。mysql的守护进程应该按非root用户运行,这样在攻击者通过mysql安全漏洞成功入侵到服务器时,可以将破坏减少到最低程度。
11. > cp support-files/muysql.server /etc/init.d/mysql.server
这一步的作用是设置mysql开机自动启动。其中mysql.server是一个脚本文件,太长了没有仔细研究,其功能就是进行一些设置后启动mysql。
下面来讲一下和系统启动相关的目录 ==> /etc/rc.d
注:rc是run control的缩写。
在/etc/rc.d目录下有这样几个目录:
init.d
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
init.d目录下存放的是系统启动时可能会运行的脚本,其中一些脚本的功能是启动安装在系统中的程序。
rcN.d(N=0,...,6)目录中存放的都是到init.d目录下脚本的符号链接(软链接)。
其中N表示的是系统的运行级别。关于运行级别,可以查看/etc/inittab文件中的开头部分:
************************************************************************************************
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
************************************************************************************************
附上中文版:# 缺省的运行级,RHS 用到的级别如下:
# 0 - 停机(千万不要把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,但是没有 NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
#
# 0 - 停机(千万不要把initdefault 设置为0 )
# 1 - 单用户模式
# 2 - 多用户,但是没有 NFS
# 3 - 完全多用户模式
# 4 - 没有用到
# 5 - X11
# 6 - 重新启动 (千万不要把initdefault 设置为6 )
#
************************************************************************************************
这段脚本介绍了7种运行级别,并设置默认运行级别为5(一般的linux系统X11图形界面的运行级别是5)。
init进程(ID为1的进程)在系统自举时会读取inittab文件,确定系统的运行级别。
rcN.d目录下的符号链接指向的是该运行级别下系统要运行的脚本。其中符号链接分为两种,一种是以S开头的,表示要启动的服务;另一种是以K开头的,表示要关闭的服务。
这里我们只关注如何设置开机自动启动,所以只看S开头的符号链接。仍是以mysql为例:
首先运行命令“chkconfig --list”查看系统服务(这里只给出mysql的那一行):
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
可以看到在运行级别为2-5中,mysql都是默认启动的。在rc2.d-rc5.d目录下,我们可以找到如下文件:
lrwxrwxrwx 1 root root 16 09-07 03:29 S64mysqld -> ../init.d/mysqld
S64mysqld是指向init.d目录下mysqld脚本的链接。S表示启动(start);64表示启动的顺序,因为有些服务的启动要依赖于其他服务,这个序号是允许重复的,如果我们要添加新的开机启动项,通常将序号设置为99。
通常设置开机启动项的一个简单的方法是使用chkconfig命令,
> chkconfig mysqld off
该命令关闭了mysql开机启动。可以通过“chkconfig --list”命令查看,或者直接去rc5.d目录下,这时候会发现S64mysqld变成了K64mysqld。
若要恢复mysql开机启动,运行:
> chkconfig mysqld on
最后一部分说的有点乱,部分是参考下面两篇文章:
init.d,rc.d详解 Linux运行时详解
/etc/rc.d/init.d和/etc/init.d 联系区别
0 0
- linux系统设置程序开机启动(以mysql为例)
- linux系统设置程序开机启动(以mysql为例)
- ubuntu设置自定义程序开机启动(本文以tomcat为例)
- 设置程序为开机启动
- Linux系统如何将某一程序设置为开机自启动
- Linux设置添加MySQL Apache为系统服务并开机启动
- 将mysql服务设置为linux开机自动启动
- linux设置程序开机启动
- linux设置程序开机启动
- linux mysql设置开机启动
- 示例:设置程序为开机启动项
- Linux系统,在图形界面下,设置开机启动客户端程序(脚本)。
- 【Linux】Linux设置程序开机自启动
- 设置嵌入式系统开机自动启动程序
- linux 下设置程序开机启动
- Linux设置程序开机自启动
- linux 设置开机启动服务程序
- linux开机自启动程序设置方法
- JDBC编程之程序优化
- hdu 5643King's Game(约瑟夫游戏,递归)
- activiti事务和自己业务事务共同的使用
- 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不完全一致
- Java解析xml的主要解析器: SAX和DOM的选择
- linux系统设置程序开机启动(以mysql为例)
- bootstrap Model 点击确定按钮后 转到新页面
- 知乎 哪些素质很重要,却是读书学不来的?-3
- Android的源代码下载教程-android学习之旅(102)
- eclipse打jar包
- SVD(一)
- CXF Interceptor拦截器
- 励志好文
- 上下轮播控件TextSwitcher