0
点赞
收藏
分享

微信扫一扫

linux Centos 7 Mysql8.0.x 一键安装脚本

您好 2023-08-17 阅读 57

##############################################
# Author      : -Sky-Tian-
# Created Time: 2023-08-16 09:48
# Description : Install mysql8.0.x
##############################################
#!/bin/bash
. /etc/init.d/functions
set -o nounset -o errexit
## Varibles
L_PATH=/usr/local
[ $EUID != '0' ] && echo -e "\E[31mThis Script Requires Network and ROOT Permissions\E[0m" && exit 1
S_PATH=$(cd `dirname $0`;pwd)
echo "Mysql starting time -> " `date` >${S_PATH}/info.log
## Create User Group
groupadd mysql
id mysql &> /dev/null || { useradd -r -g mysql -s /sbin/nologin mysql ; echo  "Create user successfull"; }
## Download .gz package
function sqlinstall { 
  cd /opt/
  wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz &>>${S_PATH}/info.log
  tar xf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz -C $L_PATH/
  yum install -q -y libaio perl-Data-Dumper libncurses* |tee -a ${S_PATH}/info.log
  cd $L_PATH && ln -s mysql-8.0.33-linux-glibc2.28-x86_64 mysql &> /dev/null
  mkdir -pv $L_PATH/mysql/data &>>${S_PATH}/info.log
  chown -R mysql:mysql  $L_PATH/mysql && cd $L_PATH/mysql
  chown -R mysql.mysql ./*
  echo 'PATH=/usr/local/mysql/bin/:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
}
## Create my.cnf file
cat > /etc/my.cnf <<EOF
[mysqld]
port=3306
character-set-server=utf8
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
default-storage-engine=InnoDB
max_connections=512
tmp_table_size=200M
thread_cache_size=8
key_buffer_size=25M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=1G
innodb_log_file_size=24M
innodb_thread_concurrency=8
lower_case_table_names=1
socket=/tmp/mysql.sock
sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
default_authentication_plugin=mysql_native_password
log-error=/usr/local/mysql/data/sqlinfo.log
tmpdir = /tmp
# 1142 1146 error
#show_compatibility_56 = ON
#performance_schema
[client]
port=3306
[mysql]
default-character-set=utf8
EOF
sqlinstall
## Initialize database
#$L_PATH/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=$L_PATH/mysql --datadir=$L_PATH/mysql/data &>>${S_PATH}/info.log
$L_PATH/mysql/bin/mysqld --initialize --user=mysql --basedir=$L_PATH/mysql --datadir=$L_PATH/mysql/data &>>${S_PATH}/info.log
## Create rse key 
$L_PATH/mysql/bin/mysql_ssl_rsa_setup --datadir=$L_PATH/mysql/data &>>${S_PATH}/info.log
## Configure Startup Service
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start >& /dev/null && echo -e  "\E[32mMysql Services start successfull\E[0m" || (echo -e  "\E[31mMysql Service start failure\E[0m" && exit 1)
## Configure Mysql_root password
OLD_PASS=`awk '/temporary password/{print $NF}' /usr/local/mysql/data/sqlinfo.log`
NEW_PASS=123456
mysqladmin -uroot -p${OLD_PASS} password ${NEW_PASS} >& /dev/null && echo -e "\E[33mMysql Pass Configure Successfull\E[0m \E[32mNew_password->123456" || echo -e "\E[33mMysql Pass Configure failure"
echo "Mysql end time ->" `date` &>>${S_PATH}/info.log

举报

相关推荐

0 条评论