博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于源码编译安装Mariadb实现多实例
阅读量:7003 次
发布时间:2019-06-27

本文共 3737 字,大约阅读时间需要 12 分钟。

准备环境:

CentOS7.6

mariadb-10.2.23.tar.gz源码包
多实例目录结构:
基于源码编译安装Mariadb实现多实例

编译安装

安装开发工具

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

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

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

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

编译安装

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

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

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

chown -R mysql.mysql /opt/mysql/

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

生成数据库文件

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 riskssymbolic-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 2port=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 instart)    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    生效PATHmysql -uroot -P9527 -S /opt/mysql/9527/socket/mysql.sock   进入mysql数据库,需要指定socket路径

完成

转载于:https://blog.51cto.com/14116879/2388853

你可能感兴趣的文章
VTK入门(三)--图像加工处理(一)
查看>>
多网卡分别连接内网、外网等多个Vlan——路由表的配置(route)
查看>>
Linux基础系列(二)Linux系统文件系统详解
查看>>
linux LVS (keepalived+ipvsadm)负载均衡搭建 三
查看>>
中级 Linux 用户非常有用的 20 个命令
查看>>
创业踩过的一些坑,少交学费啦
查看>>
Perl 模块的军火库 — CPAN
查看>>
TCP头校验和计算算法详解
查看>>
xen实现虚拟化(一)
查看>>
EnumChildWindows (user32)
查看>>
考题:关于子类调用父类构造函数
查看>>
centos7 mysql数据库安装和配置
查看>>
java的concurrent用法详解
查看>>
Linux安装mysql5.6
查看>>
《游戏程序设计模式》 1.2 - 享元模式
查看>>
Netflix下载占用了三分之一互联网带宽
查看>>
分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置
查看>>
命令提示符(cmd)下修改注册表
查看>>
Mysql主从数据库同步
查看>>
PostgreSQL学习手册(目录)
查看>>