Linux下编译安装MariaDB

  MariaDB是MySQL的一个开源分支,主要是社区在维护,而且彻底兼容MySQL,而且能够很方便的称为MySQL的替代,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也是一种趋势php

  以上说那么多,使用MariaDB的第一步是要部署在操做系统,如今开始在Linux上用编译源码的方式来安装MariaDBmysql

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

  

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

  

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

  

  由于这里是编译安装,因此暂时不针对某一系统的二进制包进行下载,这里下载源码包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/

  如今能够开始安装了,解压安装包,并进入目录:oracle

tar -xvzf mariadb-10.1.18.tar.gz
cd mariadb-10.1.18/

  执行编译安装:socket

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二进制包的安装,后续可能会继续更新相关的文档

相关文章
相关标签/搜索