一、安装Mariadb
1.方式一:源码离线安装
1.1 上传mariadb tar包和相关依赖包
1.2 编写mariadb安装脚本
vi install_07_mariadb.sh
#!/bin/bash
######################
# mariadb10 安装脚本 #
######################WORK_PATH=/home/data/install_pkg
TMP_PATH=$WORK_PATH/tmp
PKG_PATH=$WORK_PATH/mariadbif [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作系统类型 \033[0m \033[0;34m {ubuntu|centos} \033[0m"
exit 1
fi
LINUX_DISTRIBUTION=$1#检查安装目录
if [ ! -d $PKG_PATH ];
then
echo -e "${PKG_PATH} 缺失,结束进程"
exit 1
fiif [ ! -d $TMP_PATH ];
then
mkdir -p $TMP_PATH
fi#检查libaio
#echo `whereis libaio.so.1`IS_LIBAIO=`echo \`whereis libaio.so.1\` | grep "/"`
if [ "$IS_LIBAIO" = "" ];
then
echo -e "libaio.so.1缺失,尝试安装"
cd $PKG_PATH
if [ "$LINUX_DISTRIBUTION" = "ubuntu" ];
then
# ubuntu
dpkg -i *.deb
else
# centos
rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
fi
#rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm
#rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
IS_LIBAIO_2=`echo \`whereis libaio.so.1\` | grep "/"`
if [ "$IS_LIBAIO_2" = "" ];
then
echo -e "libaio安装失败,请手动安装"
exit 1
fi
echo -e "libaio安装完成,继续执行"
fi
#attention: 需要root用户执行,安装目录在/usr/local/mariadb下# 1.判断当前用户是否为root用户
if [ $(id -u) != "0" ]; then
echo "error: you must be root run this script"
exit 1
fi# 2.定义变量
WKDIR=$(pwd)
INSTALL_HOME="/home/data"
MYSQL_HOME="$INSTALL_HOME/mariadb"
MYSQL_DATA="$MYSQL_HOME/data"
[ -d $INSTALL_HOME ] || mkdir -p $INSTALL_HOME# 3. 检验安装目录
if [ -d $MYSQL_HOME ];then
echo "error:your system have installed mysql"
exit 1
fi# 4. 卸载系统自带数据库
rpm -qa|grep mysql > /dev/null 2>&1
if [ $? -eq 0 ];then
rpm -qa|grep mysql|xargs yum -y remove
fi
rpm -qa|grep mariadb > /dev/null 2>&1
if [ $? -eq 0 ];then
rpm -qa|grep mariadb|xargs yum -y remove
fi# 5. 开始安装
echo "start installing mysql"
#解压
echo "start tar..."
cd $TMP_PATH
cp $PKG_PATH/mariadb-10.3.35-linux-systemd-x86_64.tar.gz ./
tar -zxf ./mariadb-10.3.35-linux-systemd-x86_64.tar.gz -C ./
mv ./mariadb-10.3.35-linux-systemd-x86_64 $MYSQL_HOME
echo "tar complete"
[ -d $MYSQL_DATA ] || mkdir -p $MYSQL_DATA# 创建用户
id mysql > /dev/null 2>&1
if [ $? -ne 0 ];then
useradd -s /sbin/nologin -M mysql
fi# 创建配置文件及日志目录
mkdir -p $MYSQL_HOME/{etc,logs,tmp}# 更改mysql目录所属用户和组
chown -R mysql:mysql $MYSQL_HOME
echo "initializing mysql"# 初始化mysql数据库
cd $MYSQL_HOME
./scripts/mysql_install_db --basedir=$MYSQL_HOME --datadir=$MYSQL_DATA --user=mysql# 创建配置文件
cat >$MYSQL_HOME/etc/my.cnf<<EOF
[mysqld]
user = mysql
port = 3306
basedir = /home/data/mariadb
datadir = /home/data/mariadb/data
socket = /tmp/mysql.sock
pid-file = /home/data/mariadb/tmp/mysqld.pid
character-set-server = utf8
collation-server = utf8_unicode_ci
max_connections = 1000
log-error = /home/data/mariadb/logs/mysqld.log
EOF# 注册服务
cat >/usr