5月23日任务

课程内容:

11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
扩展
mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html
mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html

11.1 LAMP架构介绍

LAMP包含Linux+Apache(httpd)+MySQL+PHP

(Google、淘宝、百度、51CTO博客、猿课论坛)等,这些网站都属于PHP网站。

Linux服务器里面三个角色可以在一台机器,也可以分开(httpd和PHP要在一起),可以把httpd和PHP理解成一个整体,MySQL可以单独一台机器,这样是可以的,对于一些访问量不大的网站,可以在一台机器上跑3个程序是可以的,httpd和PHP是一个整体,最终相当于在一台服务器上起了2个服务,一个是httpd一个是MySQL,也可以把httpd装在一台机器上,MySQL装在另外一台机器上,通过网络的形式连接起来。

Apache和PHP是一个整体,因为PHP是以一个模块的形式和Apache结合在一起的,但是Apache不能直接和MySQL相互去打交道,只能够通过PHP这个模块去MySQL里面拿数据,拿到数据后PHP把结果交给Apache,Apache再交给用户,是这样的一个过程,这种PHP和MySQL相连去取数据的行为叫动态请求。

举例说明什么是动态请求:比如现在访问的猿课论坛,每天都需要发帖子,登录时候输入网址,然后用户名和密码的请求交给Apache,Apache把用户名和密码的数据去数据库比对,检查是否正确,通过PHP模块和MySQL打交道,首先从MySQL去查这个用户名信息对不对,然后PHP再做一个对比,如果对的话Apache就会返回用户一个登录状态,这样的过程就是动态请求。

静态请求: 访问猿课网站时候的一个Log图片,同样也是需要到Apache上去请求,图片文件不会存放到MySQL,Apache拿到Log直接从静态文件目录获取(在Linux服务器上的某一个目录里面),然后返回给用户,这个过程并没有和MySQL打交道,这样的过程就是静态请求。

猿课论坛的用户名和密码,以及每天回复的帖子和积分都是存放到MySQL里面。

11.2 MySQL、MariaDB介绍

11.3/11.4/11.5 MySQL安装

安装MySQL的方法步骤:

[root@jimmylinux-002 ~]# uname -a  可以查看Linux属于32位还是64位平台,X86_64就表示64位,如果是i586、i686就表示32位平台的,当然在CentOS7里面直接就是64,不再有32位之分。

安装包虽然有32位的,但是也建议大家使用64位,因为64位的兼容性会更好。

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

[root@jimmylinux-002 src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz  下载完以后首先解压软件包

[root@jimmylinux-002 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql  移动目录并且改名

[root@jimmylinux-002 src]# cd /usr/local/mysql  进入到MySQL目录

[root@jimmylinux-002 mysql]# useradd mysql  创建MySQL用户

[root@jimmylinux-002 mysql]# mkdir /data/  创建data目录,如果已经存在可以省略这一步。

[root@jimmylinux-002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

指定用户为MySQL,在指定它的datadir等于/data/mysql

出现报错信息,这个脚本属于Perl脚本,和PHP和Python类似的脚本语言,少了一个模块Dumper。

如果不知道到底安装缺少的包是什么名字,那么就可以yum模糊搜索。

[root@jimmylinux-002 mysql]# yum list |grep perl |grep -i dumper  包含Perl和dumper的模糊搜索,-i表示不区分大小写,这里指的是Dumper。

搜索出来的安装包,如果在拿不准的情况下,可以一个一个去尝试安装。

[root@jimmylinux-002 mysql]# yum install -y perl-Data-Dumper

[root@jimmylinux-002 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql  安装完成以后再执行这条命令

如果有如下报错

需要再创建绝对路径的目录  mkdir -p /data/mysql/ 

再执行初始化命令,如果出现如下图2个OK表示成功,或者在刚执行的命令下紧着输入echo $? 如果非0表示不成功,0表示成功。

初始化完成以后,再copy配置文件和启动脚本。

cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld

[root@jimmylinux-002 mysql]# ls support-files/my-defaulet.cnf  配置文件在这个路径下,并且有一个模板的配置文件。

默认的模板配置文件没有什么内容,而且大多数都是以#号注释掉的。

cp support-files/my-default.cnf  /etc/my.cnf  拷贝配置文件到/etc,而且改名my.cnf

MySQL的配置文件就叫my.cnf,而且固定放在etc下,如果想放到其他地方,那么在启动的时候需要做一个指定,不然默认会去etc下面的my.cnf。在复制之前可以看一下etc下面有一个自带的my.cnf  还可以查看自带的my.cnf是由那个rpm包安装来的。

[root@jimmylinux-002 mysql]# vi /etc/my.cnf  当然不用拷贝my.cnf文件,也可以直接使用etc下自带的my.cnf,但是必须要修改下里面的内容才行(如下图)。

cp support-files/mysql.server /etc/init.d/mysqld  拷贝启动脚本到/etc/init.d/下并改名为mysqld

vi /etc/init.d/mysqld  编辑启动脚本,定义成以下内容,其他保持默认不用修改,保存退出。

在把文件/etc/init.d/mysqld 修改成755权限,其实默认已经是755,不需要再修改。

如果想开机自动启动,需要把mysqld加入到系统服务列表里面去,这样下次开机就会自动启动。

[root@jimmylinux-002 mysql]# service mysqld start  也可以直接使用命令启动

假如没有把启动的脚本放到/etc/init.d/下面去,或者根本就没有这样的启动脚本模板去拷贝,那么可以使用命令的方式去启动。

首先停掉mysqld服务

然后再执行命令方式启动

[root@jimmylinux-002 mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

MySQL启动了,如何去关闭呢,可以使用killall mysqld 关闭,一般使用这样的方式会更加安全些。

MySQL在实时的写入数据的时候,如果使用kill+PID方式,这样很容易导致文件丢失或损坏,要是使用killall,它会先停止当前的写读操作,然后把没有完成的写入到磁盘的数据慢慢写进去,直到写完之后才把进程杀死,如果以后遇到mysqld的进程始终杀不死,等了一分钟还没有杀死,ps还会有进程,说明数据量很大,正在慢慢的写入到磁盘里去,这个时候不要强制使用kill -9去杀进程,这个时候很容易丢数据甚至会损坏表,只能慢慢的等,尤其是数据量有几百个G,而且用的引擎是innodb的引擎,关于MySQL有2个引擎,一个是innodb,一个是myisam,myisam空间小存储量很小,innodb比较大和oracle差不多。

LAMP架构介绍、MySQL、MariaDB介绍、MySQL安装的更多相关文章

  1. CentOS 7 x64下Apache+MySQL(Mariadb)+PHP56的安装

    每次搭建新服务器,都要来来回回把这些包再装一下,来来回回搞了不下20遍了吧,原来都是凭经验,配置过程中重复入坑是难免的,故写此文做个备忘.虽然有像xampp这样的集成包,但是在生产环境的Linux发行 ...

  2. ubuntu 安装 mysql mariadb

    本教程面向Ubuntu服务器,适用于Ubuntu的任何LTS版本,包括Ubuntu 14.04,Ubuntu 16.04,Ubuntu 18.04,甚至非LTS版本(如Ubuntu 17.10和其他基 ...

  3. Ubuntu安装MySQL/MariaDB

    安装MariaDB/MySQL MariaDB是MySQL的分支,与MySQL高度兼容,几乎所有的命令都一样.MariaDB是由前MySQL的开发人员离开Sun公司后开发的,目的是为了防止Oracle ...

  4. Centos7 安装配置优化mysql(mariadb分支)

    1.说明 由于在centos7的yum仓库中没有mysql,centos7用mariadb替代了mysql. mariadb是mysql源代码的一个分支, mysql被ORACLE闭源,而mariad ...

  5. 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构

    目录 实现CentOS 7 编译安装基于 fastcgi 模式的多虚拟主机的wordpress和discuz的LAMP架构 准备环境: 准备软件版本: 主机名修改用以区分 数据库服务器 实现数据库二进 ...

  6. MySQL/MariaDB系列文章目录

    以下是本系列文章的大纲,此页博文完全原创,花费了作者本人的极大心血,如转载,请务必标明原文链接. 如果觉得文章不错,还请帮忙点下"推荐",各位的支持,能激发和鼓励我更大的写作热情. ...

  7. Linux centos7 LAMP架构介绍、 MySQL、MariaDB介绍、MySQL安装

    一.LAMP架构介绍 为Linux+Apache(httpd)+MySQL+PHP简写,把后三者安装在Linux Apache是最常用的的web服务软件,MySQL为小型的数据库存储软件,PHP为脚本 ...

  8. Mysql数据库介绍、安装和配置文件

    Mysql数据库介绍.安装和配置文件 MySQL数据库介绍 mysql是开源关系型数据库,遵循GPL协议. mysql的特点是性能卓越且服务稳定,开源,无版本限制,成本低,单进程多线程,多用户,基于C ...

  9. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

随机推荐

  1. WebApi -用户登录后SessionId未更新

    描工具检测出.net的程序有会话标识未更新这个漏洞 用户尚未登录时就有session cookie产生.可以尝试在打开页面的时候,让这个cookie过期.等到用户再登陆的时候就会生成一个新的sessi ...

  2. 程序员接私活经验总结,来自csdn论坛语录

    以下为网上摘录,以做笔记: 可是到网上看看,似乎接私活也有很多不容易,技术问题本身是个因素,还有很多有技术的人接私活时被骗,或者是合作到最后以失败告终,所以想请有经验的大侠们出来指点一下,接私活是怎么 ...

  3. [ZJOI2006]碗的叠放

    Description 小H有n个碗需要放进橱柜,她希望将他们叠起来放置.你知道每个碗都是规则的圆柱体,并且都是上宽下窄,你已经测量出了每个碗的两个半径及高,请你帮小H找出一种叠放顺序,使得叠放出来的 ...

  4. 操作系统实现(一):从Bootloader到ELF内核(转载)

    原文链接: http://www.cppblog.com/airtrack/archive/2014/10/30/208729.html Bootloader 我们知道计算机启动是从BIOS开始,再由 ...

  5. 网络安全-主动信息收集篇第二章-三层网络发现之ping

    第三层网络扫描基于TCP/IP.ICMP协议. 优点:可路由.速度比较快 缺点:相对于二层网络扫描较慢,容易被边界防火墙过滤 所有扫描发现技术,都会有相应的对抗办法,所以无论是来自二层的网络扫描还是来 ...

  6. python 爬取猫眼电影top100数据

    最近有爬虫相关的需求,所以上B站找了个视频(链接在文末)看了一下,做了一个小程序出来,大体上没有修改,只是在最后的存储上,由txt换成了excel. 简要需求:爬虫爬取 猫眼电影TOP100榜单 数据 ...

  7. PTA刷题记录(1)

    团队天梯赛-------(2)分值:20 题目要求:你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** ***   *  *** ***** 所谓“沙漏形状” ...

  8. SysTick系统定时器

    1.SysTick定时器介绍 SysTick定时器也叫SysTick滴答定时器,它是Cortex-M3内核的一个 外设,被嵌入在 NVIC 中.它是一个24 位向下递减的定时器,每计数一 次所需时间为 ...

  9. 「每日五分钟,玩转 JVM」:GC 概览

    前言 GC(Garbage Collection)是我们在学习 JVM 的过程中不可避免的一道坎,接下来,我们就来系统的学习一下 GC. 做一件事情之前,我们一定要去知道我们为什么要去做,这里不仅仅指 ...

  10. Java ->在mybatis和PostgreSQL Json字段作为查询条件的解决方案

    Date:2019-11-15 读前思考: 你没想到解决办法? PostgreSQL 数据库本身就支持还是另有解决办法? 说明:首先这次数据库使用到Json数据类型的原因,这次因为我们在做了一个app ...