二进制安装mysql5.7_centos7二进制安装mysql5.7/8.0脚本

#!/bin/bash

#MySQL5.7.29 Download URL: https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz #已经验证可以自动化

#MySQL5.7.31 Download URL: https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz" #

#MySQL8.0 Download URL: https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

. /etc/init.d/functions

SRC_DIR=`pwd`

LINK="https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz"

#MYSQL='mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz'

#MYSQL='mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz'

MYSQL="mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz"

FULL_NAME=${SRC_DIR}/${MYSQL}

COLOR='echo -e \e[01;31m'

END='\e[0m'

MYSQL_ROOT_PASSWORD=123456

action "下载依赖..."

yum -y install autoconf libaio-devel numactl-libs libtinfo* net-tools vim wget gcc gcc-c++ lrzsz &>/dev/null

check (){

if [ $UID -ne 0 ];then

action "当前用户不是root,安装失败" false

exit 1

fi

cd $SRC_DIR

if [ -e /usr/local/mysql ];then

action "数据库已存在,安装失败" false

exit 1

elif [ ! -e ${FULL_NAME} ];then

$COLOR"缺少${MYSQL}文件"$END

$COLOR"正在下载${MYSQL}文件..."$END

wget $LINK && action "下载${MYSQL}文件完成" || action "下载${MYSQL}文件失败" false

else

return

fi

}

install_mysql(){

$COLOR"开始安装MySQL数据库..."$END

cd $SRC_DIR

tar xf $MYSQL -C /usr/local/

MYSQL_DIR=`echo $MYSQL| sed -nr 's/^(.*[0-9]).*/\1/p'`

ln -s /usr/local/$MYSQL_DIR /usr/local/mysql

#创建用户mysql

id mysql &>/dev/null && { action "mysql already exists";usermod -u306 -md /data/mysql -s /sbin/nologin mysql &>/dev/null; } || { useradd -r -u306 -d /data/mysql -s /sbin/nologin mysql &>/dev/mull; }

chown -R mysql.mysql /usr/local/mysql/

echo 'PATH=/usr/local/mysql/bin/:$PATH' >> /etc/profile.d/path.sh

. /etc/profile.d/path.sh

cat >/etc/my.cnf <

[client]

socket=/data/mysql/mysql.sock

[mysql]

prompt=(\u@\h \p) [\d]>\_

[mysqld]

user=mysql

skip_name_resolve=1

datadir=/data/mysql

basedir=/usr/local/mysql

server_id=1

log-bin

port=3306

socket=/data/mysql/mysql.sock

log-error=/data/mysql/mysql.log

pid-file=/data/mysql/mysql.pid

EOF

#mysqld --initialize-insecure --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql

mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

cat >/lib/systemd/system/mysqld.service <

[Unit]

Description=mysql database server

Documentation=man:mysqld(8)

Documentation=https://mariadb.com/kb/en/library/systemd/

After=network.target

[Install]

WantedBy=multi-user.target

Alias=mysqld.service

[Service]

Type=notify

PrivateNetwork=false

Type=forking

Restart=no

TimeoutSec=5min

IgnoreSIGPIPE=no

KillMode=process

GuessMainPID=no

RemainAfterExit=yes

SuccessExitStatus=5 6

ExecStart=/etc/rc.d/init.d/mysqld start

ExecStop=/etc/rc.d/init.d/mysqld stop

ExecReload=/etc/rc.d/init.d/mysqld reload

EOF

systemctl enable mysqld &>/dev/null

systemctl restart mysqld && ss -lnt|awk -F":| +" '/3306/{print $5}' && action "启动成功" || action "失败" false

MYSQL_OLDPASSWORD=$(awk '/A temporary password/{print $NF}' /data/mysql/mysql.log)

mysqladmin -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD} &>/dev/null

action "数据库安装完成"

}

#执行函数

check

install_mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值