MariaDB 是MySql的一个分支。 了解一下数据库的发展历史,我们知道,MySql数据库不但二次易主,而且还被打入了冷宫(先被sun收购,然后sun被Oracle收购)。因为Oracle有自己的数据库,同时只有Oracle自己的员工可以进行MySql的研发,所以MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。
MariaDB不仅仅是Mysql的一个替代品,它的主要目的是创新和提高Mysql的技术。
MariaDB是基于MySql原来技术的基础上,进行的新的开发发展,同时兼容绝大多数MySql原有技术,对于开发者来说,几乎感受不到任何的不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
LAMP架构盛极一时,这离不开MySQL的免费与易用,但是在Oracle收购了Sun之后,很多公司开始担忧MySQL的开源前景,而最近Oracle进一步闭源的举措更是让人难以安心,众多互联网公司纷纷开始寻求MySQL的替代方案。 MariaDB继续保持开源的理念,源源不断的发布新版本,为互联网技术提供了无限的可能,同时很多互联网巨头已经迁移并使用了MariaDB,所以我们接下来就开始学习MariaDB啦。
首先准备数据库能够所需要使用的用户和用户组。
# 添加名为mysql的用户组,并指定gid 为306 # -r 为创建系统用户组 groupadd -r -g 306 mysql # -r 表示创建系统用户 # -g 表示执行所属组的gid 为306 # -u 表示指定uid 为306 # -m 创建家目录 # -d 指定家目录的路径 # mysql 想要添加的用户名 useradd -r -g 306 -u 306 –m –d /app/data mysql指定数据目录,数据目录的作用就是存储数据库的位置。以 /app/dbdata 为例。
chown mysql:mysql /app/dbdata下面我们用一张动态图来演示上面的两个步骤。
三 准备二进制程序对于已经编译好的二进制格式的程序包,通常我们解压之后就能够直接使用数据库。但是事实上不是这么简单。如果我们曾经自己编译过程序包的话,我们就会知道,在编译二进制程序的过程中,需要指定一些脚本的目录,或者是二进制执行程序的路径。对于MariaDB也是如此,因为我们下载的是已经编译好的二进制程序包,所以我们解压的程序也要放到固定的目录下,这个目录就是/usr/local/mysql。
下面就是解压二进制程序的步骤,不过我们没有直接创建mysql 目录,而是建立了一个软连接指向了我们解压之后的目录。
# 将压缩文件解压到 /usr/local 路径下 [root@localhost ~]#tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local # 切换目录 [root@localhost ~]cd /usr/local/ # 针对解压后的路径 建立软连接 [root@localhost local]#ln -sv mariadb-10.2.8-linux-x86_64/ mysql # 查看建立之后的软连接 [root@localhost local]#ll -d m* drwxrwxr-x 12 1021 1004 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64 lrwxrwxrwx 1 root root 28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/ # 修改目录的权限,让mysql 用户具有全部最高权限。 [root@localhost local]#chown -R root:mysql /usr/local/mysql/ [root@localhost local]#ll -d m* drwxrwxr-x 12 root mysql 290 Aug 18 04:16 mariadb-10.2.8-linux-x86_64 lrwxrwxrwx 1 root root 28 Sep 27 09:39 mysql -> mariadb-10.2.8-linux-x86_64/下面我们去查看一下 解压后的目录内一共都包含哪些内容。
[root@localhost mysql]#ll total 176 drwxrwxr-x 2 root mysql 4096 May 3 02:05 bin -rw-r--r-- 1 root mysql 17987 Aug 17 18:05 COPYING -rw-r--r-- 1 root mysql 86263 Aug 17 18:05 COPYING.thirdparty -rw-r--r-- 1 root mysql 2275 Aug 17 18:05 CREDITS drwxrwxr-x 3 root mysql 18 Aug 18 04:16 data -rw-r--r-- 1 root mysql 8245 Aug 17 18:05 EXCEPTIONS-CLIENT drwxrwxr-x 3 root mysql 19 Aug 18 04:15 include -rw-r--r-- 1 root mysql 8694 Aug 17 18:05 INSTALL-BINARY drwxrwxr-x 4 root mysql 318 May 3 02:05 lib drwxrwxr-x 4 root mysql 30 Aug 18 04:16 man drwxrwxr-x 11 root mysql 4096 Aug 18 04:16 mysql-test -rw-r--r-- 1 root mysql 2371 Aug 17 18:05 README.md -rw-r--r-- 1 root mysql 19510 Aug 17 18:05 README-wsrep drwxrwxr-x 2 root mysql 30 Aug 18 04:16 scripts drwxrwxr-x 30 root mysql 4096 Aug 18 04:16 share drwxrwxr-x 4 root mysql 4096 Aug 18 04:16 sql-bench drwxrwxr-x 3 root mysql 275 Aug 18 04:16 support-files
bin: 可执行的二进制程序的存放目录,客户端程序mysql就位于这个目录下。
COPYING:版权以及开源信息
COPYING.thirdparty: 版权信息
CREDITS:关于MariaDB软件基金会的一些相关信息,里面还有国内的互联网巨头阿里
data:默认的数据库存放目录,如果我们一开始没有指定数据库存放目录的话,那就会被存储到这个位置。
EXCEPTIONS-CLIENT:例外情况
include:MariaDB 所需要的一些程序文件
INSTALL-BINARY: 安装帮助文档,可以详细阅读,对安装数据库有很大的帮助
lib: 软件运行所需要的库文件
man:软件的帮助文档
mysql-test: 数据库的测试组件
scipts:mysql初始化初始化时要用到的脚本文件,通读一下脚本,可以了解Mysql 的安装过程
share: 共享的文件内容