基于源码编译安装Mariadb实现多实例

准备环境:

CentOS7.6
mariadb-10.2.23.tar.gz源码包
多实例目录结构:

编译安装

安装开发工具

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

准备用户和数据目录

useradd –r –s /sbin/nologin –d /data/mysql/ mysql

mkdir   /data/mysql
chown  mysql.mysql  /data/mysql
tar xvf   mariadb-10.2.18.tar.gz  

编译安装

cd mariadb-10.2.23/
cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \     指定安装目录
-DMYSQL_DATADIR=/data/mysql/ \        指定mysql数据目录
-DSYSCONFDIR=/etc/mysql \             指定配置文件的目录
-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=/data/mysql/mysql.sock \    指定socket文件
-DDEFAULT_CHARSET=utf8 \                   指定字符集类型
-DDEFAULT_COLLATION=utf8_general_ci  

make && make install

提示:如果出错,执行rm -f CMakeCache.txt

安装

创建多实例的目录结构

mkdir mysql/{9527,9528,9529}/{etc,bin,socket,data,log,pid} -pv

将所有者和所属则设置为mysql

chown -R mysql.mysql /opt/mysql/

生成数据库文件

cd /app/mysql
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9527/data/
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9528/data/
./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql/9529/data/
将生成的数据库文件存放到指定的位置

创建配置文件

cp /etc/my.cnf /opt/mysql/9527/etc/
cp /etc/my.cnf /opt/mysql/9528/etc/
cp /etc/my.cnf /opt/mysql/9529/etc/

编辑配置文件

[mysqld]
port=9527   指定端口号
datadir=/opt/mysql/9527/data    指定本端口号的数据库文件
socket=/opt/mysql/9527/socket/mysql.sock    指定本端口号的socket套接字
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#Settings user and group are ignored when systemd is used.
#If you need to run mysqld under a different user or group,
#customize your systemd unit file for mariadb according to the
#instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/opt/mysql/9527/log/mariadb.log    将日志文件存放到指定目录
pid-file=/opt/mysql/9527/pid/mariadb.pid      将pid文件存放到指定目录

#include all files from the config directory    

#!includedir /etc/my.cnf.d    原本是没有注释的,现在加上注释,因为他包含的是/etc/my.cnf.d目录下的文件,我们不需要

将三个实例只要稍微修改即可

创建脚本

#!/bin/bash
#chkconfig: 345 80 2
port=9527          端口号
mysql_user="root"     指定数据库用户
mysql_pwd=""        指定数据库的密码
cmd_path="/app/mysql/bin"     指定命令路径
mysql_basedir="/opt/mysql"    指定数据库基本目录
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"     指定本端口启动的socket文件

function_start_mysql()       启动函数
{
    if [ ! -e "$mysql_sock" ];then          检查socket文件
      printf "Starting MySQL...\n"
      ${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf  &> /dev/null  &   mysql启动服务用的是mysqld_safe命令
    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

启动服务

/opt/mysql/9527/bin/mysqld start     可以考虑定义为别名
echo ‘PATH=/app/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh    添加PATH路径
. /etc/profile.d/mysql.sh    生效PATH
mysql -uroot -P9527 -S /opt/mysql/9527/socket/mysql.sock   进入mysql数据库,需要指定socket路径

完成

原文地址:https://blog.51cto.com/14116879/2388853

时间: 2024-08-08 05:06:16

基于源码编译安装Mariadb实现多实例的相关文章

基于源码编译安装openssh

 最近的,openssl/openssh等相继漏洞的暴露,让暴露在公网的linux.沦陷为肉鸡的正营... 没办法,还是升级版本... 00.openssh简介 OpenSSH 是一组安全远程的连接工具,主要包括了几个部份:ssh.sshd.scp.sftp.ssh-keygen.ssh-agent.ssh-add等 ssh(SSH 客户端,用于登录建立连接,是 rlogin 与 Telnet的安全替代方案)sshd (SSH 服务端,典型的独立守护进程)scp.sftp (文件安全传输工具,r

centos7源码编译安装mariadb

前提:1.干净的系统2.配置好yum源 首先安装依赖包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 做准备用户和数据目录 useradd –r –s /sbin/nologin

基于源码编译和yum安装的LNP+MYSQL主从实战

1.基于源码编译安装的LNP+MYSQL主从实战准备3台服务器,其中一台作为Nginx WEB服务器+PHP-FPM(FastCGI),另外两台作为MYSQL主从服务器,服务器IP信息:? 10.10.10.4-Linux+Nginx+PHP? 10.10.10.5-MYSQL Master:? 10.10.10.6-MYSQL Slave:? 1) Nginx安装配置? #安装PCRE库和基础库支持? yum install pcre-devel pcre gcc-c++ openssl op

Linux学习之路--Mariadb(2)源码编译安装【19】---20180120

一.源码编译安装mariadb 生产环境中,大部分使用的都是二进制安装或者源码编译安装,yum安装很多要求和设置很繁琐,容易出现错误 此次源码编译安装需要先安装 cmake 1.准备cmake [[email protected]~]#rpm -q cmake package cmake is not installed [[email protected]~]#yum install cmake ..... ===========================================

源码编译安装mariadb-10.0.12数据库

源码安装mariadb-10.0.12 1.获取源码包 mariadb-10.0.12.tar.gz 2.编译环境准备 # yum groupinstall -y Development Tools # yum install -y ncurses-devel openssl-devel openssl 3.创建mysql用户 # groupadd mysql # useradd -s /sbin/nologin -g mysql -M mysql # id mysql uid=500(mysq

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装 扩展 mysql5.5源码编译安装

11.1 LAMP架构介绍11.2 MySQL.MariaDB介绍11.3/11.4/11.5 MySQL安装扩展mysql5.5源码编译安装   http://www.aminglinux.com/bbs/thread-1059-1-1.html mysql5.7二进制包安装(变化较大)  http://www.apelearn.com/bbs/thread-10105-1-1.html =====================================================

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

LAMP环境官方最新源码编译安装

前言 Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注.从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决

源码编译安装mariadb-5.5.48

源码编译安装mariadb-5.5.48 mariadb简介 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品.在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB. MariaDB由MySQL的创始人