前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LAMP架构介绍,MySQL、MariaDB介绍,MySQL安装

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

作者头像
端碗吹水
发布2020-09-23 11:00:35
1.1K0
发布2020-09-23 11:00:35
举报

笔记内容:

11.1 LAMP架构介绍

11.2 MySQL、MariaDB介绍

11.3/11.4/11.5 MySQL安装

笔记日期:2017.9.26

11.1 LAMP架构介绍

2214
2214

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则可以单独安装在另一台机器上,因为它们可以通过网络连接起来。对于一些小型的、访问量不是很高网站来讲,在一台机器上跑这三个服务是可以的。

架构图:

2215
2215

刚刚上面提到可以把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介

2216
2216

什么是数据库:

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

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安

2217
2217

二进制免编译包是相当于发布之前就在一台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下载:

2218
2218

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

2219
2219

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

2220
2220

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

2221
2221

第三步,创建mysql用户:

2222
2222

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

2223
2223

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

2225
2225

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

2226
2226
2227
2227

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

2228
2228

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

2229
2229

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

2230
2230

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

2231
2231

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

2232
2232

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

2233
2233

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

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

2234
2234

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

2235
2235

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

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

2236
2236

修改后:

2237
2237

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

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

2238
2238

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

2239
2239

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

2240
2240

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

2241
2241

启动mysqld服务:

2242
2242

查看一下进程:

2243
2243

查看一下监听的端口:

2244
2244

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

2245
2245

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

2246
2246

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

2248
2248

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档