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

时间:2022-03-22 12:53:26

LAMP架构介绍

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

- Linux:一个操作系统;
- Apache:是一个web服务软件;
- MySQL:是当前最为流行的小型关系型数据库;
- PHP:(有时也是指PerlPython) 的缩写,一般用来建立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命令会等待该数据读写完毕后再将相关进程结束,相对来说使用起来更加安全;