随着我们进入大数据时代,数据已经被人们称为信息工业的石油,由此可见数据的重要性。在企业中,大部分数据都是通过数据库的方式管理的,例如众所周知的:Oracle、MySQL、SQL Server、DB2、MariaDB等。MySQL是老牌的开源数据库,但Oracle收购了Sun公司以后,MySQL的控制权也就落到了Oracle手里。为此,MySQL的创始人Monty Widenius 重新开发了MariaDB,MariaDB是MySQL的一个分支,其语句和MySQL几乎一样。   在生产中,稳定压倒一切。因此系统光盘里自带的数据库版本总是偏向于低版本的,如果这时候需要学习一下新版本的新功能、变化,你可以通过一下几种方法来安装新版本的数据库。

一.本地yum安装

yum install mariadb-server

这种方法安装的是系统光盘自带的比较老的版本。

二.官方yum安装

MariaDB官网为我们提供了各种版本的yum源,只要配置一个新的yum站点就可以安装了,而且更好的一点就是,MariaDB官网还为我们提供了相对应系统和cpu架构的yum配置信息,我们只需要找到对应的系统版本和cpu架构,复制到本机yum上就可以了。
yum配置信息地址:
https://downloads.mariadb.org/mariadb/repositories/#mirror=shanghai-university
选择对应的Linux版本类型 选择系统版本和cpu架构

复制yum源信息,保证安装主机可以连接互联网

yum install mariadb-server

这里虽然光盘里也还有一个安装包,但系统会默认安装版本高的版本。

三.官方二进制包安装

二进制包是官方已经为我们进行了编译,我们直接下载其二进制包来安装就可以,这样就免去了编译源码的麻烦。
各种版本的下载地址:https://downloads.mariadb.org/mariadb/
这里有很多平台和架构,选择的时候一定要看清楚。

下载好二进制包,我把包放到/data目录下

  • (1) 准备用户

      	groupadd -r -g 306 mysql
      	useradd -r -g 306 -u 306  –d /app/data mysql  /app/data  将来用来放数据,因此建议用单独的逻辑卷,随着数据量的增加,可以扩容
      	不建议创建家目录
    
  • (2) 准备数据目录

      	以/app/data为例,建议使用逻辑卷
      	chown mysql:mysql /app/data  修改文件夹和文件的权限
    
  • (3) 准备二进制程序

      	tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local  /usr/local为编译时候指定的路径 
      	cd /usr/local;ln -sv mariadb-VERSION mysql   解压后带版本号,创建软连接,便于以后升级
      	chown -R root:mysql /usr/local/mysql/   记得修改权限
    
  • (4) 准备配置文件

      	mkdir /etc/mysql/
      	cp support-files/my-large.cnf /etc/mysql/my.cnf   复制配置文件
      	[mysqld]中添加三个选项:
      	datadir = /app/data
      	innodb_file_per_table = on  每个表生成一个独立的文件,默认是所有表一个文件,不方便管理。10.2以后的版本默认此项
      	skip_name_resolve = on 禁止主机名解析,建议使用
    
  • (5)创建必要数据库

      	cd /usr/local/mysql/
      	./scripts/mysql_install_db --datadir=/app/data --user=mysql    必须在mysql/目录下执行,因为bin文件在此目录下,而不是在scripts下
      	此命令默认必须在/usr/local/mysql 执行,script/mysql_install_db --datadir......
    
  • (6)修改环境变量

      	echo PATH=/usr/local/mysql/bin:$PATH >> /etc/profile.d/zhang.s- 
    
  • (7)准备服务脚本,并启动服务

      	cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
      	chkconfig --add mysqld
      	service mysqld start
    
  • (8)安全初始化

      	/user/local/mysql/bin/mysql_secure_installation 执行此脚本,设置root登录范围,禁止匿名用户登录等。
    

四.自定义编译源码安装

如果有特殊需求,也可以自己下载源码自行编译安装,×××地址和二进制下载地址一样,其下载选项就在二进制选项上面。

  • (1).安装必要的编译软件包

      	yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel
    
  • (2).做准备用户和数据目录

      	mkdir /data
      	useradd –r –s /bin/false –m –d /data/mysqldb/ mysql
      	tar xvf mariadb-10.2.15.tar.gz
    
  • (3).cmake 编译安装:

      	cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译
      	编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
    
    
      	cd mariadb-10.2.15/
      	cmake . \
      	-DCMAKE_INSTALL_PREFIX=/app/mysql \  指定安装路径
      	-DMYSQL_DATADIR=/data/mysql/ \              指定数据存放路径
      	-DSYSCONFDIR=/etc \                                  指定配置文件路径
      	-DMYSQL_USER=mysql \                             
      	-DWITH_INNOBASE_STORAGE_ENGINE=1 \
      	-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
      	-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
      	-DWITH_PARTITION_STORAGE_ENGINE=1 \
      	-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
      	-DWITH_DEBUG=0 \
      	-DWITH_READLINE=1 \
      	-DWITH_SSL=system \
      	-DWITH_ZLIB=system \
      	-DWITH_LIBWRAP=0 \
      	-DENABLED_LOCAL_INFILE=1 \
      	-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \
      	-DDEFAULT_CHARSET=utf8 \
      	-DDEFAULT_COLLATION=utf8_general_ci
    
      	make && make install 
      	提示:如果出错,执行rm -f CMakeCache.txt
    
  • (4)准备环境变量

      	echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
      	. /etc/profile.d/mysql.sh
    
  • (5). 生成数据库文件

      	cd /app/mysql/
      	scripts/mysql_install_db --datadir=/data/mysqldb/ --user=mysql
    
  • (6). 准备配置文件

      	cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
    
  • (7). 准备启动脚本

      	cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
    
  • (8). 启动服务

      	chkconfig --add mysqld ;service mysqld start