您的位置:首页 > 数据库 > MySQL

(二)企业部分之lnmp环境的搭建:mysql源码安装

2016-06-12 14:01 549 查看
Web服务器架构

Web服务器架构一般主要由系统环境、Web服务器、数据库和语言组成。
可以有以下组成方式:
系统:linux unix windox mac freebsd aix
Web服务器:apache nginx tengine
数据库:mysql pgsql oracle
语言:php perl python jsp xml

2.LNMP、LAMP和LNMPA
LNMP、LAMP和LNMPA都是当今较流行的高性能网站服务器架构组合。
LNMP:Linux + Nginx + MySQL + PHP
LAMP:Linux + Apache + MySQL + PHP
LNMPA:Linux + Nginx + Mysql + PHP + Apache

(1)LNMP优点
LNMP和LAMP不同点在于Web服务器Nginx。

Nginx的主要特点是稳定、功能丰富、安装配置简单、低系统资源。Nginx对于反向代理和负载均衡有不错的支持。Nginx不仅仅可以做为Web服务器,还可以做负载均衡服务器、代理服务器和邮件服务器。

作为Web服务器来说,相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,Nginx处理静态文件、索引文件,自动索引的效率非常高,体现更高的效率。

作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站的运行速度。

作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡;Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器来说, Nginx是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器)。

安装配置上,Nginx安装简单、配置灵活、配置文件非常简洁(还能够支持perl语法);性能方面,Nginx是专门为性能优化而开发的,非常注重效率。它采用Poll模型,可以支持更多的并发连接,最大可以支持对50000个并发连接数的形影,而且只占用很低的内存资源;可用性方面,Nginx支持热部署,启动速度特别迅速,可以在不间断服务的情况下,对软件版本或者配置进行升级,及时运行数月也无需重新启动,几乎可以做到7*24显示不间断运行。

v Nginx性能高于Apache的原因
Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。虽然都是I/O 多路复用技术,但处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
【select 模型】
当处理数据量大的时候,select 模型存在三个问题:连接数受限;查找速度慢;数据由内核拷贝
1. 连接数受限。因为一个进程所打开的 FD (文件描述符)是有限制的,由 FD_SETSIZE 设置,默认值是 1024/2048 ,因此 Select 模型的最大并发数就被相应限制了。
2. 查找速度慢。select 每次调用都会线性扫描全部的 FD 集合,这样效率就会呈现线性下降。
3. 内核/用户空间内存拷贝问题。

【epoll 模型】
1.Epoll 没有最大并发连接的限制,上限是最大可以打开文件的数目,这个数字一般远大于 2048, 一般来说这个数目和系统内存关系很大 ,具体数目可以 cat /proc/sys/fs/file-max 察看。
2.效率提升, Epoll 最大的优点就在于它只管你“活跃”的连接 ,而跟连接总数无关,因此在实际的网络环境中, Epoll 的效率就会远远高于 select 和 poll 。
3.内存拷贝, Epoll 在这点上使用了“共享内存 ”,这个内存拷贝也省略了。

【总结】
当有 I/O 事件到来时,select只通知应用程序事件到来,应用程序必须轮询所有的 FD 集合,测试每个 FD 是否有事件发生,并处理事件;Epoll不仅会告诉应用程序有I/0 事件到来,还会告诉应用程序相关的信息,这些信息是应用程序填充的,因此根据这些信息应用程序就能直接定位到事件,而不必遍历整个FD 集合。

(2)LNMPA优点
LNMPA使用Nginx作为前端服务器,能够更快、更及时地使用更少的系统资源处理静态页面、js、图片等文件,当客户端请求访问动态页面时,由Nginx反向代理给作为后端服务器的Apache处理,Apache处理完再交予Nginx返回给客户端。

采用LNMPA能够更好的解决LNMP架构中由于PHP-FPM方面产生的502错误,同时能够以很简单的方式提供更安全的多用户多站点环境。

3.LNMP
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx的主要特点是稳定、功能丰富、安装配置简单、低系统资源。Nginx对于反向代理和负载均衡有不错的支持。Nginx不仅仅可以做为Web服务器,还可以做负载均衡服务器、代理服务器和邮件服务器。

Mysql是一个中小型关系型数据库管理系统,可满足一般情况下大部分数据管理需求。

PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。

LNMP环境的搭建――MySQL
所需软件包:mysql-boost-5.7.11.tar.gz,cmake-2.8.12.2-4.el6.x86_64.rpm
tar zxf mysql-boost-5.7.11.tar.gz
cd mysql-boost-5.7.11
yum install cmake -y
yum update cmake-2.8.12.2-4.el6.x86_64.rpm
yum install gcc gcc-c++ ncurses-devel bison -y    ##解决依赖性
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
若还有依赖性未解决,则继续安装,直到无报错
过程中可能需要删除CmakeCache.txt

make -j2

在这一段过程中报错,很有可能是因为内存空间不足,此时将内存扩大,即可正常安装

建立一个虚拟磁盘,扩大空间
fdisk -cu /dev/vdb (8e)
pvcreate /dev/vdb1
vgextend VolGroup /dev/vdb1
lvextend -l +2047 /dev/VolGroup/lv_root      ##(将剩余2047都加给它)(lvs;vgs)
resize2fs /dev/VolGroup/lv_root
df -h
make install
useradd -u 27 -s /sbin/nologin mysql
groupmod -g 27 mysql
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
mv /etc/my.cnf /etc/my.cnf.bak
cp my-defaule.cnf /etc/my.cnf
修改配置文件,并更新环境
vim /root/.bash_profile
source ~/.bash_profile
修改内容:



mysql --initialize --user=mysql
chown -R mysql.mysql /usr/local/lnmp/mysql/data
/etc/init.d/mysqld start
mysql -p     ##此时无密码


成功登陆mysql
mysql_secure_installation     ##进行密码修改
至此mysql源码安装成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: