Linux mysql8 自动安装脚本

本文的安装环境是centos,MySQL版本是8.0.17

#!/bin/bash

ifubuntu=$(cat /proc/version | grep ubuntu)
if14=$(cat /etc/issue | grep 14)

if [ `uname -m` == "x86_64" ];then
machine=x86_64
else
machine=i686
fi
echo $machine

if [ $machine == "x86_64" ];then
  rm -rf mysql-8.0.17-linux-glibc2.12-x86_64
  if [ ! -f mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz ];then
	 wget https://cdn.mysql.com//archives/mysql-8.0/mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
  fi
  tar -xvf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
  mkdir -p /alidata/server/mysql
  mv mysql-8.0.17-linux-glibc2.12-x86_64/* /alidata/server/mysql
else
  echo $machine
fi

if [ "$ifubuntu" != "" ] && [ "$if14" != "" ];then
	mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
fi

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
#/alidata/server/mysql/bin/mysqld --initialize --datadir=/alidata/server/mysql/data/ --basedir=/alidata/server/mysql --user=mysql
mkdir -p /alidata/log/mysql
touch /alidata/log/mysql/error.log
chown -R mysql:mysql /alidata/server/mysql/
chown -R mysql:mysql /alidata/server/mysql/data/
chown -R mysql:mysql /alidata/log/mysql
\cp -f /alidata/server/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's#^basedir=$#basedir=/alidata/server/mysql#' /etc/init.d/mysqld
sed -i 's#^datadir=$#datadir=/alidata/server/mysql/data#' /etc/init.d/mysqld
cat > /etc/my.cnf <<END
[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
log-error=/alidata/log/mysql/error.log
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

log-bin=mysql-bin
binlog_format=mixed
server-id       = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
END
#mv /alidata/server/mysql/my.cnf /alidata/server/mysql/my.cnf.bak

chmod 755 /etc/init.d/mysqld

/alidata/server/mysql/bin/mysqld --initialize --datadir=/alidata/server/mysql/data/ --basedir=/alidata/server/mysql --user=mysql

/etc/init.d/mysqld start
ln -s /alidata/server/mysql/bin/mysql /usr/bin/mysql


#startup & change init password
tmp_passwd=`cat /alidata/log/mysql/error.log |grep "A temporary password is generated for root"|awk -F ' ' '{print $NF}'|sed 's/[[:space:]]//g'`
service mysqld restart
if [ `service mysqld status|grep running|wc -l` -eq 1 ]
then
mysql -u root -p"$tmp_passwd" --connect-expired-password -e "alter user 'root'@'localhost' identified by 'MyNewPass@123';"
echo "####################################################################"
echo "mysql install finished & service already startup & user root password is 'MyNewPass@123',you need to change it as soon as possible"
else
echo "####################################################################"
echo "mysql install finished & but service startup failed & checkup /alidata/log/mysql/error.log"
fi

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值