MariaDB 多实例安装

今天给大家做个 单点多实例MariaDB数据库小实验。

废话不多说,开始;

首先要 yum 安装或 二进制安装 或编译安装,这一节 我不不做详述,网上有很多类似的文章,如果需要,后续时间允许,我们另起文章,详述。

实验环境:

  MariaDB 多实例安装

首先配置yum源,

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos7-amd64--centos7&version=10.2

以上是 Mariadb 官方yum源配置页面

MariaDB 多实例安装

在/etc/yum.repo.d/目录下,创建MariaDB.repo 文件,将图上的内容粘贴上去,类似与下图

MariaDB 多实例安装

MariaDB 多实例安装

执行 yum install -y MariaDB-server 

一路OK!

安装好后 类似于这样:

MariaDB 多实例安装

由于我们要是做同版本的MariaDB的多实例,因此  服务程序不需要安装多次。一套程序即可。

为了便于管理,我们不不同实例的不同配置程序文件,放在不同的目录下,

执行;mkdir -pv/sqlserver/{3307,3308,3309}/{etc,pid,log,socket,data}

MariaDB 多实例安装

给出相应权限;

chown -R mysql.   /sqlserver/

三套实例的相应目录建立起来后,准备相应的配置文件,必要的文件有,my.cnf,配置文件,init.d下,相应的mysqld.service 服务启动脚本。

我们以默认情况下,/etc目录下的my.cnf为模板,复制三份 分别放在相应的目录下:

cp /etc/my.cnf /sqlserver/3307/etc/

cp /etc/my.cnf /sqlserver/3308/etc/

cp /etc/my.cnf /sqlserver/3309/etc/

修改相应的配置:

MariaDB 多实例安装

三套文件都需要准备,做相应修改。

准备启动服务脚本,并做相应配置:

#!/bin/bash


port=3307
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/local/mysql/bin/"
mysql_basedir="/sqlserver"
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}  -S ${mysql_sock} shutdown
      # ${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

当三套文件准备好后,服务可以启动了,记得给脚本运行权限哦

chmod 700  mysqld

执行./ mysqld start

[[email protected]/sqlserver]# ./3307/mysqld start
Starting MySQL...

[[email protected]/sqlserver]# ./3308/mysqld start
Starting MySQL...
[[email protected]/sqlserver]# ./3309/mysqld start 
Starting MySQL...

MariaDB 多实例安装

服务启动成功。多实例实验完成

其中有几个小细节要注意一下:

第一个就是配置文件的端口号要写正确。

第二个是 权限一定要正确

第三个是服务启动脚本的配置变量一定要争确,

登录mysql 实例,

mysql -S /sqlserver/3307/socket/mysql.sock-------------指定socket 文件

MariaDB [(none)]>