11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
11.1 LAMP架构
LAMP其实是Linux
,Apache
,MySQL
和PHP
的简写。
Linux是一个操作系统。
Apache是个提供web服务的软件,可以叫作httpd。
MySQL是个关系型数据库,一般用来存储数据。
PHP是个脚本语言,多用于服务器上用来编写网页。
其中Apache,MySQL和PHP可以安装在同一台服务器上,也可以让MySQL单独在一台机器上 Apache和PHP在另外一台机器上(PHP和 Apache必须在同一台机器上)通过网络来通信
工作流程:当用户使用浏览器来访问服务器 ,Apache就会判断用户需要什么数据,假如用户要访问的是静态数据( 图片,js,css等) Apache就会去存放静态文件的目录下把相应的数据反馈给用户,那用户要访问动态的数据 Apache就是调用PHP来访问MySQL数据库,其中PHP只作为Apache的模块来和MySQL打交道,而Apache自己是不会去访问数据库的。
11.2 MySQL和Mariadb介绍
MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购,2009年sun公司被oracle公司收购。因此以后MySQL有可能要收钱了
MySQL最新版本是5.7GA/8.0DMR,其中MySQL5.6变化比较大,5.7性能上有很大提升。
Mariadb是MySQL的一个分支,最新版本10.2,他是由MySQL原作者创作的,他是款开源软件,其中Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6。
版本号常识
版本 | 含义 |
---|---|
Community | 社区版本(免费) |
Enterprise | 企业版(收费) |
GA(Generally Available) | 通用版本,在生产环境中用的(通用版) |
DMR(Development Milestone Release) | 开发里程碑发布版(有重大技术改进) |
RC(Release Candidate) | 发行候选版本 |
Beta | 开放测试版本 |
Alpha | 内部测试版本 |
11.3/11.4/11.5 MySQL安装
安装方式
通常安装MySQL有三种方式 :
1.rpm包安装,用yum安装 但是不能自定义安装路径
2.源码包安装,使用编译安装 可自定义安装路径,但安装时间长,步骤繁琐
3.二进制免编译包安装, 二进制免编译包就是在别的机器上编译后把内容放到一个目录下并打包压缩的的包,可自定义安装路径,他不够源码包稳定,但是安装时间短,步骤简单
这里我们使用二进制免编译包安装
我们可以去 r.aminglinux.com 去下载MySQL的二进制免编译包
uname -a :查看系统的位数
x86_64对应的是64位系统,i686 i586对应的是32位系统,因此我们下载5.6的64位即可
步骤
1.我们默认把所有安装的应用软件和包都放在/usr/local/src/目录下
1 | [root@localhost ~]# cd /usr/local/src/ ##移动到src目录下 |
2.下载二进制免编译包
1 | [root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz |
3.解压二进制免编译包
1 | [root@localhost src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz |
4.把解压的包的目录放在/etc/local/下并改名为mysql目录
1 | [root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql/ |
可以用ls看看是否如下 和下面不一样有可能是路径搞错了
5.进入mysql目录下 并建立mysql用户和创建data目录(默认已经在mysql目录下)
1 | [root@localhost src]# cd /usr/local/mysql/ ##进入mysql/目录 |
6.初始化mysql 并指定用户和数据目录
1 | [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql |
./scripts/mysql_install_db
初始化mysql--user
指定运行软件的用户--datadir
指定数据的目录路径 最后是绝对路径
错误1
2FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
我们遇到错误可以使用两种思路:
1.模糊搜索 这里少模块就是少哪个包 关键字Dumper perlyum list |grep perl |grep -i dumper
2.利用搜索引擎 谷歌 百度等
这里是./scripts/mysql_install_db
是Perl脚本编写的 缺少了Perl的Dumper模块
之后一个个安装在初始化试试 这里少了perl-Data-Dumper包
初始化完成成功后可以观察是否有两个OK
也可以使用echo $? 是否为01
2[root@localhost mysql]# echo $?
0
7.从模版中复制配置文件和启动脚本
1 | [root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf |
support-files/my-default.cnf
是mysql的模版配置文件/etc/my.cnf
是mysql的配置文件 系统默认存在
1 | [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld |
support-files/mysql.server
是mysql的模版启动脚本/etc/init.d/
是系统服务启动的目录
8.编辑启动脚本mysqld并开机启动服务
1 | [root@localhost mysql]# vim /etc/init.d/mysqld |
定义下basedir和datadir的路径1
2basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql/
1 | [root@localhost mysql]# chkconfig --add mysqld ##添加服务 |
也可以使用service命令启动服务1
[root@localhost mysql]# service mysqld start ##启动服务
查看服务是否运行1
2[root@localhost mysql]# ps aux |grep mysqld ##查看mysqld进程是否启动
[root@localhost mysql]# netstat -ltnp ##查看3306端口是否监听
都有说明mysql安装成功了
也可以使用内置命令来启动服务1
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/usr/local/mysql/data/mysql/ & ##&后台执行
但要停止服务只能使用killall命令 killall命令会把数据先从内存中存放到硬盘上之后再杀死进程的 这样就不怕因为杀死进程而数据丢失1
[root@localhost mysql]# killall mysqld