. /etc/os-release
install_mariadb(){
echo -e "\e[1;35m 只在centos7.9版本测试正常,CentOS-6版本测试不成功\e[0m" sleep 1 #exit version=10.10.2 #URL=https://dlm.mariadb.com/2690820/MariaDB/mariadb-10.10.2/bintar-linux-systemd-x86_64/mariadb-${version}-linux-systemd-x86_64.tar.gz #URL=https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz #URL=https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-10.6.11/bintar-linux-systemd-x86_64/mariadb-10.6.11-linux-systemd-x86_64.tar.gz #URL=https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-${version}/bintar-linux-systemd-x86_64/mariadb-${version}-linux-systemd-x86_64.tar.gz URL=https://mirrors.aliyun.com/mariadb/mariadb-10.10.2/bintar-linux-systemd-x86_64/mariadb-10.10.2-linux-systemd-x86_64.tar.gz DATA_DIR=/data/mysql/ DIR=/usr/local/ echo -e "\e[1;35m 接下来安装的版本是mariadb-${version},如果不想安装此版本请在3秒内停止运行脚本 \e[0m" echo -e "\e[1;35m 数据库数据文件夹现在是${DATA_DIR} 解压目录是${DIR} \e[0m" sleep 4 if id mysql &> /dev/null;then echo -e "\e[1;33m 用户已存在 \e[0m" else groupadd -g 336 -r mysql && useradd -g mysql -s /sbin/nologin -d ${DATA_DIR} -r -u 336 mysql #echo -e "\e[1;35m MySQL用户创建完成 \e[0m" "\e[1;32m [ ok ] \e[0m" [ $? -eq 0 ] && echo -e "\e[1;35m MySQL用户创建完成 \e[0m" || { echo -e "\e[1;31m MySQL用户创建失败 \e[0m";exit; } fi if [ -e mariadb-${version}-linux-systemd-x86_64.tar.gz ];then echo -e "\e[1;33m 文件已存在,准备安装... \e[0m" else echo -e "\e[1;33m 开始下载源文件(下载地址是阿里源,如果yum源配的没有阿里源可能就会下载失败) \e[0m" wget $URL if [ $? -eq 0 ];then # if [ -e mariadb-${version}-linux-systemd-x86_64.tar.gz ];then echo -e "\e[1;32m 下载成功 \e[0m" else echo -e "\e[1;31m 下载失败,即将退出,请检查下载链接是否正确! \e[0m" exit fi fi #[ -e mariadb-${version}-linux-systemd-x86_64.tar.gz ] && { echo "\e[1;34m 下载成功 \e[0m" } || { echo -e "\e[1;36m 下载失败,即将退出 \e[0m";exit; } echo -e "\e[1;35m 正在解压源文件... \e[0m" tar xvf mariadb-${version}-linux-systemd-x86_64.tar.gz -C ${DIR} echo -e "\e[1;35m 解压完成! \e[0m" sleep 1 echo -e "\e[1;35m 创建软链接 \e[0m" ln -s /usr/local/mariadb-${version}-linux-systemd-x86_64/ ${DIR}mysql sleep 1 echo -e "\e[1;32m [ ok ] \e[0m" echo -e "\e[1;35m 建立环境变量 \e[0m" echo "PATH=${DIR}mysql/bin:$PATH" > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh sleep 1 echo -e "\e[1;32m [ ok ] \e[0m" echo -e "\e[1;35m 创建数据文件夹 \e[0m" mkdir -p /data/mysql chown -R mysql.mysql ${DATA_DIR} chown -R mysql.mysql ${DIR}mysql sleep 1 echo -e "\e[1;32m [ ok ] \e[0m" echo -e "\e[1;35m 正在初始化数据库 \e[0m" ${DIR}mysql/scripts/mysql_install_db --user=mysql --basedir=${DIR}mysql --datadir=${DATA_DIR} cat > /etc/my.cnf << EOF [mysqld] datadir=${DATA_DIR} socket=${DATA_DIR}mysql.sock symbolic-links=0 [mysqld_safe] log-error=/data/mariadb/mariadb.log pid-file=/data/mariadb/mariadb.pid !includedir /etc/my.cnf.d EOF if [ $? -eq 0 ];then echo -e "\e[1;35m 初始化数据库成功! \e[0m" "\e[1;32m [ ok ] \e[0m" else echo -e "\e[1;31m 初始化数据库失败! \e[0m" "\e[1;31m [ FAILED ] \e[0m" exit fi echo -e "\e[1;35m 创建log和pid文件夹 \e[0m" "\e[1;32m [ ok ] \e[0m" mkdir ${DATA_DIR}{log,pid} chown -R mysql.mysql ${DATA_DIR} echo -e "\e[1;35m 正在复制systemd配置文件 \e[0m" #ln -s mariadb-${version}-linux-systemd-x86_64/ mysql cp /usr/local/mysql/support-files/systemd/mariadb.service /lib/systemd/system/ if [ $? -eq 0 ];then echo -e "\e[1;35m 复制systemd配置文件 \e[0m" "\e[1;32m [ ok ] \e[0m" else echo -e "\e[1;31m 复制systemd配置文件 \e[0m" "\e[1;31m [ FAILED ] \e[0m" exit fi echo -e "\e[1;35m 正在启动服务 \e[0m" systemctl reload sleep 2 systemctl start mariadb if [ $? -eq 0 ];then echo -e "\e[1;35m 启动服务! \e[0m" "\e[1;32m [ ok ] \e[0m" else echo -e "\e[1;31m 启动服务! \e[0m" "\e[1;31m [ FAILED ] \e[0m" exit fi sleep 2 cat >> /etc/my.cnf.d/mysql-clients.cnf << EOF [mysql] socket=${DATA_DIR}mysql. sock EOF ln -s {$DIR}mysql/bin/mariadb /usr/bin/mariadb echo -e "\e[1;35m 安装完毕,退出脚本! \e[0m" "\e[1;32m [ ok ] \e[0m" exec bash }
install_mariadb
标签:二进制,linux,echo,64,mysql,mariadb,安装,0m From: https://www.cnblogs.com/smlience/p/16950983.html