MariaDB三种方法安装及多实例实现

MariaDB三种方法安装及多实例实现

本章内容

Mariadb的三种安装方式:

    1、程序包管理器管理的程序包

    2、二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用

    3、源代码:编译安装

MariaDB在一台机器上的多实例实现

 

本机环境

系统版本:以CentOS_7.5_x86_64为例

MariaDB版本:以MariaDB 10.2.15 Stable为例

 

程序包管理器(yum)方式安装MariaDB

1、配置好yum源后,输yum -y install mariadb-server即可,不过mariadb版本是5.5的,不是较新的

2、如果想用yum安装较新版本的mariadb,可到MariaDB官网上查较新版本的yum源,官网地址是http://mariadb.org/,打开网页后点击Download,再点Download

MariaDB三种方法安装及多实例实现

MariaDB三种方法安装及多实例实现


3、这里以10.2.15版本为例,点击Download 10.2.15 Stable Now!

MariaDB三种方法安装及多实例实现


4、拉到最下面,点击Repository Configuration Tool.

MariaDB三种方法安装及多实例实现

5、依次点击CentOS --> CentOS 7 (x86_64) --> 10.2 [Stable],可以看到下方出现了yum源信息,将此信息复制,即可在CentOS中以此配置yum仓库

MariaDB三种方法安装及多实例实现

配好后输命令:

    yum clean all

    yum repolist

    yum -y install mariadb-server

即可安装较新版的10.2.15版的MariaDB

 

安装包准备

准备MariaDB的源码安装包,以及二进制程序安装包

二进制程序安装包其实就是已编译好的包,不用再编译

1、到官网上下载安装包,仍然是点击Download,再点击Download,之后点击Download 10.2.15 Stable Now

MariaDB三种方法安装及多实例实现


2、下载两个包,mariadb-10.2.15.tar.gz是源码包,mariadb-10.2.15-linux-x86_64.tar.gz是二进制格式的程序包

MariaDB三种方法安装及多实例实现

MariaDB三种方法安装及多实例实现

 

3、用Linux的rz工具或者Xshell的xftp工具,把两个程序包传到两台虚拟机上


二进制程序包安装MariaDB

(1) 准备用户

    groupadd -r -g 306 mysql

    useradd -r -g 306 -u 306 -m -d /data/MysqLdb MysqL

(2) 准备数据目录

    以/data/MysqLdb为例,建议使用逻辑卷

    chown MysqL:MysqL /data/MysqLdb

    chmod 700 /data/MysqLdb

(3) 准备二进制程序

    tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local  #/usr/local是程序包指定的目录,必须解压在这里

    cd /usr/local;ln -sv mariadb-10.2.15 MysqL

    chown -R MysqL:MysqL /usr/local/MysqL/

(4) 准备配置文件

    mkdir /etc/MysqL/

    cp support-files/my-huge.cnf /etc/MysqL/my.cnf

    #/usr/local/MysqL/support-files下有很多my-*.cnf文件,分别对应不同的内存大小,可打开看看,选择对应自己机器的拷贝就行

    vim /etc/MysqL/my.cnf

    [MysqLd]中添加三个选项:

        datadir = /data/MysqLdb

        innodb_file_per_table = on 可不加

        skip_name_resolve = on 禁止主机名解析,建议使用,不加也可

(5) 创建数据库文件

    cd /usr/local/MysqL/

    ./scripts/MysqL_install_db --datadir=/data/MysqLdb --user=MysqL

(6) 准备日志文件

    touch /var/log/MysqLd.log

    chown MysqL:MysqL /var/log/MysqLd.log

(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

(9) 添加环境变量

    echo PATH=/usr/local/MysqL/bin:$PATH > /etc/profile.d/MysqL.sh

    . /etc/profile.d/MysqL.sh


源码编译安装MariaDB

(1) 安装包

yum install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake libevent-devel gnutls-devel libaio-devel openssl-devel ncurses-devel libxml2-devel

(2) 做准备用户和数据目录

mkdir /data

useradd -r -s /sbin/nologin -m -d /data/MysqLdb/ MysqL

tar xvf mariadb-10.2.15.tar.gz

(3) cmake 编译安装

cd mariadb-10.2.15/

编译选项,可参考:

https://dev.MysqL.com/doc/refman/5.7/en/source-configuration-options.html

这里直接输命令

cmake . \

-DCMAKE_INSTALL_PREFIX=/app/MysqL \

-DMysqL_DATADIR=/data/MysqLdb/ \

-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

(4) 准备环境变量

    echo 'PATH=/app/MysqL/bin:$PATH' > /etc/profile.d/MysqL.sh

    . /etc/profile.d/MysqL.sh

(5) 生成数据库文件

    chmod 700 /data/MysqLdb

    cd /app/MysqL/

    scripts/MysqL_install_db --datadir=/data/MysqLdb/ --user=MysqL

(6) 准备配置文件

    cp /app/MysqL/support-files/my-huge.cnf /etc/my.cnf

    vim /etc/MysqL/my.cnf

    [MysqLd]中添加

       datadir = /data/MysqLdb

    chown -R MysqL:MysqL /app/MysqL/

(7) 准备启动脚本

    cp /app/MysqL/support-files/MysqL.server /etc/init.d/MysqLd

(8) 启动服务

    chkconfig --add MysqLd

    service MysqLd start

 

MariaDB在一台机器上的多实例实现

(1) 安装MariaDB,这里用yum安装

yum install mariadb-server

(2) 创建多实例目录

这里创建三个实例,最后三个实例会分别使用3306,3307,3308端口

mkdir /MysqLdb/{3306,3307,3308}/{etc,socket,pid,log,data} -pv

chown -R MysqL.MysqL /MysqLdb/

(3) 生成数据库文件

MysqL_install_db --datadir=/MysqLdb/3306/data --user=MysqL

MysqL_install_db --datadir=/MysqLdb/3307/data --user=MysqL

MysqL_install_db --datadir=/MysqLdb/3308/data --user=MysqL

(4) 准备配置文件

cp /etc/my.cnf /MysqLdb/3306/etc/

vim /MysqLdb/3306/etc/my.cnf

[MysqLd]

port=3306

datadir=/MysqLdb/3306/data

socket=/MysqLdb/3306/socket/MysqL.sock

 

[MysqLd_safe]

log-error=/MysqLdb/3306/log/mariadb.log

pid-file=/MysqLdb/3306/pid/mariadb.pid

#!includedir /etc/my.cnf.d

 

cp /MysqLdb/3306/etc/my.cnf /MysqLdb/3307/etc/my.cnf #复制配置文件到3307和3308中

cp /MysqLdb/3306/etc/my.cnf /MysqLdb/3308/etc/my.cnf

vim /MysqLdb/3307/etc/my.cnf

   :%s/3306/3307/ #将所有端口号从3306替换为3307

   :wq

vim /MysqLdb/3308/etc/my.cnf

   :%s/3306/3308/ #将所有端口号从3306替换为3308

   :wq

 

(5) 准备服务脚本

这里准备了一个服务脚本,粘到一个文件里,并命名为MysqLd:

#!/bin/bash
#FileName: MysqLd
port=3306
MysqL_user="root"
MysqL_pwd=""
cmd_path="/usr/bin"
MysqL_basedir="/MysqLdb"
MysqL_sock="${MysqL_basedir}/${port}/socket/MysqL.sock"
 
function_start_MysqL()
{
    if [ ! -e "$MysqL_sock" ];then
      printf "Starting MysqL...\n"
      ${cmd_path}/MysqLd_safe --defaults-file=${MysqL_basedir}/${port}/etc/my.cnf  &> /
dev/null  &
    else
      printf "MysqL is running...\n"
      exit
    fi
}
 
 
function_stop_MysqL()
{
    if [ ! -e "$MysqL_sock" ];then
       printf "MysqL is stopped...\n"
       exit
    else
       printf "Stoping MysqL...\n"
       ${cmd_path}/MysqLadmin -u ${MysqL_user} -p${MysqL_pwd} -S ${MysqL_sock} shutdown
   fi
}
 
function_restart_MysqL()
{
    printf "Restarting MysqL...\n"
    function_stop_MysqL
    sleep 2
    function_start_MysqL
}
 
case $1 in
start)
    function_start_MysqL
;;
stop)
    function_stop_MysqL
;;
restart)
    function_restart_MysqL
;;
*)
    printf "Usage: ${MysqL_basedir}/${port}/bin/MysqLd {start|stop|restart}\n"
esac
 
#End of file

 

chmod 700 MysqLd

cp MysqLd /MysqLdb/3306/

cp MysqLd /MysqLdb/3307/

cp MysqLd /MysqLdb/3308/

#修改各实例配置文件的端口号

vim  /MysqLdb/3306/MysqLd

vim  /MysqLdb/3307/MysqLd

vim  /MysqLdb/3308/MysqLd

 

(6) 启动三个实例

/MysqLdb/3306/MysqLd start

/MysqLdb/3307/MysqLd start

/MysqLdb/3308/MysqLd start

(7) 连接三个实例

MysqL -S /MysqLdb/3306/socket/MysqL.sock

MysqL -S /MysqLdb/3307/socket/MysqL.sock

MysqL -S /MysqLdb/3308/socket/MysqL.sock

 

相关文章

这篇文章主要介绍“hive和mysql的区别是什么”,在日常操作中...
这篇“MySQL数据库如何改名”文章的知识点大部分人都不太理解...
这篇文章主要介绍“mysql版本查询命令是什么”的相关知识,小...
本篇内容介绍了“mysql怎么修改字段的内容”的有关知识,在实...
这篇文章主要讲解了“mysql怎么删除unique约束”,文中的讲解...
今天小编给大家分享一下mysql怎么查询不为空的字段的相关知识...