LAMP架构介绍

11月9日任务
11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装

LAMP介绍

LAMP:Linux + Apache(httpd) + MySQL + PHP

  • Apache:搭建网络服务器
  • MySQL:存储数据
  • PHP:网页,数据交互

对于搭建一个简单的LAMP架构,可以将上述的3中软件安装再同一个Linux内;对于大的LAMP架构,必须保证Apache和PHP在同一个服务器上,MySQL安装在另外的服务器,通过网络来进行数据的交互。

Web日常请求

  1. 用户在浏览器输入网址,点击登录,将请求发送给Apache
  2. Apache判断是否为动态请求,再根据请求不同返回不同的网页信息:
    • 动态:用户名密码登录;通过apache的php模块来访问MySQL数据库对比后,返回网址;
    • 静态:普通网页请求,不需要与MySQL数据库进行对比

MySQL_MariaDB介绍

MySQL是一个关系型数据库,由mysql ab公司开发,并于2008年被sun公司收购;2009年sun公司被oracle公司收购。

MySQL官网:https://www.mysql.com

最新版本5.7GA/8.0DMR

MySQL5.6变化比较大,5.7性能上有很大提升

Mariadb是MySQL的一个分支,官网https://mariadb.com/ 最新版本10.2

MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,该公司为MySQL原班人马创建。

MariaDB5.5对于MySQL5.5,10.0对应MySQL5.6

关于软件版本

  • Community 社区版
  • Enterprise 企业版
  • GA(Generally Available) 通用版本
  • DMR(Develoment Milestone Release) 开发里程碑发布版
  • RC(Release Candidate) 发行候选版本
  • Beta 开发测试版本
  • Alpha 内部测试版本

MySQL安装

可以使用rpm、源码、二进制免编译的方式来安装MySQL。

推荐使用二进制免编译安装包,解压后初始化即可使用。

[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
--... 10:44:16--  http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
正在解析主机 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140
正在连接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:316320366 (302M) [application/octet-stream]
正在保存至: “mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz”

100%[================================>] 316,320,366  417KB/s 用时 5m 47s 

... 10:50:03 (891 KB/s) - 已保存 “mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz” [316320366/316320366])

安装步骤

  1. 解压下载的二进制已编译软件包
[root@localhost src]# tar zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 
[root@localhost src]# ll
总用量 308912
drwxr-xr-x. 13 root root       191 11月 11 10:54 mysql-5.6.36-linux-glibc2.5-x86_64
  1. 移动目录至/usr/local/下
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost src]# cd /usr/local/mysql/
  1. 创建用户mysql
[root@localhost mysql]# useradd mysql
  1. 创建数据存放目录
[root@localhost mysql]# mkdir /data
  1. 初始化mysql
# 数据库初始化
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper

# 查询缺少的软件包并安装
[root@localhost mysql]# yum list | grep perl | grep -i 'dumper'
perl-Data-Dumper.x86_64                 2.145-3.el7                    base     
perl-Data-Dumper-Concise.noarch         2.020-6.el7                    epel     
perl-Data-Dumper-Names.noarch           0.03-17.el7                    epel     
perl-XML-Dumper.noarch                  0.81-17.el7                    base     
[root@localhost mysql]# yum install -y perl-Data-Dumper

# 重新初始化
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

# 判断是否成功初始化
[root@localhost mysql]# echo $?
0
  1. 拷贝/修改配置文件
# 原/etc/目录下存在my.cnf文件,直接覆盖
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
# 修改配置文件内basedir和datadir参数
[root@localhost mysql]# vi /etc/my.cnf
修改[mysqld]内的2行即可
 basedir = /usr/local/mysql
 datadir = /data/mysql
保存退出
  1. 配置mysql开机启动
# 拷贝启动脚本至开机启动目录/etc/init.d/,并重命名为mysqld
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

# 修改mysqld配置文件,
[root@localhost mysql]# vi /etc/init.d/mysqld 
同样要修改一下参数
basedir=/usr/local/mysql
datadir=/data/mysql

# 修改权限并使用chkconfig设置开机启动
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld 
[root@localhost mysql]# chkconfig --add mysqld

# 查看是否配置成功
[root@localhost mysql]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysqld         	0:关	1:关	2:开	3:开	4:开	5:开	6:关
netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关

启动/关闭mysql服务

  1. 服务方式
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
.. SUCCESS! 

[root@localhost mysql]# ps aux | grep mysqld
root       2856  0.0  0.1 113264  1616 pts/0    S    13:52   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql      2990  8.5 45.0 1308984 450220 pts/0  Sl   13:52   0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root       3019  0.0  0.0 112676   972 pts/0    R+   13:53   0:00 grep --color=auto mysqld

# 关闭mysqld
[root@localhost mysql]# service mysqld stop
或
[root@localhost mysql]# /etc/init.d/mysqld stop
  1. 命令行方式
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 
[1] 3067
[root@localhost mysql]# 171111 14:02:06 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
171111 14:02:06 mysqld_safe Starting mysqld daemon with databases from /data/mysql

[root@localhost mysql]# !ps
ps aux | grep mysqld
root       3067  0.1  0.1 113268  1600 pts/0    S    14:02   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql      3189  6.8 44.9 1300788 449528 pts/0  Sl   14:02   0:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root       3212  0.0  0.0 112676   976 pts/0    S+   14:02   0:00 grep --color=auto mysqld

[root@localhost mysql]# killall mysqld

也可以通过kill命令关闭mysql主进程来关闭
[root@localhost mysql]# kill 3189

killall命令安装:yum install -y psmisc

kill与killall的区别

也可使用kill命令来关闭mysql进程,但是会造成当前读写的部分数据丢失;

killall命令则会停止后续的读写操作,并将之前未写入磁盘的数据保存到磁盘后,然后杀死进程。

关闭mysql进程时要注意的事项

在使用killall关闭mysql时会有时短时间关闭不了,没关系,因为数据过多需要时间,等待即可,千万不要使用kill -9强制杀死,会造成数据的丢失!

安装过程可能缺少的软件包

编译安装前提

yum install -y gcc gcc-c++

安装mysql

yum install -y perl-Data-Dumper libaio-devel

猜你喜欢

转载自my.oschina.net/u/3964535/blog/2874037