如何在Linux下编译安装MariaDB

MariaDB是MySQL一个开源分支,主要是社区在维护,并且完全兼容MysqL,并且可以很方便的称为MysqL的替代

如何在Linux下编译安装MariaDB

MariaDB的诞生正是出自MysqL创始人Michael Widenius之手,命名的来源是他女儿的名字Maria,因为之前他把MysqL卖给sun公司,而sun又被oracle收购,所以MysqL也属于oracle所有,因此存在闭源的风险;而Michael Widenius开发的MariaDB作为MysqL的开源分支,很好的避免的这个潜在的问题,所以MariaDB成为了MysqL未来的替代,很多厂商也越来越关注MariaDB,并且MariaDB在很多方面的性能也要强过MysqL,像目前Windows桌面的PHP集成开发环境比如xampp还有 linux和lnmp环境都采用MariaDB作为认的数据库,所以从MysqL转向MariaDB也是一种趋势,以上说那么多,使用MariaDB的第一步是要部署在操作系统,现在开始在Linux上用编译源码的方式来安装MariaDB

准备物料

首先去MariaDB官网下载安装包,首页是:https://mariadb.org/

然后点击Download进入下载页,地址是:https://downloads.mariadb.org/

这里点击绿色按钮下载最新稳定版10.1.18,进入选择页面

因为这里是编译安装,所以暂时不针对某一系统的二进制包进行下载,这里下载源码包mariadb-10.1.18.tar.gz,下载之后上传服务器

安装依赖

安装MariaDB之前,首先要安装cmake,另外为了保证不缺依赖,使用yum或者rpm安装依赖:readline-devel,zlib-devel,openssl-devel,libaio-devel并且readline-devel依赖于ncurses-devel,如果使用yum的话会自动将所需依赖安装好,具体 命令如下:

yum -y install readline-devel
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install libaio-devel

这里提前预定MysqL的安装目录为/usr/local/MysqL并且数据目录为/data1/MysqL,这里要建立用户和目录,并且赋予MysqL用户权限,操作如下:

groupadd -r MysqL
useradd -g MysqL -s /sbin/nologin MysqL
mkdir /usr/local/MysqL
mkdir -p /data1/MysqL
chown -R MysqL:MysqL /data1/MysqL/

现在可以开始安装了,解压安装包,并进入目录:

tar -xvzf mariadb-10.1.18.tar.gz
cd mariadb-10.1.18/
编译安装

执行编译安装:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/data1/MysqL -DSYSconfdIR=/etc -DWITHOUT_TOKUDB=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STPRAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWIYH_READLINE=1 -DWIYH_SSL=system -DVITH_ZLIB=system -DWITH_LOBWRAP=0 -DMysqL_UNIX_ADDR=/tmp/MysqL.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

这里说明一下:-DCMAKE_INSTALL_PREFIX是指定安装的位置,这里是/usr/local/MysqL,-DMysqL_DATADIR是指定MysqL的数据目录,这里是/data1/MysqL,安装目录和数据目录都可以自定义设置,-DSYSconfdIR是指定配置文件所在的目录,一般都是/etc ,具体的配置文件是/etc/my.cnf,-DWITHOUT_TOKUDB=1这个参数一般都要设置上,表示不安装tokudb引擎,tokudb是MysqL中一款开源的存储引擎,可以管理大量数据并且有一些新的特性,这些是Innodb所不具备的,这里之所以不安装,是因为一般计算机认是没有Percona Server的,并且加载tokudb还要依赖jemalloc内存优化,一般开发中也是不用tokudb的,所以暂时屏蔽掉,否则在系统中找不到依赖会出现:
CMake Error at storage/tokudb/PerconaFT/cmake_modules/TokuSetupCompiler.cmake:179 (message)这样的错误,然后后面那些参数都是可选的,可以加也可以不加,最后的编码建议设置一下,所以编译指令也可以简化成下面这样:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/data1/MysqL -DSYSconfdIR=/etc -DWITHOUT_TOKUDB=1 -DMysqL_UNIX_ADDR=/tmp/MysqL.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

注意:如果万一执行中有了错误,可以执行:  rm -f CMakeCache.txt 删除编译缓存,让指令重新执行,否则每次读取这个文件, 命令修改正确也是报错

cmake没问题,可以编译并且安装了:  make && make install 时间有点长,耐心等待

执行完成也就是安装完成了,现在执行  cd /usr/local/MysqL/ 进入MysqL安装目录分别执行下面命令:

chown -R MysqL:MysqL .
scripts/MysqL_install_db --datadir=/data1/MysqL --user=MysqL
chown -R root .
cp support-files/MysqL.server /etc/init.d/MysqLd
系统配置

然后还可以将MysqLd添加至系统服务:

chkconfig --add MysqLd   # 添加至系统服务
chkconfig MysqLd on    # 设置开机自启动

现在如果启动可能会报错,原因是日志目录没有建立,认是 /var/log/mariadb/mariadb.log,后来也可以修改,现在执行:  mkdir/var/log/mariadb 建立日志目录,然后执行:  /etc/init.d/MysqLd start 或者  systemctl start MysqLd.service 都可以启动MysqL服务

启动服务后,还不能马上进入MysqL  shell界面,原因是刚才编译时执行本地socket为: /tmp/MysqL.sock但是查看 /etc/my.cnf中配置的位置却是: /var/lib/MysqL/MysqL.sock,现在执行命令:  ln -s /var/lib/MysqL/MysqL.sock /tmp/MysqL.sock 建立软链接即可

为了方便可以将MysqL目录添加到环境变量,现在可以执行  ./bin/MysqL 直接进入MariaDB交互式界面了,认root用户密码为空:

到这里MariaDB的编译安装过程就全部安装完成了,至于后续的修改密码,远程用户授权,sql操作等等与之前MysqL完全一致,所以就不在详细叙述了

关于MariaDB二进制包的安装,后续可能会继续更新相关的文档

原文地址: https://www.linuxprobe.com/linux-cc-mariadb.html

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...