11.1 LAMP架构介绍


11.1-11.5 LAMP架构介绍,MySQL安装_第1张图片

LAMP=Linux+Apache(hettpd)+MySQL+PHP

Linux操作系统

Apache提供web的服务软件,真正名字叫httpd

MySQL存储软件,数据、字符串等等

PHP脚本语言,和shell类似,但比shell复杂。以做网站为主。 

PHP网站(Google、淘宝、百度、51cto博客、猿课论坛) 

三个角色可以在一台机器、也可以分开

(httpd和PHP要在一起,MySQL可以单独一台机器)

LAMP架构介绍 

11.1-11.5 LAMP架构介绍,MySQL安装_第2张图片

过程:

PHP与Apache是在一起的,因为PHP是以模块的形式和APACHE结合在一起的。

但是Apache不能直接与MySQL相互打交道,他只能通过PHP模块去MySQL里面拿数据。

拿到数据后,PHP会把结果,反馈给Apache,Apache再把数据反馈给用户。


PHP与MySQL相连取数据的行为称为动态请求。

例如,登录猿课论坛的操作为例子。

登录网站(ask.apelearn.com),键入账号密码点击登录进行认证,登录这个请求已经交给Apache,然后Apache去检查此请求是动态还是静态的。因为登录这个行为需要把登录的信息提交给Apache,Apache拿到账号密码之后会进入数据库进行匹配,看看输入的对还是错(此过程是运用了PHP与MySQL打交道的过程,首先在MySQL查到用户的账号密码,然后PHP进行对比,如果正确,Apache会把登录状态反馈给用户,这就是动态请求)。


静态请求

访问网站,网站显示的logo,这个logo的显示也是通过Apache去请求的,Apache拿到logo图片发现该图片不存在MySQL里面,直接在静态文件里面(Linux服务器上某一个目录)拿到了这个图片的文件,拿到后直接反馈给用户,这个过程并没有与MySQL打交道,这就是静态请求。


11.2 MySQL_MariaDB介绍

11.1-11.5 LAMP架构介绍,MySQL安装_第3张图片

Oracle

也是同样做数据库的,这个数据库比较大型,像银行,金融的一些企业。

Oracle会专门装在一台小型机上,这台小型机会安装Unix。这台小型机是太超级计算机(几百个CPU,上T的内存等等超级配置)


 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原作者带领

部分原班人马创立.

MySQL原作者带领大部分原班人马创立.

 

Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

 

Community 社区版本,Enterprise 企业版,

GA(Generally Available)指通用版本,在生产环境中用的,一般使用此项

DMR(Development Milestone Release)开发里程碑发布版,

RC(Release Candidate)发行候选版本,

Beta开放测试版本,

Alpha内部测试版本


11.3-11.5 MySQL安装

11.1-11.5 LAMP架构介绍,MySQL安装_第4张图片

MySQL的几个常用安装包:rpm、源码、二进制免编译


先进入目录 /usr/local/src(以后把所有软件包都放在这个目录下面)

cd /usr/local/src


下载MySQL 5.6安装包,一般都下载x64 

[root@centos7-01 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz


解压MySQL的安装包

[root@centos7-01 src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 


把解压完后的mysql的目录移动并改名 /usr/local/mysql

[root@centos7-01 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql

[root@centos7-01 src]# cd !$

cd /usr/local/mysql

[root@centos7-01 mysql]# ls

bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files


进入目录

[root@centos7-01 mysql]# cd /usr/local/mysql/

建立MySQL用户,因为启动MySQL需要该用户。

[root@centos7-01 mysql]# useradd mysql

建立datadir

#mkdir -p /data/mysql

更改权限

# chown -R mysql:mysql /data/mysql


--user指定用户,--datedir指定目录,

[root@centos7-01 mysql]# ./scripts/mysql_install_db --user=mysql --datedir=/data/mysql

FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:

Data::Dumper

-*

如果发现安装出错,可以先利用grep查找相关词的安装包,如果拿不准安装哪个包的时候可以全部安装。大意就是安装一个后再测试,一个一个来。

(其实第一个就是我们要安装的包。)

[root@centos7-01 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@centos7-01 mysql]# yum install -y perl-Data-Dumper


安装 perl-Data-Dumper完成后,再测试。

[root@centos7-01 mysql]# ./scripts/mysql_install_db --user=mysql --datedir=/data/mysql

11.1-11.5 LAMP架构介绍,MySQL安装_第5张图片

利用echo $?检查执行结果是否成功 0成功 1以上失败

[root@centos7-01 mysql]# echo $?

0

至此,初始化完成。


 

拷贝mysql的配置文件并改名my.cnf(mysql默认识别此命名)

cp support-files/my-default.cnf  /etc/my.cnf 

系统默认已经有/etc/my.cnf

[root@Centos7-01 mysql]# ls /etc/my.cnf

/etc/my.cnf

[root@Centos7-01 mysql]# rpm -qf /etc/my.cnf

mariadb-libs-5.5.56-2.el7.x86_64

如果不复制support-files/my-default.cnf的话,就直接修改my.cnf里面datadir与socket的路径

datadir=/data/mysql

socket=/tmp/mysql.sock

一定要注释掉日志报错与pid报错,因为他们的目录不存在,会产生报错。

11.1-11.5 LAMP架构介绍,MySQL安装_第6张图片

复制脚本文件到指定目录并改名/etc/init.d/mysqld

#cp support-files/mysql.server /etc/init.d/mysqld

#vi /etc/init.d/mysqld

basedir=/usr/local/mysqlmysql的目录

datadir=/data/mysqlmysql data的目录


[root@Centos7-01 mysql]# chmod 755 /etc/init.d/mysqld 

把mysqld加入开机服务列表

[root@Centos7-01 mysql]# chkconfig --add mysqld

[root@Centos7-01 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:关


 /etc/init.d/mysqld start启动服务,同样下面方法也是一样

[root@Centos7-01 mysql]# service mysqld start

Starting MySQL.Logging to '/data/mysql/Centos7-01.err'.

 SUCCESS! 


再检查进程与监听端口。

#ps aux |grep myslqd

#netstat -lntp


另一种方法启动服务,指定目标,更详细。

#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --data/mysql & 


停止服务利用killall mysqld (这种比较安全)

如果发现服务等了好久也停不了 不要用kill -9去杀 否则会导致数据丢失或损坏 这时候唯有等到结束为止。