2019-01-24笔记—LNMP_MySQL

LNMP环境

Linux + Nginx + MySQL/Mariadb + PHP

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

工作原理流程:

浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频、js、css等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序,处理的是动态资源请求),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。浏览器再进行解析与渲染然后进行呈现。

所谓静态资源请求,指的是Nginx可以直接处理的图片、js、css、视频、音频、flash等,这些资源直接存储在服务器上,可以被nginx直接获取,不需要经过转换处理

所谓动态资源请求,指的是这些请求需要通过web容器连接到mysql/mariadb数据库,经数据库处理后再给与web服务器相应返回。比如用户登录过程,文章的查看编辑等

MariaDB数据库

数据库安装包下载:https://downloads.mariadb.org/mariadb/+releases/

[root@linux2019 src]# tar zxvf mariadb-10.3.11-linux-x86_64.tar.gz #解压缩安装包
[root@linux2019 src]# mv mariadb-10.3.11-linux-x86_64 /usr/local/mysql    
[root@linux2019 mysql]# mkdir -p /data/mysql    #级联创建目录
[root@linux2019 mysql]# useradd -M -s /sbin/nologin mysql   -M:不需要创建家目录 -s:指定shell
[root@linux2019 mysql]# chown -R mysql:mysql /data/mysql/   #修改目录的属主和所属组

[root@linux2019 mysql]# ./scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
#报错:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory,Installation of system tables failed!
#解决办法:[root@linux2019 mysql]# yum install -y libaio

[root@linux2019 mysql]# echo $?
0   #验证上一条执行的命令的正确性,非0代表有错
[root@linux2019 mysql]# cp support-files/mysql.server /etc/init.d/mysqld  #拷贝启动脚本
[root@linux2019 mysql]# vi /etc/init.d/mysqld   #修改两个参数:
basedir=/usr/local/mysql
datadir=/data/mysql
[root@linux2019 mysql]# chkconfig --add mysqld  #增加服务到列表,前提是mysqld文件需要在/etc/init.d/下,并且权限755
[root@linux2019 mysql]# /etc/init.d/mysqld start    #也可以执行service mysqld start
##报错
[root@linux2019 mysql]# service mysqld start
Starting mysqld (via systemctl):  Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.      [失败]
[root@linux2019 mysql]# vi /etc/my.cnf
#修改参数:
datadir=/data/mysql;
socket=/tmp/mysql.sock;
log-error=/data/mysql/mariadb.log;
pid-file=/data/mysql/mariadb.pid;
[root@linux2019 mysql]# service mysqld start
Starting mysqld (via systemctl):                           [  确定  ]

#查看进程和服务端口
[root@linux2019 mysql]# ps aux|grep mysqld
root      28390  0.0  0.0 115436  1768 ?        S    15:30   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux2019.pid
mysql     28475  0.2  3.7 1714088 75420 ?       Sl   15:30   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/mariadb.log --pid-file=/data/mysql/linux2019.pid --socket=/tmp/mysql.sock
root      28553  0.0  0.0 112724   988 pts/0    S+   15:40   0:00 grep --color=auto mysqld
[root@linux2019 mysql]# netstat -lnp|grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      28475/mysqld
#mysql/mariadb连接
[root@linux2019 ~]# /usr/local/mysql/bin/mysql -uroot
#将mysql命令放入环境变量,简化登陆命令
[root@linux2019 ~]# PATH=$PATH:/usr/local/mysql/bin #重新登陆后该环境变量会失效,所以需要将该环境变量声明添加到系统启动初始化文件中
[root@linux2019 ~]# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@linux2019 ~]# source /etc/profile
#设定密码
[root@linux2019 ~]# mysqladmin -uroot password "root"
[root@linux2019 ~]# mysql -uroot -proot
#mysql -uroot -paminglinux -S/tmp/mysql.sock    指定sock连接
#mysql -uroot -paminglinux -h192.168.222.128 -P3306 远程连接方式,指定端口

PS1:压缩、解压缩
tar(常用搭配参数)

  • -c: 建立压缩档案
  • -x:解压
  • -t:查看内容
  • -r:向压缩归档文件末尾追加文件
  • -u:更新原压缩包中的文件
  • -z:有gzip属性的
  • -j:有bz2属性的
  • -v:显示所有过程
  • -f: 文件名

常用搭配使用:

压缩

  • tar -cvf jpg.tar *.jpg #将目录里所有jpg文件打包成jpg.tar
  • tar -czf jpg.tar.gz *.jpg #将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
  • tar -cjf jpg.tar.bz2 *.jpg #将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
  • tar -cZf jpg.tar.Z *.jpg #将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
  • rar a jpg.rar *.jpg #rar格式的压缩,需要先下载rar for linux
  • zip jpg.zip *.jpg #zip格式的压缩,需要先下载zip for linux

解压

  • tar -xvf file.tar #解压 tar包
  • tar -xzvf file.tar.gz #解压tar.gz
  • tar -xjvf file.tar.bz2 #解压 tar.bz2
  • tar -xZvf file.tar.Z #解压tar.Z
  • unrar e file.rar #解压rar
  • unzip file.zip #解压zip

PS2:服务管理

  • Centos7:systemctl list-unit-files
  • Centos6:chkconfig --list #列出系统所有服务
  • chkconfig mysqld on #设置服务自启动
  • chkconfig --add mysqld #添加服务
  • chkconfig --del mysqld #删除服务

PS3:alias

[root@linux2019 ~]# alias   #查看系统当前已有的alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

[root@linux2019 ~]# alias viens33='vi /etc/sysconfig/network-scripts/ifcfg-ens33' #添加别名
[root@linux2019 ~]# unalias viens33 #删除别名
#只针对当前窗口有效;
#若需要针对当前用户生效,需要将该alias加入到当前用户家目录下的.bashrc文件中;
#若需要针对所有用户生效,需要将该alias写入到/etc/bashrc文件中;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值