专栏首页程序猿的大杂烩LAMP架构介绍,MySQL、MariaDB介绍,MySQL安装

LAMP架构介绍,MySQL、MariaDB介绍,MySQL安装

笔记内容:

11.1 LAMP架构介绍

11.2 MySQL、MariaDB介绍

11.3/11.4/11.5 MySQL安装

笔记日期:2017.9.26

11.1 LAMP架构介绍

LAMP包含了四种东西,就是Linux+Apache(httpd)+MySQL+PHP的一个简写,Linux我们都很熟悉,它通常作为服务器操作系统,Apache则是一个提供Web服务的一个软件,它真正的名称是httpd。MySQL是数据库软件,存储的是一些数据、字符串、用户信息。PHP是一个脚本语言,和shell类似但是比shell复杂,如果接触过C语言的就知道PHP是用C语言开发的,它通常用来做网站,是前几年比较火热的一门语言,但是现在的趋势是向移动端互联网发展,在PC上访问网站的用户少于在手机上访问网站的用户,所以现在PHP的需求也没有以前高了。

这两年流行的web开发语言是Java、Python、Go等语言,但是有些服务端也还在使用着PHP,因为客户端要向服务端读取数据,数据存储在MySQL里,如果服务端的程序是用PHP写的,那么MySQL要和PHP打交道,既然有服务端使用着PHP程序那么LAMP架构就还有学习的必要。

Apache、MySQL、PHP安装在Linux,Linux做为一个承载的平台,如果搭建一个小的架构的话,Apache、MySQL、PHP可以安装在一台机器上,不过也可以分开安装,但是Apache要与PHP安装在同一台机器上,可以把它俩看作是一个整体,MySQL则可以单独安装在另一台机器上,因为它们可以通过网络连接起来。对于一些小型的、访问量不是很高网站来讲,在一台机器上跑这三个服务是可以的。

架构图:

刚刚上面提到可以把Apache和PHP看作为一个整体,因为PHP是以一个模块的形式与Apache结合在一起的。Apache不能直接与MySQL交互,它只能通过PHP这个模块去MySQL里面读取数据,PHP把读取的数据交给Apache,Apache再交给用户。

我们把PHP与MySQL交互读取数据的这种请求,称为动态请求。当我们登录某个网站的账户时就是一个动态请求,浏览器先将账户密码发送给Apache,Apache再交给PHP去与MySQL数据库里的数据进行比较,正确或者错误的结果再通过Apache反馈给用户。

在网站上我们通常可以看到很多的图片、Logo什么的,这些网站素材的读取也是要到Apache上去请求的,但是这些图片素材没有存储在MySQL数据库里,而是存在服务器操作系统的某一个目录上。Apache可以直接读取到这些图片素材,然后可以直接返回给客户端,这个过程不需要与MySQL数据库打交道,所以称之为静态请求。MySQL数据库是不存储图片或文件的,MySQL数据库只存储账户密码、用户信息、用户的积分等等数据,而且这些数据也是会经常发生变化的数据。

11.2 MySQL、MariaDB介

什么是数据库:

数据库是与应用程序实现信息交互的数据存储、管理软件,并且存储数据的也都可以称为数据库。

MySQL数据库:由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MariaDB数据库管理系统则是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB引擎来代替MySQL的InnoDB引擎。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,因为他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。Oracle公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 过去一年中,大型互联网用户以及Linux发行商纷纷抛弃MySQL,转投MariaDB阵营。MariaDB是目前最受关注的MySQL数据库衍生版,也被视为开源数据库MySQL的替代品。MariaDB虽然被视为MySQL数据库的替代品,但它在扩展功能、存储引擎以及一些新的功能改进方面都强过MySQL。MariaDB名称来自Michael Widenius的女儿Maria的名字。

MariaDB基于事务的Maria存储引擎,替换了MySQLMyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎

11.3/11.4/11.5 MySQL安

二进制免编译包是相当于发布之前就在一台Linux服务器进行了编译,编译后将文件整合到了一个目录,然后再将这些目录和文件打包压缩后再发布出来。二进制免编译包有一个好处,就是我们不用花费那么多时间去编译,直接拿过来安装就就可以了。

二进制免编译包和rpm包有点类似,但是rpm包有一个缺点,就是没办法去定义安装路径,因为rpm包默认装在usr目录下,二进制免编译包则可以自由指定安装路径。

二进制免编译包毕竟是在别的机器上编译的,虽然不会有什么大的问题,但是想追求完美还是自己编译源码包要好一些。

MySQL二进制包下载地址:

http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

要下载与操作系统相对应位数的二进制免编译包,查看自己操作系统位数的命令是uname -a,x86_64的就是64位,i686、i586之类的则是32位,如果这个链接失效可以去r.aminglinux.com上去找。

然后使用wget下载:

下载好之后,第一步就是解压:

第二步,移动文件到/usr/local/下,并且将目录名称改为mysql:

然后进入到mysql目录下,可以看到以下文件和目录:

第三步,创建mysql用户:

第四步,如果系统中没有/data/目录就需要创建这个目录,有这个目录则可以省略这一步:

第五步,初始化生成/data/下的mysql目录,因为mysql要启动需要一个自带的库,所以我们要生成这个库:

这一步有可能会出现以下错误,从错误提示的字面上看可以知道,是缺少Perl的模块,这个模块的名称是Dumper,因为mysql_install_db是一个Perl文件,所以依赖于Perl,意思就是要安装这个模块的包:

但是我们并不知道Dumper具体的包名是什么,这时候我们可以模糊搜索一下这个Dumper的包:可以看到出现了几个和Dumper相关的包,如果不知道是哪个包就全部都安装一遍,不过在这里需要安装的是perl-Data-Dumper.x86_64,所以使用yum安装:

安装完这个包后继续执行初始化生成/data/mysql/目录的命令:

然后马上使用echo $?验证一下是否成功,为0的就是成功:

初始化完成后,进行第六步拷贝配置文件和启动脚本,配置文件在support-files目录下:

support-files目录下有一个模板配置文件:

把这个模板配置文件拷贝到etc目录下并更名为my.cnf:

Mysql的配置文件名称默认是/etc/下的my.cnf,这个名称和路径都是默认的,如果放在其他目录下,则要在mysql启动的时候指定这个配置文件。

我们先不拷贝,先ls一下/etc/my.cnf,可以发现这个文件是自带存在的:

我们可以使用命令查看一下这个文件从哪个包来的:

可以看到这个文件是来自于mariadb。

我们也可以不需要拷贝直接使用这个文件也可以,但是前提是得修改这个文件的配置信息,修改前:

修改后:

修改完之后就可以直接使用这个自带的,以后遇到需求要增加配置内容再去这个文件里增加即可。

第七步,拷贝启动脚本,这个脚本也是在support-files目录下:

拷贝完后编辑mysqld文件,找到basedir和datadir:

第八步,如果不是755权限,就要修改文件权限为755:

如果要将mysql设置为开机启动,就要添加进chkconfig里:

启动mysqld服务:

查看一下进程:

查看一下监听的端口:

如果遇到没有启动脚本文件拷贝,或者没法拷贝的情况下可以用这种方式启动:

查看一下进程,有进程就代表启动成功:

使用命令行方式启动的mysql服务,不能直接使用service等命令去关闭,要使用killall去关闭进程:

killall要安全一些,因为使用kill会直接中断,killall可以先让进程把内存中的数据读写完成之后,再杀死这个进程,kill则不会这么做,所以使用kill命令可能会有丢失数据的风险。

所以当你遇到使用killall命令杀死进程的时候,发现过了一两分钟进程还存在,不要直接killall -9去杀死进程。因为可能你这个进程读写的数据比较多,所以需要一定的时间等待它读写完成,如果直接killall -9会丢失数据或者损坏文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • MySQL自身对性能的影响

    想要了解MySQL自身对性能的影响,就需要先熟悉MySQL的体系结构和常用的存储引擎。MySQL并不完美,却足够灵活,能够适应高要求的环境,例如Web类应用。同...

    端碗吹水
  • Linux单用户模式、救援模式、克隆虚拟机与Linux机器互相登录

    单用户模式类似于windows的安全模式,进入单用户模式后可以更改root的密码,在工作忘记密码了就可以进入单用户模式进行更改。

    端碗吹水
  • 正则表达式及grep命令

    正则就是各种各样的字符组合在一起形成的一串有规律的字符串,编程语言、shell脚本都需要用到正则表达式,可以利用正则来完成一些复杂的需求。

    端碗吹水
  • 优秀后端架构师必会知识:史上最全MySQL大表优化方案总结

    本文原作者“ manong”,原创发表于segmentfault,原文链接:segmentfault.com/a/1190000006158186

    JackJiang
  • MySQL面试题集锦,据说国内外知名互联网公司都在用!

    在今年上半年的数据库使用状况调查中,笔者收集了众多国内外知名互联网公司的数据库使用情况,其中,国外GitHub、Airbnb、Yelp、Coursera均在使用...

    Java周某人
  • 你不知道的MySQL,以及MariaDB初体验

    MySQL 是一个跨世纪的伟大产品,它最早诞生于 1979 年,距今已经有 40 多年的历史了,而如今比较主流的 Java 语言也只是 1991 年才诞生的,也...

    Java中文社群_老王
  • 最新版MySQL在MacOS上的安装与使用!

    我们本文将采用最常规的方式,也就是安装包的方式进行安装,这也是我推荐给新手的安装方式,因为这种安装方式更直观更可控一些,比如对 MySQL 版本的选择和密码配置...

    Java中文社群_老王
  • 终于来啦——MySQL数据库服务

    MySQL团队在Oracle Cloud Infrastructure(OCI)中引入MySQL数据库服务,这是MySQL团队100%开发,管理和支持的唯一服务...

    MySQLSE
  • Why choose MySQL?

    MySQL可以说是目前流行的的开源数据库,在DB-Engines网站上,维护着一个数据库流行度积分榜,最近两年的积分榜一直是Oracle和MyS...

    MySQL数据库技术栈
  • 浅谈MySQL和MariaDB区别?

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将...

    咻一咻

扫码关注云+社区

领取腾讯云代金券