LNMP环境、mariadb安装、服务管理

LNMP环境介绍

LNMP环境由以下几个部分组成:
Linux + Nginx + MySQL/Mariadb + PHP

Nginx: 是一个WEB服务器,提供HTTP服务的。
MySQL/MariaDB: 是一个关系型数据,用来存数据的(用户名、密码、文章内容)
PHP:是一个编程语言,常用来做网站(qq.com baidu.com google.com ask.apelearn.com)

Nginx是一个WEB服务器,所以用户首先访问到的就是Nginx(静态的请求,会处理图片、js、css,
接收php的请求,但是不处理)把php的请求转给后面的php-fpm

php-fpm 会处理php相关的请求(叫做动态的请求)

动态、静态
所谓静态,指的是Nginx可以直接处理的图片、js、css、视频、音频、flash等等

所谓动态,指的是这些请求需要和数据库打交道。比如,用户登录过程,比如查看一篇文章,或者写一篇文章

mariadb安装

MariaDB是MySQL的一个分支

为什么用MariaDB而不用 MySQL,因为 MySQL被收购了2次,先是被 SUN收购,然后 SUN又被Oracle facebook收购,Oracle是专门做商业的收费的关系型数据库,所以将来
开源的MySQL可能会闭源,收费。很多大型企业都放弃了使用MySQL改用MariaDB

MariaDB的维基百科: https://zh.wikipedia.org/wiki/MariaDB#cite_note-103_release-21
官网 https://mariadb.org/
下载:
1,cd /usr/local/src/ 进入/usr/local/src/目录
2,wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.3.11/bintar-linux-x86_64/mariadb-10.3.11-linux-x86_64.tar.gz 下载MariaDB包
在这里插入图片描述
3,tar zxf mariadb-10.3.11-linux-x86_64.tar.gz 解压
4,mv mariadb-10.3.11-linux-x86_64 /usr/local/mysql 把mariadb-10.3.11-linux-x86_64这个目录移动并改名成/usr/local/mysql目录
ls /usr/local/mysql 查看确认一下/usr/local/mysql这个目录里面的文件对不对
LNMP环境、mariadb安装、服务管理_第1张图片
5,cd /usr/local/mysql 进入/usr/local/mysql这个目录
less INSTALL-BINARY 查看帮助文档,看安装步骤:

shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /usr/local
shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf -
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data
shell> bin/mysqld_safe --user=mysql &

6,mkdir -p /data/mysql 同时创建data和mysql目录(-p级联创建)
在这里插入图片描述
7,useradd -M -s /sbin/nologin mysql 创建一个mysql用户(-M不需要创建家目录,-s /sbin/nologin不登录仅仅只是作为一个服务用户)
grep mysql /etc/passwd 用grep查看刚刚创建的mysql用户
mysql这个用户没有家目录所以/home/mysql是红色的,后面/sbin/nologin不能登录(如果显示/bin/bash就表示可以登录的)
在这里插入图片描述
8,chown -R mysql:mysql /data/mysql 指定/data/mysql目录的属主、属组

9,./scripts/mysql_install_db --datadir=/data/mysql --user=mysql 生成一个库
报错了:
LNMP环境、mariadb安装、服务管理_第2张图片
如何验证一条命令是否正常?
敲完这条命令之后,马上运行 echo $? ,看其输出是否是0,如果是非0说明你这个命令有错误。
如下图示结果是1,表示上一条命令出错了
在这里插入图片描述
错误:

error while loading shared libraries: libaio.so.1: cannot open shared object file: 
No such file or directory 

解决:
10,yum install -y libaio libaio-devel 安装libaio libaio-devel这个包
安装完libaio libaio-devel包之后再去执行
11,./scripts/mysql_install_db --datadir=/data/mysql --user=mysql 生成一个库,然后再执行echo $?此时刚生成库的命令完成了
ls /data/mysql/ 此时查看到/data/mysql/目录中生成了很多文件,就是咱们的mysql库了

接下来拷贝启动脚本
12,cp support-files/mysql.server /etc/init.d/mysqld

编辑启动脚本/etc/init.d/mysqld
13,vi /etc/init.d/mysqld
定义:

basedir=/usr/local/mysql
datadir=/data/mysql

LNMP环境、mariadb安装、服务管理_第3张图片
接下来把这个启动脚本加入到系统的服务列表里面去

服务管理:

14,CentOS6: chkconfig --list //列出系统所有的服务 这里用这个
CentOS7: systemctl list-unit-files 空格键继续往下翻,q键退出
15,chkconfig --add mysqld //增加服务到列表,前提是mysqld文件需要在/etc/init.d/下,并且权限755,如下图:
LNMP环境、mariadb安装、服务管理_第4张图片
16,chkconfig mysqld on //让其开机启动 (chkconfig mysqld off,会把2、3、4、5全部关闭)
在这里插入图片描述
17,/etc/init.d/mysqld start 或者 service mysqld start 启动mysql服务
报错了,没有这个文件,目录不对
LNMP环境、mariadb安装、服务管理_第5张图片
报错是因为没有修改这个配置文件
18,vi /etc/my.cnf
定义:

datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mariadb.log
pid-file=/data/mysql/mariadb.pid

19,service mysqld start 再次启动mysql服务

此时查看到mysql服务正式启动起来了

查看服务: ps aux |grep mysql
查看监听端口:netstat -lnp //看是否有3306

你可能感兴趣的:(学习笔记)