三十七LAMP架构MySQL-MariaDB介绍MySQL安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三十七LAMP架构MySQL-MariaDB介绍MySQL安装相关的知识,希望对你有一定的参考价值。

三十七、LAMP架构、mysql-MariaDB介绍、MySQL安装、

一、LAMP架构

LAMP=Linux+Apache(httpd)+MySQL+php

即把Apache、MySQL、PHP安装在Linux上,组成一个环境来运行PHP的脚本语言,通常是网站。

Linux:操作系统。centos、乌班图就是Linux操作系统。

Apache:提供外部服务的软件,真名叫httpd,常用的web服务软件。

MySQL:数据库软件。存的不是图片文件那些,存的是数据、字符串。

PHP:脚本语言。和shell类似,但比shell复杂。通常以做网站为主。

         可以Apache+PHP安装在一台机器上,MySQL安装在另一台机器上;也  可以三个都安装在一台机器上,但是Apache和PHP需要装在同一台机器上,因为PHP是作为Apache的一个模块存在,它们必须安装在一起。

技术分享图片技术分享图片

  Apache不能和MySQL打交道,只能通过PHP模块交换数据,Apache再交给用户。这个取数据的行为叫做“动态请求”。

动态请求,解析:比如登录一个网站,输入用户名和密码,然后Apache去数据库比对,此时就是通过PHP和MySQL打交道比对数据,先查到数据库里你的密码是什么,然后PHP再对比,然后Apache再反馈给你一个登录状态。

静态文件,解析:比如网站内的logo,也是去Apache请求,这个logo是存在Linux服务器上的一个目录下,拿到图片然后反馈给用户。该过程并没有和MySQL打交道。

二、MySQL-MariaDB介绍

MySQL:一个关系型数据库,由mysql ab公司开发,2008年被sun公司收购(10亿刀),2009年被Oracle公司收购(74亿刀)。

MySQL官网:https://www.mysql.com

MariaDB为MySQL的一个分支,官网https://mariadb.com

MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MYSQL原作者带领大部分原班人马创立。

MariaDB5.5版本对应MySQL的5.5,MariaDB10.0对应MySQL的5.6。

Community社区版;Enterprise企业版;

GA(Generally Available)通用版,生产环境中用;

DMR(Development Milestone Release)开发里程碑发布版;

RC(Release Candidate)发行候选版本;

Beta开放测试版本;Alpha内部测试版本。

三、MySQL安装

MySQL的常用安装包:rpm、源码、二进制免编译。

二进制免编译包的好处:不用花太多时间配置编译,可以直接用。可以指定安装路径,rpm包不支持。

如果要追求性能,就自己编译,若工作中无特殊要求,就安装这种二进制免编译的包就可以了。

# cd /usr/local/src

5.6_64位二进制包:http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

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

# tar zvxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql

# cd /usr/local/mysql

# useradd mysql

# mkdir /data/       存放mysql的数据,ls可以查看到有这个目录,就可以省略这步了。

# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:

Data::Dumper     初始化,实际上就是为了生成/data/mysql这个目录。这个就是mysql的数据库目录,就好比keepass的存密码的数据库一样。此时提示少了一个模块,模块名叫Dumper。

解决思路:当少了包或者模块,又不知道模块的名字,先模糊搜索一下:# yum list |grep perl |grep -i dumper,不知道dumper是大写还是小写,就加-i不区分大小写,此方法不一定行得通但要试一下,如果行不通,就把这一段到www.bing.com、www.google.com(谷歌打不开)、http://coderschool.cn/1853.html(谷歌的镜像,可以到这里面的网站里搜索)

# yum list |grep perl |grep -i dumper

perl-Data-Dumper.x86_64                         2.145-3.el7                  base

perl-Data-Dumper-Concise.noarch            2.020-6.el7                  epel

perl-Data-Dumper-Names.noarch              0.03-17.el7                  epel

perl-XML-Dumper.noarch                           0.81-17.el7                  base

此时搜出来四个,如果不知道哪一个,就一个个都试一下,此处需要安装的第1个。

# yum install -y perl-Data-Dumper.x86_64

# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql   再进行初始化

当你不知道这步有没有执行成功时,第一种方法,看有没有两个ok,第二种,echo $?(必须是在刚敲完上面的那条命令时随后就输,对了就是0)

/usr/local/mysql/support-files/my-default.cnf 模板配置文件

# cp support-files/my-default.cnf /etc/my.cnf  实际上/etc/下有这个my.cnf,这是centos7默认安装的,可以使用,但是要改一下配置。

# vim /etc/my.cnf

[mysqld]

datadir=/data/mysql            修改为/data/mysql  

socket=/tmp/mysql.sock      修改为/tmp/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log  注释掉,没什么用

#pid-file=/var/run/mariadb/mariadb.pid     注释掉,没什么用

#

# include all files from the config directory

#

#!includedir /etc/my.cnf.d

# cp support-files/mysql.server /etc/init.d/mysqld  把启动脚本模板拷贝过去

自定义启动脚本,第一步就是放到/etc/init.d/下,然后再配置。

# vim /etc/init.d/mysqld    按下方向键找到下面两项

basedir=/usr/local/mysql    设置base地址

datadir=/data/mysql            设置数据库目录

其他不需要修改,改完这两项保存即可。

# chmod 755 /etc/init.d/mysqld  此处因为它默认是755,所以不用修改。

# chkconfig --add mysqld    如果想让它开机启动,就把它放到系统服务列表里去。

# chkconfig --list    可以查看到

同样也可以用命令让它启动:/etc/init.d/mysqld start、service mysqld start

假如没有把启动的脚本或者没有放到/etc/init.d/下,可以通过下例方法去启动:

用命令行的方式启动

# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

--defaults-file=/etc/my.cnf 指定配置文件所在的路径

如何停止这个mysql的服务:

# /etc/init.d/mysqld stop

如果以命令行开启的,就只能# killall mysqld

killall:杀进程的命令,更安全,比如在实时的读写数据,写入的数据保存在内存,还没缓存到磁盘里去,killall会先停止当前的操作,等数据全写到磁盘里去了再杀死这个进程。

经验分享:如果mysqld的进程杀不死,ps还有进程,说明数据量很大,还在慢慢的写入磁盘,此时不要用kill -9去杀进程,否则可能会丢数据和损坏你的表,慢慢等就可以了。

关于mysql有两个常用的引擎:innodb(存储量大,和Oracle类似)、myisam(存储量比较小)


以上是关于三十七LAMP架构MySQL-MariaDB介绍MySQL安装的主要内容,如果未能解决你的问题,请参考以下文章

linux架构学习第二十七天 编译安装LAMP(php-fpm)

Linux 学习总结(三十)lamp之mysql安装

学习三十四

LAMP架构

geotrellis使用(三十七)COG 基础介绍

LAMP架构介绍