本章内容
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
3、这里以10.2.15版本为例,点击Download 10.2.15 Stable Now!
4、拉到最下面,点击Repository Configuration Tool.
5、依次点击CentOS --> CentOS 7 (x86_64) --> 10.2 [Stable],可以看到下方出现了yum源信息,将此信息复制,即可在CentOS中以此配置yum仓库
配好后输命令:
yum clean all
yum repolist
yum -y install mariadb-server
即可安装较新版的10.2.15版的MariaDB
安装包准备
准备MariaDB的源码安装包,以及二进制程序安装包
二进制程序安装包其实就是已编译好的包,不用再编译
1、到官网上下载安装包,仍然是点击Download,再点击Download,之后点击Download 10.2.15 Stable Now
2、下载两个包,mariadb-10.2.15.tar.gz是源码包,mariadb-10.2.15-linux-x86_64.tar.gz是二进制格式的程序包
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
datadir = /data/MysqLdb
innodb_file_per_table = on 可不加
skip_name_resolve = on 禁止主机名解析,建议使用,不加也可
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
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 \
-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
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
datadir = /data/MysqLdb
chown -R MysqL:MysqL /app/MysqL/
(7) 准备启动脚本
cp /app/MysqL/support-files/MysqL.server /etc/init.d/MysqLd
(8) 启动服务
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/
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
(6) 启动三个实例
(7) 连接三个实例
MysqL -S /MysqLdb/3306/socket/MysqL.sock
MysqL -S /MysqLdb/3307/socket/MysqL.sock
MysqL -S /MysqLdb/3308/socket/MysqL.sock
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。