LAMP架构介绍
LAMP是一个简写,包含了4个东西:linux、apache(httpd)、mysql、php
linux操作系统、apache提供wb服务的软件、mysql存储数据的软件、php脚本语言
LAMP的工作原理
浏览器向服务器发送http请求,服务器 (Apache) 接受请求,由于php作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,然后去调用php处理模块进行php脚本的处理。脚本处理完后,Apache将处理完的信息通过http response的方式发送给浏览器,浏览器解析,渲染等一系列操作后呈现整个网页。
php和mysql之间是动态请求(如用户的登录操作就会用到)
而如果只是查看图片就是静态请求,不会用到php和mysql动态请求。(mysql不能存图片等文件)
MySQL、MariaDB介绍
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
MySQL官网https://www.mysql.com 最新版本5.7GA/8.0DMR
MySQL5.6变化比较大,5.7性能上有很大提升
Mariadb为MySQL的一个分支,官网https://mariadb.com 最新版本10.2
MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.
Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6
Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本
mysql安装
MySQL的几个常用安装包:rpm、源码、二进制免编译(免编译比较方便,不用配置,可以指定路径。)
因为二进制免编译比较方便,也足够正常使用,所以我们就使用二进制棉编译
为了方便日后管理,我们统一把安装包下载到/usr/local/src这个目录下来cd /usr/local/src
下载安装包,下载的版本为5.6 x86_64wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
解压下载的包tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
移动解压完的目录并更改名字为mysql(容易出现的错误,local下已经存在mysql文件,如果这样移动,会变成移动到mysql下,这样就会报错,mv前提前进入local看下是否已存在mysql文件夹)mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
进入mysql目录下可以查看下mysql下有哪些文件
cd /usr/local/mysql
ls
创建一个data目录,可以看到data目录已经存在,那么就不需要执行命令创建目录mkdir data
创建一个mysql用户(名为mysql)useradd mysql
安装mysql,进行初始化,指定用户为mysql,指定数据存放地址/data/mysql./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这里它提示少了一个perl模块,所以我们需要安装它。如果不知道包名就需要模糊搜索一下,首先这个文件是perl模块的,所以一定包含perl,还包含dumper(不确定大小写就加-i)yum list |grep perl |grep -i dumper
如下图搜出4个,如果不知道是哪一个就全装上,这里我们知道是第一个包。
安装所依赖的包yum install -y perl-Data-Dumper.x86_64
然后再使用如下命令初始化一下(有时会报错data的父目录不存在,这时在/data/前面加上绝对路径即可)./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
拷贝mysql的模板配置文件,mysql的配置文件存放在/etc/下,并且名字固定为my.cnf,如果不想存放在这个目录下,那么启动的时候需要指定配置文件(该目录下已存在一个my.cnf文件,我们选择y覆盖)cp support-files/my-default.cnf /etc/my.cnf
拷贝启动的脚本cp support-files/mysql.server /etc/init.d/mysqld
编辑启动脚本vi /etc/init.d/mysqld
找到basedir和datadir将内容更改如下:
basedir=/usr/local/mysql
datadir=/usr/locat/mysql/data/mysql
更改启动脚本的配置文件为755chmod 755 /etc/init.d/mysqld
将mysqld加入开启启动chkconfig --add mysqld
启动mysql
1.使用命令启动mysqlservice mysqld start
- 使用脚本启动
/etc/init.d/mysqld start
停止mysqlservice mysqld stop
以命令行的方式启动脚本,--defaults-file指定配置文件,指定用户,指定目录,最后加上&符号,放到后台执行/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
以命令行的方式启动的mysql脚本不能直接stop,可以使用killall停止服务
使用killall会停止当前的写读操作,再将没有写入到磁盘中的数据写到磁盘里面去,写完之后再将进程杀死。
如果遇到mysql的进程杀不死,可能说明数据量比较大,在慢慢写入磁盘,这时候不要使用kill -9强制杀死进程,可能会损坏数据。
`killall mysqld``