一、LAMP架构介绍
- LAMP是Linux apache MySQL php的简写,即可吧apache MySQL和PHP安装在Linux系统上,
- 组成一个坏境来运行PHP的脚本语言,通常是网站。
- Linux是操作系统
- apache提供web的一个软件
- MySQL 存储的一个软件,数据库
- PHP 脚本语言
- 三个角色可以在一台机器、也可以分开,但Apache和PHP必须在一起)
- httpd、PHP、MySQL三者的工作方式。如图:
二、MySQL_MariaDB介绍
- MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)
- sun公司主要做Java
- 在后期后学到jdk,jdk 就是由 sun 公司开发的
- oracle公司,专门做数据库的,都是比较大型的,比如银行等金融企业
- oracle通常会装在小型机上,小型机和linux不同,叫做 Unix ,操作系统是unix,是收费的
- 小型机是一个 “超级” 计算机,这个 “超级” 是相比较于你的电脑,比如:有超过几百个CPU,有超过 上T 的内存,这些配置去运行oracle
- unix系统很稳定,oracle是一个商业公司,安装oracle是需要花钱的
- MySQL官网https://www.mysql.com 最新版本5.7GA/8.0DMR
- MySQL5.6变化比较大,5.7性能上有很大提升
- Mariadb为MySQL的一个分支,官网https://mariadb.com/最新版本10.2
- MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.
- Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6
- Community 社区版本(免费的开源版本),Enterprise 企业版(收费版本更加全面),GA(Generally Available)指通用版本(稳定版本)在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版(有重大突破的版本),RC(Release Candidate)发行候选版本(待发布的版本),Beta开放测试版本(对外测试的版本),Alpha内部测试版本(不对外测试的版本)
三、MySQL的安装
MySQL常见安装包
rpm包——>直接yum安装即可
源码包——>
二进制免编译包——>这种包相当于是在发布之前,先在一台linux服务器上做了编译,编译完之后,把编译完成的文件重新安排放到一个目录下去,然后在打包压缩,最后再发布
- 优势:我们不用花更多的时间去配置、去编译,直接拿来就可以使用,这和rpm包有点类似,但rpm包定义不能所安装的路径,默认安装在usr下面;而二进制免编译包可以放到一个目录下
- 二进制免编译包,是在其他服务器、Linux平台上编译的,也是可以在centos上使用
- 若想追求极致的性能,那最好自己去编译
- 查询平台是多少位的
- 二进制的包是区分平台的,是32位,还是64位的
- 查看平台,用 uname -a 命令查看
- i686 i586 就是32位平台的
- x86_64就是64位平台的
- centos7以64位平台为主,但也有32位的版本,32位的版本是基于64位的基础上又一次编译的
- MySQL的几个常用安装包:rpm、源码、二进制免编译
- cd /usr/local/src //切换到下载源码包的目录
- wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz(失效后,可前往r.aminglinux.com找最新的下载地址)
- tar -zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz //解压
- 移动解压目录并更名: mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
- cd /usr/local/mysql //进入到该目录下
- useradd mysql //创建一个mysql用户
- mkdir /data/ //创建一个目录,是为了存放mysql的数据,把数据目录放到这个目录下
- ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //初始化,所谓初始化就是要生成/data/mysql ,因为mysql要想启动,首先要有一个自带的库,自带的库叫mysql
- 将mysql自带的配置文件移至系统配置目录下,并修改配置文件,指定datadir的目录,以及socket的目录: cp support-files/my-default.cnf /etc/my.cnf (系统默认自带有my.cnf文件)
[mysqld]
datadir=/data/mysql
socket=/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
- 将mysql自带的脚本文件移至chkconfig的执行目录下,并定义basedir(程序目录)和datadir: cp support-files/mysql.server /etc/init.d/mysqld
- 将脚本文件的权限更改为755(一般默认为755):chmod 755 /etc/init.d/mysqld
- 将脚本文件加入到chkconfig服务中: chkconfig --add mysqld
- 如果想设定启动脚本假如系统服务项,开机启动并启动mysql操作如下:
[root@gaodehua33 mysql]# chkconfig --add mysqld #把mysqld服务假如到系统服务列表中
[root@gaodehua33 mysql]# chkconfig mysqld on #使其开机启动
[root@gaodehua33 mysql]# service mysqld start #启动服务
- 使用命令 /etc/init.d/mysqld start 或 service start mysqld 启动服务,如图:
- 如果没有启动脚本的模板时,可以使用命令行的方法启动进程:/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 指定mysqld_safe的路径,配置文件,用户以及datadir的路径,再使用&符号丢至后台。该方式启动的mysql服务,只能通过 killall mysqld (该命令相对kill更加安全)命令来结束。
kill和killall区别
- mysql在实时的读写数据,写的速度很快,有可能写入的数据保存在内存里(缓存中),如果这部分缓存并没有同步到磁盘里去,而直接去kill 掉,就意味着你的数据丢失,而使用killall 命令,则会先停止当前的写读操作,然后把没有完成写入到磁盘里的数据在慢慢写入到磁盘里去,直到写完之后才会把进程杀死。
- 这就意味着如果将来有一天mysqld的进程始终杀不死,等待一分钟还是没有杀死,那说明你的数据量很大,它正在慢慢的写入到磁盘到磁盘里去,这个时候不要强制的使用 kill 9 杀进程,这样非常有可能丢数据,还会损坏你的表。