5月23日任务
11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
LAMP架构介绍
从现在开始了针对实际工作的内容。
L Linux
A Apache(HTTPD)
M Mysql
P PHP
三个角色可以在一台机器,也可以分开。httpd和php要在一起,数据库可以从远程访问,或者分布式访问。
MySQL_MariaDB介绍
Mariadb
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。
当前最新(2018.05)的版本有两种mariadb ax tx。以下是简单的区别。
安装MYSQL
主要有三种安装方式
rpm。yum安装。缺点是不好定义路径。默认安装在usr/local
源码安装。config make make install 。mysql是cmake而不是make。
二进制免编译。是指相当于在发布之前,首先在一台linux服务器上做了一个编译,编译完之后将编译完成的文件重新放到一个目录下后打包压缩并发布。好处是不需要花很大的精力编译,直接使用。可以直接放到需要的指定目录下。
接下来演示的是第三种方式来安装。
下载包。首先要到下载目录,use/local/src
下载的时候要区分平台,要下载对应的32/64位包。查看自己系统是什么平台,使用 uname -a
然后下载对应的二进制包
http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
2. 解压
3. 解压后的目录改名同时移动到/usr/local/mysql目录下
4. 进入mysql/后创建一个mysql的用户和一个data/目录---存放mysql的数据,数据目录
5 初始化mysql这个库,指定mysql的用户是什么,这里我们是mysql这个用户 然后再指定数据的目录是 /data
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
这出现了一个错误
这里提供了一个如何查找缺失包或者模块的思路,就是yum 查找 yum list |grep perl |grep -i dumper
如果不确定的话可以将以上几种都安装一遍。实际上这需要安装的是yum install -y perl-Data-Dumper
安装完之后重新执行
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
成功
6. 初始化完成了,接下来需要拷贝配置文件和启动脚本。
模板配置文件:mysql/support-files/my-default.cnf 需要拷贝到 /etc/my.cnf my.cnf就是mysql的配置文件的名字,且在etc下,如果用其他名字或者放在其他位置需要在启动的时候进行指定。
这个时候会发现在etc目录下已经有了这个配置文件,其实无妨,改成需要的就好。也可以通过rpm -qf来查这个文件是从哪来的。
然后 vim /etc/my.cnf 进行修改配置
启动脚本:cp mysql/support-files/mysql.server /etc/init.d/mysqld 拷贝后有几处地方需要编辑
basedir用来指定mysql 程序目录
datadir用来定义数据存放的位置
然后将配置文件的权限给成755
将其加入系统服务列表中去 chkconfig --add mysqld 然后查看一下,下次开机会自动启动。
有几种启动服务的方式
service mysqld start
/etc/init.d/mysqld start
查看进程
看看监听的端口是什么端口
还有另外一种命令行启动的方法
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 放到后台操作
killall mysqld 关掉服务,因为是命令行启动的,并非服务启动。killall的好处是先停止写读操作,完成当前的写读之后才将进程杀死。