编译安装lamp-1(mysql)
lamp
分层机制:
用户--[httpd协议]--apache--[fastCGI协议]--php--[mysql协议]--mysql
分层优势:
Apache php和mysql都是CPU密集型的服务,分层可以缓解CPU压力
同层的还可以做负载均衡
*************Apache和PHP结合的方式*****************
1, 模块化的方式,php编成Apache的模块
此时php是Apache的子功能存在的,所以调用php时不需要启动额外的进程
任何httpd进程内部都已经装载了php模块
apache使用不同的MPM时,php的模块也是不同的
prefork:libphp5.so
worker,event:libphp5-zts.so
2, CGI接口
3,fastCGI模式下的php,php 5.3.3收进fastCGI
编译php-fpm并启动为服务进程,监听再某个套接字下
服务进程fork几个空闲进程,供别的进程调用
************php-mysql******************
通过客户端程序mysql_connect()连接mysql
$link = mysql_connect('IP','user','mypass')可创建一个PHP和mysql的连接
mysql_close()
************mysql的主辅服务器******************
master:写操作都在主服务器,也提供数据的读操作
slave:读操作
缓存服务器,提高命中率,bypass(旁路)
*************memcached纯缓存服务器*****************
LAMMP
memcached必须前端程序调用才有效
########
************redis******************
工作在内存
可实现持久存储,非关系型数据库(NoSQL)
******************************
动静分离
高可用集群---->脚本脚本加油
******************************
安装顺序:
httpd mysql,最后php
*************安装mysql*****************
mysql-5.5.33-linux2.6-x86_64.tar.gz
1,添加mysql用户和mysql组,用户设为nologin
groupadd -r mysql创建系统组
useradd -g mysql -r -s /sbin/nologin mysql
2,解压到/usr/local
创建解压包的软连接为/usr/local/mysql ,以后升级可以直接重新软连接mysql目录
cd /usr/local
tar -zxf mysql-5.5.33-linux2.6-x86_64.tar.gz
ln -sv mysql-5.5.33-linux2.6-x86_64 mysql 升级mysql时重新生成mysql连接
3,创建逻辑卷管理来存储数据库文件
mkdir data
fdisk /dev/sda (n ;f 8e)
kpartx -af /dev/sda
partx -a /dev/sda 通知内核读取新的分区
cat /proc/partitions
pvcreate /dev/sda2
vgcreate mysqlvg /dev/sda2
lvcreate -L 2G -n mysqllv1 mysqlvg
mount /dev/mysqlvg/mysqlvg /data
vi /etc/fstab
/dev/mysqlvg/mysqllv1 ext4 /data defaults,noatime,nodiratime 0 0
cd /data
mkdir mydata计划数据库存储目录
chown -R mysql:mysql mydata将数据库存放目录的所有者改为mysql
4,创建并配置数据库
cd /usr/local/mysql
chown -R root:mysql ./*
scripts/mysql_install_db --datadir=/data/mydata --user=mysql 创建数据库
cp support-files/mysql.server /etc/init.d/mysqld启动数据库服务
chkconfig --add mysqld
cp support-files/my-large.cnf /etc/my.cnf
vi /etc/my.cnf
datadir = /data/mydata
service mysqld start
此时,mysql命令还找不到,需要编辑
vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
. !*!*表示上一条命令的参数
5,登录mysql
安全设置
drop user ''@'localhost';删除匿名用户
use mysql;
select host,user,password from user;
update user set password=PASSWORD('mysql2009') where user='root';
flush privileges;
6,mysql的配置文件
家目录下创建.my.cnf
[mysql]
user = root
host = localhost
password = mysql2009
mysql的配置文件读取顺序:/etc/my.cnf-->$MYSQL_BASE/my.cnf
-->--defaults-extra-file = /path/to/some_my.cnf-->.my.cnf
7,导出库文件
ln -sv /usr/local/mysql/include/ /usr/include/mysql
8,导出头文件
vim /etc/ld.so.conf.d/mysql
/usr/local/mysql/lib
ldconfig刷新动态库
ldconfig -p |grep mysql查看