11月9日任务
11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
LAMP介绍
LAMP:Linux + Apache(httpd) + MySQL + PHP
- Apache:搭建网络服务器
- MySQL:存储数据
- PHP:网页,数据交互
对于搭建一个简单的LAMP架构,可以将上述的3中软件安装再同一个Linux内;对于大的LAMP架构,必须保证Apache和PHP在同一个服务器上,MySQL安装在另外的服务器,通过网络来进行数据的交互。
Web日常请求
- 用户在浏览器输入网址,点击登录,将请求发送给Apache
- Apache判断是否为动态请求,再根据请求不同返回不同的网页信息:
- 动态:用户名密码登录;通过apache的php模块来访问MySQL数据库对比后,返回网址;
- 静态:普通网页请求,不需要与MySQL数据库进行对比
MySQL_MariaDB介绍
MySQL是一个关系型数据库,由mysql ab公司开发,并于2008年被sun公司收购;2009年sun公司被oracle公司收购。
MySQL官网:https://www.mysql.com
最新版本5.7GA/8.0DMR
MySQL5.6变化比较大,5.7性能上有很大提升
Mariadb是MySQL的一个分支,官网https://mariadb.com/ 最新版本10.2
MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,该公司为MySQL原班人马创建。
MariaDB5.5对于MySQL5.5,10.0对应MySQL5.6
关于软件版本
- Community 社区版
- Enterprise 企业版
- GA(Generally Available) 通用版本
- DMR(Develoment Milestone Release) 开发里程碑发布版
- RC(Release Candidate) 发行候选版本
- Beta 开发测试版本
- Alpha 内部测试版本
MySQL安装
可以使用rpm、源码、二进制免编译的方式来安装MySQL。
推荐使用二进制免编译安装包,解压后初始化即可使用。
[root@localhost src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
--... 10:44:16-- http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
正在解析主机 mirrors.sohu.com (mirrors.sohu.com)... 221.236.12.140
正在连接 mirrors.sohu.com (mirrors.sohu.com)|221.236.12.140|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:316320366 (302M) [application/octet-stream]
正在保存至: “mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz”
100%[================================>] 316,320,366 417KB/s 用时 5m 47s
... 10:50:03 (891 KB/s) - 已保存 “mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz” [316320366/316320366])
安装步骤
- 解压下载的二进制已编译软件包
[root@localhost src]# tar zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@localhost src]# ll
总用量 308912
drwxr-xr-x. 13 root root 191 11月 11 10:54 mysql-5.6.36-linux-glibc2.5-x86_64
- 移动目录至/usr/local/下
[root@localhost src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost src]# cd /usr/local/mysql/
- 创建用户mysql
[root@localhost mysql]# useradd mysql
- 创建数据存放目录
[root@localhost mysql]# mkdir /data
- 初始化mysql
# 数据库初始化
[root@localhost mysql]# ./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
# 查询缺少的软件包并安装
[root@localhost mysql]# 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
[root@localhost mysql]# yum install -y perl-Data-Dumper
# 重新初始化
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
# 判断是否成功初始化
[root@localhost mysql]# echo $?
0
- 拷贝/修改配置文件
# 原/etc/目录下存在my.cnf文件,直接覆盖
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
# 修改配置文件内basedir和datadir参数
[root@localhost mysql]# vi /etc/my.cnf
修改[mysqld]内的2行即可
basedir = /usr/local/mysql
datadir = /data/mysql
保存退出
- 配置mysql开机启动
# 拷贝启动脚本至开机启动目录/etc/init.d/,并重命名为mysqld
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
# 修改mysqld配置文件,
[root@localhost mysql]# vi /etc/init.d/mysqld
同样要修改一下参数
basedir=/usr/local/mysql
datadir=/data/mysql
# 修改权限并使用chkconfig设置开机启动
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
# 查看是否配置成功
[root@localhost mysql]# chkconfig --list
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
欲查看对特定 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole 0:关 1:关 2:关 3:关 4:关 5:关 6:关
network 0:关 1:关 2:开 3:开 4:开 5:开 6:关
启动/关闭mysql服务
- 服务方式
[root@localhost mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
.. SUCCESS!
[root@localhost mysql]# ps aux | grep mysqld
root 2856 0.0 0.1 113264 1616 pts/0 S 13:52 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql 2990 8.5 45.0 1308984 450220 pts/0 Sl 13:52 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root 3019 0.0 0.0 112676 972 pts/0 R+ 13:53 0:00 grep --color=auto mysqld
# 关闭mysqld
[root@localhost mysql]# service mysqld stop
或
[root@localhost mysql]# /etc/init.d/mysqld stop
- 命令行方式
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
[1] 3067
[root@localhost mysql]# 171111 14:02:06 mysqld_safe Logging to '/data/mysql/localhost.localdomain.err'.
171111 14:02:06 mysqld_safe Starting mysqld daemon with databases from /data/mysql
[root@localhost mysql]# !ps
ps aux | grep mysqld
root 3067 0.1 0.1 113268 1600 pts/0 S 14:02 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql
mysql 3189 6.8 44.9 1300788 449528 pts/0 Sl 14:02 0:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root 3212 0.0 0.0 112676 976 pts/0 S+ 14:02 0:00 grep --color=auto mysqld
[root@localhost mysql]# killall mysqld
也可以通过kill命令关闭mysql主进程来关闭
[root@localhost mysql]# kill 3189
killall命令安装:yum install -y psmisc
kill与killall的区别
也可使用kill命令来关闭mysql进程,但是会造成当前读写的部分数据丢失;
killall命令则会停止后续的读写操作,并将之前未写入磁盘的数据保存到磁盘后,然后杀死进程。
关闭mysql进程时要注意的事项
在使用killall关闭mysql时会有时短时间关闭不了,没关系,因为数据过多需要时间,等待即可,千万不要使用kill -9强制杀死,会造成数据的丢失!
安装过程可能缺少的软件包
编译安装前提
yum install -y gcc gcc-c++
安装mysql
yum install -y perl-Data-Dumper libaio-devel