设为首页 加入收藏

TOP

mysql二进制安装脚本部署(一)
2023-07-23 13:34:04 】 浏览:80
Tags:mysql 安装脚

mysql二进制安装脚本部署


单实例

[root@localhost ~]# mkdir mysql   //创建存放脚本目录
[root@localhost ~]# ls
anaconda-ks.cfg  mysql
[root@localhost ~]# cd mysql/
[root@localhost mysql]# mkdir files  //创建安装包目录
[root@localhost mysql]# ls
files
[root@localhost mysql]# ls files/
mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
[root@localhost mysql]# touch mysql_install.sh  //创建脚本文件
[root@localhost mysql]# chmod +x mysql_install.sh  //赋予执行权限
[root@localhost mysql]# ll
total 0
drwxr-xr-x. 2 root root 56 Sep 19 21:16 files
-rwxr-xr-x. 1 root root  0 Sep 19 21:18 mysql_install.sh
[root@localhost mysql]# vim mysql_install.sh 
[root@localhost mysql]# cat mysql_install.sh 
#!/bin/bash

#设置执行权限
if [ $UID -ne 0 ];then
        echo "请以管理员用户进行执行"
        exit
fi
read -p "请输入要创建的实例个数: " count
read -p "请输入数据存放目录(默认路径: /opt/xbz): " datadir
read -p "请输入要为数据库设置的密码: " passwd
read -p "请输入安装目录,(默认路径:/usr/local/mysql):" mysql_install_dir
#判断安装目录合法性
echo $mysql_install_dir | grep -E '^/[a-z][a-z]*(/[a-z][a-z]*)*$' &> /dev/null
if [ $? -eq 0 ];then
    if [ ! -d $mysql_install_dir ];then
        mkdir -p $mysql_install_dir
    fi
else
    mysql_install_dir=/usr/local/mysql
fi
#判断安装目录是否为空
if [ -z $mysql_install_dir ];then
    mysql_install_dir=/usr/local/mysql
fi

#创建用户
id mysql &> /dev/null
if [ $? -ne 0 ];then
        useradd -r -M -s /sbin/nologin mysql
    else
            echo "用户已存在"
fi
#安装依赖包
dnf -y install ncurses-compat-libs --allowerasing
#解压软件包,修改目录和所属组
if [ ! -d $mysql_install_dir ];then
    echo "解压软件包"
    tar xf files/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local
    cd /usr/local
    mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
fi
chown -R mysql.mysql ${mysql_install_dir}
#设置环境变量
echo 'export PATH=${mysql_install_dir}/lib' > /etc/ld.so.conf.d/mysql.conf
#做头文件
ln -s ${mysql_install_dir}/include /usr/include/mysql
#配置lib
echo '${mysql_install_dir}/lib' > /etc/ld.so.conf.d/mysql.conf
ldconfig
#设置man文档
grep '${mysql_install_dir}/man' /etc/man_db.conf &> /dev/null
if [ $? -ne 0 ];then
        sed -i "22a MANDATORY_MANPATH                       ${mysql_install_dir}/man" /etc/man_db.conf
fi
#建立数据存放目录
for i in $(seq $count);do
    if [ $count -eq 1 ];then
            if [ -z $datadir ];then
                datadir=/opt/xbz
            fi
            if [ ! -d $datadir ];then
                mkdir -p $datadir
            fi      
            chown -R mysql.mysql $datadir
            ${mysql_install_dir}/bin/mysqld --initialize --user mysql --datadir $datadir &> /tmp/passwd
#生成数据配置文件
            cat > /etc/my.cnf << EOF
[mysqld]
basedir = ${mysql_install_dir}
datadir = $datadir
socket = /tmp/mysql.sock 
port = 3306 
pid-file = $datadir/mysql.pid 
user = mysql 
skip-name-resolve 
EOF
#配置服务启动脚本
if [ ! -f /etc/init.d/mysqld ];then
        cp  -a   ${mysql_install_dir}/support-files/mysql.server /etc/init.d/mysqld
        sed -ri  '/^basedir=/c basedir=${mysql_install_dir}' /etc/init.d/mysqld
        sed -ri  "/^datadir=/c datadir=$datadir" /etc/init.d/mysqld
fi
chmod +x /etc/init.d/mysqld
#启动mysql并设置开机自启
service mysqld start
sleep 6
chkconfig --add mysqld
ln -s ${mysql_install_dir}/bin/mysql /usr/bin
password=$(grep 'password' /tmp/passwd |awk '{print $NF}')
mysql -uroot -p$password --connect-expired-password -e "set password = password('$passwd');"
echo "数据库的密码是: $passwd"
    fi
done
验证:
[root@
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇工程课Linux第一节笔记 下一篇Shell命令

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目