LAMP 架构——LAMP 架构介绍及 Mysql-5.6 二进制免编译安装

LAMP 架构介绍

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

- Linux:一个操作系统;
- Apache:是一个web服务软件;
- MySQL:是当前最为流行的小型关系型数据库;
- PHP:(有时也是指Perl或Python) 的缩写,一般用来建立web 服务器;

httpd、PHP、MySQL 三者的工作模式

LAMP 架构——LAMP 架构介绍及 Mysql-5.6 二进制免编译安装
说明: 服务器上的图片、js、css 等文件属于静态文件;数据库文件是动态文件。


安装 Mysql5.6 二进制免编译步骤

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

环境: 64 位,使用二进制免编译包进行安装;

  • 在安装之前先查看你 Linux 系统是多少位?
[root@dl-001 src]# uname -a        //如果是i686,i586说明是32位的
Linux dl-001 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

1. 在 src 目录下,下载 MySQL64 位的包并解压

[root@dl-001 ~]# cd /usr/local/src
[root@dl-001 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz    //下载MySQL包
[root@dl-001 src]# ls
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@dl-001  src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz        //解压

2. 把解压完的数据移动到 /usr/local/mysql,并进入该目录下(默认没有 mysql 目录,mv 直接创建了此目录并把数据移动到该目录下)

[root@dl-001 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@dl-001 src]# cd !$
cd /usr/local/mysql
[root@dl-001 mysql]# ls    //查看mysql目录下的文件
bin      data  include  man         README   share      support-files
COPYING  docs  lib      mysql-test  scripts  sql-bench

3. 创建 Mysql 用户,并创建目录 data 用来存储数据

[root@dl-001 mysql]# useradd mysql       
[root@dl-001 mysql]# mkdir /data/

4. 初始化数据库

[root@dl-001 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

错误提示 1:

[root@dl-001 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysqlFATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper

解决办法:
根据提示搜索相应的安装包并进行安装:

[root@dl-001 mysql]# yum install -y perl-Data-Dumper

错误提示 2

[root@dl-001 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决办法:

根据提示信息安装有关的库文件:

[root@dl-001 mysql]#  yum -y install libaio* libaio-dev*

[root@dl-001 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 
[root@dl-001 mysql]# echo $?    //检测上一条命令是否正确,如果是0代表正确
0

5. 修改配置文件

[root@dl-001 mysql]# vi /etc/my.cnf    //修改以下配置内容
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d

6. 修改启动脚本

[root@dl-001 mysql]# cp support-files/mysql.server /etc/init.d/mysqld    //将启动脚本添加到系统配置文件/etc/init.d/中
[root@dl-001 mysql]# vim /etc/init.d/mysqld    //修改配置文件
basedir=/usr/local/mysql
datadir=/data/mysql

####7. 添加至开机启动和启动 MySQL 服务

[root@dl-001 mysql]# chkconfig --add mysqld    //添加到开机启动
[root@dl-001 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:关
[root@dl-001 mysql]# service mysqld start        //启动Mysql服务
Starting MySQL.Logging to '/data/mysql/dl-001.err'.
. SUCCESS! 

注意:异常启动 MySQL 服务(当 MySQL 启动脚本无法添加到 /etc/init.d/ 中或者没有启动脚本,可以使用如下方法启动):

[root@dl-001 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
[1] 6552
[root@dl-001 mysql]# 171212 23:19:31 mysqld_safe Logging to '/data/mysql/dl-001.err'.
171212 23:19:31 mysqld_safe Starting mysqld daemon with databases from /data/mysql
        //此处回车
[root@dl-001 mysql]# !ps    //查看是否启动成功
ps aux|grep mysql
root      6552  0.0  0.1 113256  1580 pts/2    S    23:19   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql     6675  2.2 44.5 973052 449504 pts/2   Sl   23:19   0:01 /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/dl-001.err --pid-file=/data/mysql/dl-001.pid --socket=/tmp/mysql.sock
root      6729  0.0  0.0 112664   968 pts/2    S+   23:20   0:00 grep --color=auto mysql
[root@dl-001 mysql]# killall mysqld    //停掉mysqld服务。(安装killall为   yum install -y psmisc )
[root@dl-001 mysql]# 171212 23:25:38 mysqld_safe mysqld from pid file /data/mysql/dl-001.pid ended

[1]+  完成                  /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
[root@dl-001 mysql]# !ps
ps aux|grep mysql
root      6753  0.0  0.0 112664   972 pts/2    S+   23:26   0:00 grep --color=automysql

说明:

  • kill 用来杀死单个进程,killall 用来杀死进程树;
  • 使用 kill 命令会立刻结束正在运行中的进程,如果该进程正在进行磁盘的读写,那么数据会因为进程的结束而丢失,而 killall 命令会等待该数据读写完毕后再将相关进程结束,相对来说使用起来更加安全;