MySQL学习笔记(一):shell脚本安装配置mysql
admin
2023-04-23 18:02:43
0

该脚本用于MySQL二进制安装,仅限于最初安装,如服务器已安装配置有mysql,不建议使用该脚本。

操作系统版本:CentOS 7

数据库版本:MySQL 5.7.22


#!/bin/bash
cnf_file="/etc/my.cnf"
install_log="mysql_install.log"
dbfile="mysql-5.7.22-el7-x86_64.tar.gz"
ext_files="mysql-5.7.22-el7-x86_64"
bin_path="/usr/local/mysql"
pid_path="/data/mysql"
data_path="/data/mysql/data"
errlog_path="/data/mysql/logs/"
binlog_path="/data/mysql/binlog/"
slowlog_path="/data/mysql/slow_logs"
socket="/data/mysql/mysql3306.sock"
port=3306
serverid=330601
group="mysql"
user="mysql"
if [ ! -f "$dbfile" ];then
echo "$dbfile not exists"  > $install_log
else
tar -zxvf $dbfile > $install_log
if [ $? -eq 0 ];then
echo "$dbfile Extract Success" >> $install_log
else
echo "$dbfile Extract Failed"  >> $install_log
exit 0
fi
fi
if [ ! -d "$bin_path" ];then
echo "moving $ext_files to $bin_path ......"  >> $install_log
mv $ext_files $bin_path
echo "move $ext_files to $bin_path ......[done]" >> $install_log
echo "creating $pid_path ......" >> $install_log
if [ ! -d "$pid_path" ];then
mkdir -p $pid_path
echo "create $pid_path ......[done]" >> $install_log
else
echo "create $pid_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $data_path ......" >> $install_log
if [ ! -d "$data_path" ];then
mkdir -p $data_path
echo "create $data_path ......[done]" >> $install_log
else
echo "create $data_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $errlog_path ......" >> $install_log
if [ ! -d "$errlog_path" ];then
mkdir -p $errlog_path
echo "create $errlog_path ......[done]" >> $install_log
else
echo "create $errlog_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $binlog_path ......" >> $install_log
if [ ! -d "$binlog_path" ];then
mkdir -p $binlog_path
echo "create $binlog_path ......[done]" >> $install_log
else
echo "create $binlog_path ......[failed]" >> $install_log
exit 0
fi
echo "creating $slowlog_path ......" >> $install_log
if [ ! -d "$slowlog_path" ];then
mkdir -p $slowlog_path
echo "create $slowlog_path ......[done]" >> $install_log
else
echo "create $slowlog_path ......[failed]" >> $install_log
exit 0
fi
else
echo "$bin_path already exists" >> $install_log
exit 0
fi
#create group if not exists
egrep "^$group" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    echo "group $group not exists" >> $install_log
echo "creating group $group ......" >> $install_log
groupadd $group
echo "creat group $group ......[done]" >> $install_log
else
echo "group $group already exists ......[skip]" >> $install_log
fi
#create user if not exists
egrep "^$user" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    echo "user $user not exists" >> $install_log
echo "creating user $user ......" >> $install_log
useradd -g $group $user
echo "creat user $user ......[done]" >> $install_log
else
echo "user $user already exists ......[skip]" >> $install_log
fi
#Modify directory permissions
chown -R $user.$group $bin_path
chown -R $user.$group $pid_path
#Add environment variables
result_grep_path="$( grep   "${bin_path}/bin" /etc/profile  )" || result_grep_path=""
if [ -z "${result_grep_path}" ]
then
echo "export PATH=\$PATH:${bin_path}/bin:${bin_path}/lib" >> /etc/profile ;
source /etc/profile
else
echo "${bin_path}/bin already exists in /etc/profile" >> $install_log
fi
#mysql cnf
if [ -f $cnf_file ];then
echo "$cnf_file exists"
echo "move $cnf_file to $cnf_file`date '+%Y%m%d%H%M%S'` "  >> $install_log
mv $cnf_file $cnf_file`date "+%Y%m%d%H%M%S"`
fi
cat > /etc/my.cnf << EOF
[mysql]
socket=${socket}
[mysqld]
server_id=${serverid}
user=mysql
socket=${socket}
port=${port}
basedir=${bin_path}
datadir=${data_path}
log_bin=${binlog_path}/mysql01_bin.log
log_error=${errlog_path}/mysql_err.log
slow_query_log = on 
long_query_time = 2  
slow_query_log_file = ${slowlog_path}/mysql_slow.log
EOF
mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize 
if [ $? -eq 0 ];
then
echo "mysql initialize success ">> $install_log
else
echo "mysql initialize failed ">> $install_log
exit 0
fi
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --add mysql.server
chkconfig --list mysql.server >> $install_log
sudo -u mysql service mysql.server start 
if [ $? -eq 0 ];
then
echo "mysql install && start success ">> $install_log
else
echo "mysql install or start failed">> $install_log
fi
exit 0


相关内容

热门资讯

“台独”顽固分子沈伯洋参选台北... 【环球时报特约记者 陈立非】台湾今年年底举行“九合一”选举,国民党很早就确定由现任台北市市长蒋万安争...
伊拉克和巴基斯坦据称已分别同伊... 总台记者当地时间5月12日获悉,伊拉克和巴基斯坦已分别同伊朗签订协议,以从海湾地区运输石油和液化天然...
京沪高铁“涨价”,调价背后有何... 昨天(11日),京沪高铁发布公告称,决定对京沪高速线、合蚌高速线动车组列车公布票价进行优化调整,时速...
第三方样品A厂家生产支架样品测... 第三方样品A厂家生产支架样品测试实验报告 一、检测范围 本次检测对象为A厂家生产的XX型医用金属...
伊朗德黑兰地区发生4.6级地震 总台记者获悉,当地时间5月12日23时47分左右,伊朗德黑兰地区发生4.6级地震。震中位于德黑兰省和...
被科威特指控“武装渗透”布比延... 新华社科威特城/德黑兰5月12日电(记者尹炣 陈霄)科威特政府12日指认,伊朗伊斯兰革命卫队多名武装...
酒吧办护士制服派对被指低俗,当... 据媒体报道,5月12日国际护士节,浙江衢州有网友发帖称,当地APK·ELITE CLUB酒吧举办所谓...
珠海冠宇获得发明专利授权:“一... 证券之星消息,根据天眼查APP数据显示珠海冠宇(688772)新获得一项发明专利授权,专利名为“一种...
大华申请数据写入方法专利,提高... 国家知识产权局信息显示,浙江大华技术股份有限公司申请一项名为“数据写入方法、电子设备及计算机可读存储...
现在,赖清德更焦虑了 执笔/月半刀&宝刀刀&胡一刀5月13日,美国总统特朗普将开启访华行程。外界高度关注此次会晤中双方将如...