yum安装MariaDB
搭建好yum源
yum -y install mariadb-server
systemctl start mariadb
完成
二进制安装
centos7.4安装MariaDB10.2.15版本
一、检查环境
iptables
selinux
卸载系统自带MariaDB
rpm -qa |grep mariadb-server
下载二进制包
wget https://downloads.mariadb.org/mariadb/10.2.15/mariadb-10.2.15-linux-x86_64.tar.gz
或者用浏览器下载
二、
useradd -r -d /data/mysqldb -s /sbin/nologin mysql
创建数据库路径
tar xf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/
创建软连接
cd /usr/local/
ln -s mariadb-10.2.15-linux-x86_64/ mysql
更改连接目录的属主属组
chown -R root:root mysql/
添加环境变量
echo PATH=/usr/local/mysql/bin:$PATH >/etc/profile.d/mysql.sh
创建逻辑分区
pvcreate /dev/sdb
vgcreate vg0 /dev/sdb
lvcreate -n lv_mysql -l 100%FREE vg0
格式化
mkfs.xfs /dev/vg0/lv_mysql
创建 MariaDB的安装路径
mkdir /app
挂载
vim /etc/fstab
UUID="7ab73b89-485f-4e73-8d33-34f4a9691250" /app xfs defaults 0 0
mkdir /app/mysqldb
生成数据库文件
cd /usr/local/mysql
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql
复制配置文件模板
cp support-files/my-huge.cnf /etc/my.cnf
修改配置文件
vim /etc/my.cnf
datadir = /app/mysqldb
添加权限
setfacl -R -m u:mysql:rwx /usr/local/mysql/
设置启动程序
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
启动
service mysqld start
源码编译安装
下载安装包
wget https://downloads.mariadb.org/mariadb/10.2.15/mariadb-10.2.15.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
准备用户和数据目录
mkdir /data
useradd –r –s /bin/false –m –d /data/mysqldb/ mysql
tar xvf mariadb-10.2.15.tar.gz
编译安装
cd mariadb-10.2.15/
编译选项
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 -j 4 && make install
配置环境变量
生成库文件
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql --basedir=/app/mysql
配置文件
cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf
vim /etc/my.cnf
datadir = /data/mysqldb
启动脚本
cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld && service mysqld start
启动文件失败,没有权限设置一下权限
setfacl -R -m u:mysql:rwx /app/mysql/
MariaDB多实例
yum -y install mariadb-server
规划有三个实例端口号分别为3306,3307,3308
mkdir /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data} -p
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
cp /etc/my.cnf /mysqldb/3306/etc/
vim /mysqldb/3306/etc/my.cnf
cp /mysqldb/3306/etc/my.cnf /mysqldb/3307/etc/
cp /mysqldb/3306/etc/my.cnf /mysqldb/3308/etc/
vim /mysqldb/3307/etc/my.cnf
vim /mysqldb/3308/etc/my.cnf
3308做同样操作
创建三个启动文件
#!/bin/bash
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
3307和3308启动文件改下端口号即可
设置权限
chmod 700 /mysqldb/3306/mysqld
chmod 700 /mysqldb/3307/mysqld
chmod 700 /mysqldb/3308/mysqld
确定原来安装的服务以及关闭
启动服务
还有一种启动服务的方法,不用配置启动脚本
mysqld_safe --defaults-file=/mysqldb/3306/etc/my.cnf --user=mysql &
mysqld_safe --defaults-file=/mysqldb/3307/etc/my.cnf --user=mysql &
mysqld_safe --defaults-file=/mysqldb/3308/etc/my.cnf --user=mysql &
测试使用
二进制编译安装脚本(脚本和安装包要放在同级目录下)
#!/bin/bash
#
#********************************************************************
#Author: su_cho
#QQ: bugei
#Date: 2018-06-05
#FileName: /data/mariadb.sh
#URL: http://www.magedu.com
#Description: The test script
#Copyright (C): 2018 All rights reserved
#********************************************************************
read -p "please input a install_path:" mysql
read -p "please input a datadir_path:" datadir
rpm -qa |grep mariadb-server || yum -y remove mariadb*
getent passwd mysql && userdel -r mysql &>/dev/null
useradd -r -d /data/mysqldb -s /sbin/nologin mysql
tar xf mariadb-* -C $mysql
cd $mysql
ln -s mariadb* mysql && chown -R root:root mysql/
echo "export PATH=$mysql/mysql/bin:\$PATH" >/etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
mkdir $datadir/mysqldb && cd $mysql/mysql
scripts/mysql_install_db --datadir=$datadir/mysqldb --user=mysql &>/dev/null
[ -f /etc/my.cnf ] && mv /etc/my.cnf /etc/my.cnf.bak
cp support-files/my-huge.cnf /etc/my.cnf
sed -i "/\[mysqld\]/adatadir=$datadir/mysqldb" /etc/my.cnf
setfacl -R -m u:mysql:rwx /usr/local/mysql/
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld && service mysqld start