搭建环境:CentOS release 6.5 (Final) 


安装顺序mysql和apache必须在php前面,他俩不分前后
1. 安装mysql5.5.41    免编译二进制包(也可以源码包安装,只是这样编译需要浪费一段时间,不过免编译的还必须注意下选择和自己的linux内核版本一致的)


2、一般第三方软件统一放在/usr/local/src下,安装则放到/usr/local下,这样统一而且易于管理


# 1、下载解压mysql到/usr/local/mysql下cd /usr/local/src/ 

wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.41-linux2.6-i686.tar.gztar zxvf /usr/local/src/mysql-5.5.41-linux2.6-i686.tar.gzmv mysql-5.5.41-linux2.6-i686 /usr/local/mysql 


# 2、添加一个不允许登录的用户mysql(不允许登录是为了安全,而且也没有必要让其登录),并创建一个目录将属主改成mysqluseradd -s /sbin/nologin mysql 

cd /usr/local/mysql 

mkdir -p /data/mysql    

chown -R mysql:mysql /data/mysql 


# 3、mysql 数据库的默认数据存储路径在/var/lib/mysql下,但是一般数据我们需要单独拿块磁盘或分区给他,这样有利于性能调优和保护数据安全(比如对数据磁盘做RAID5或RAID10等),同时也方便维护# 初始化并指定数据存储路径./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  # 4、拷贝配置文件到/etc/my.cnf(拷贝my-huge.cnf也可以),拷贝启动脚本到/etc/init.d/mysqld并改为755权限cp support-files/my-large.cnf /etc/my.cnfcp support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld 


# 5、编辑启动脚本mysqld设置安装和数据存储位置vim /etc/init.d/mysqld   # 修改datadir,basedir# 见下面图片1

 basedir: mysql安装位置;

 datadir: 数据存储位置(刚才初始化时指定的datadir)# 6、设置为系统服务(可以开机自启动,启动级别可以自己指定或使用mysqld脚本默认的)chkconfig --add mysqld 

chkconfig mysqld on 

service mysqld start 

chkconfig --list |grep mysql# 见下面图片2


 

图片1:
csr
图片2:
csr


3、内容有点少,这里就拓展介绍下centos6开机启动的脚本风格吧
centos6开机启动使用的是SysV服务类的脚本风格,还有另外一种主流的启动脚本风格BSD类,两种各有优劣,可以参考这里的资料:http://www.linuxsir.org/bbs/thread61525.html
 SysV: 启动脚本文件在/etc/rc.d/init.d目录下
 1)一般要提供以下参数:

  • start|stop|restart|status|reload|configtest

自己在这里写启动脚本的时候最好也实现这些功能,这样别人用的也比较方便


 2)每个脚本都要有下面两行(5、6的chkconfig和description):
csr

chkconfig: runlevel SS KK

  • runlevels:系统在哪些级别下开机启动,’-’ 表示都没有开启
        SS:S(开启)后面的启动优先级为SS所表示的数字;
        KK:K(关闭)后面关闭优先次序为KK所表示的数字;

description: 用于说明此脚本的简单功能; \  续行
比如上面图片的意思就是:默认开机2345级别启动,启动优先级11,关闭优先级88

4、chkconfig usage:

 chkconfig [--list] [--type <type>] [name] # 不指定name,则列出当前所有服务的启动级别
     chkconfig --add <name>
     chkconfig --del <name>
     chkconfig --override <name>
     chkconfig [--level <levels>] [--type <type>] <name><on|off|reset|resetpriorities>  
     # 如果省略级别指定,则使用文件默认的设置级别(就是上面介绍那俩行的功能)