目录
#!/usr/bin/env bash
#parameter definition
a=$(uname -a)
curdir=$(
cd $(dirname $0)
pwd
)
curuser=$USER
mysqltarfile=$(ls -l | grep tar.xz | awk '{print $9}')
log=$curdir/mysql_install.log
# 解压MYSQL安装包
function deCompression() {
echo '==========解压MYSQL安装包=========='
pushd $curdir
tar -Jxvf $mysqltarfile -C /usr/local/
mv /usr/local/mysql-8.0.29-linux-glibc2.17-x86_64-minimal /usr/local/mysql
if [ $? -ne 0 ]; then
echo 'MySQL decompression failed!!!'
exit
else
echo '===================================='
echo 'MySQL decompression success!'
fi
popd
}
# 创建MYSQL⽤户和⽤户组
function createMysqlGroup() {
echo '==========创建MYSQL⽤户和⽤户组=========='
groupadd mysql
useradd -g mysql mysql
# mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
echo '===================================='
echo 'mysql group created success!'
}
# MYSQL的配置⽂件,可修改datadir
function mycnf() {
cat >/etc/my.cnf <
dpkg -i $curdir/libaio1_0.3.110-5_amd64.deb > /dev/null
dpkg -i $curdir/libaio-dev_0.3.110-5_amd64.deb > /dev/null
pushd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2>&1 | tee $log
# 获取 root 初始密码
InitialPassword=$(tail -1 $log | awk '{print $NF}')
# 复制启动脚本到资源⽬录,并修改 basedir 和 datadir 为对应⽬录
cp ./support-files/mysql.server /etc/init.d/mysqld
sed -i '46s/basedir=/basedir=/usr/local/mysql/g' /etc/init.d/mysqld
sed -i '47s/datadir=/datadir=/usr/local/mysql/data/g' /etc/init.d/mysqld
if [ $? -ne 0 ]; then
echo 'Failed to replace /etc/init.d/mysqld!!!'
exit
else
echo '===================================='
echo '/etc/init.d/mysqld success!'
echo '===================================='
fi
popd
# 设置MYSQL系统服务并开启⾃启
chmod +x /etc/init.d/mysqld
# 启动MYSQLD
/etc/init.d/mysqld restart
# 检查 MySQL 服务是否启动成功
netstat -ntlp | grep 3306
if [ $? -ne 0 ]; then
echo 'MySQL Boot failure!!!'
exit
else
echo '===================================='
echo 'start MySQL success!'
fi
# 登陆MYSQL,并执行 SQL 语句
#use mysql;
#update user set user.Host='%' where user.User='root';
/usr/local/mysql/bin/mysql -uroot -p"$InitialPassword" --connect-expired-password <
deCompression
createMysqlGroup
mycnf
mysql_install
}
main