#!/bin/bash
#====================================================
# Author: will
# Create Date: 2020-02-13
# Description:just for mysql-5.7.28
#====================================================
yum install -y wget c ncurses-devel
yum install -y gcc pcre pcre-devel openssl openssl-devel make cmake
yum install -y libaio bison gcc-c++ git ncurses gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2
yum install -y libxml2-devel zlib-devel openssl libcurl-devel
TOT_MEM=`free -th|grep Total|awk ‘{print $2}‘|awk -FG ‘{print $1}‘`
if [[ ${TOT_MEM} > 2 ]];then
SQL_PWD="/usr/local/mysql7"
DATA_PWD="/data/mysql7"
SQL_SRC_PWD="/usr/local/mysql-5.7.28"
wget -c https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.28.tar.gz -P /usr/src/
tar zxf /usr/src/mysql-boost-5.7.28.tar.gz -C /usr/src/
cd ${SQL_SRC_PWD}
cmake . -DCMAKE_INSTALL_PREFIX=${SQL_PWD} \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=${DATA_PWD} \
-DSYSCONFDIR=${SQL_PWD} \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3307 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0 \
-DENABLE_DTRACE=0 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=${SQL_SRC_PWD}/boost
make&&make install
mkdir -p ${DATA_PWD}
useradd -s /sbin/nologin -M mysql
chown -R mysql. ${DATA_PWD}
cp support-files/mysql.server /etc/init.d/mysql7
chmod +x /etc/init.d/mysql7
echo "[mysqld]
basedir=${SQL_PWD}/
datadir=${DATA_PWD}/
port=3307
pid-file=${DATA_PWD}/mysql7.pid
socket=/tmp/mysql.sock
[mysqld_safe]
log-error=${DATA_PWD}/mysql7.log
" > ${SQL_PWD}/my.cnf
${SQL_PWD}/bin/mysqld --initialize --user=mysql --datadir=${DATA_PWD} --basedir=${SQL_PWD}/
/etc/init.d/mysql7 start
sed -i ‘3a\skip-grant-tables‘ ${SQL_PWD}/my.cnf
/etc/init.d/mysql7 restart
ln -s ${SQL_PWD}/bin/* /usr/bin
#mysql
else
echo "total memory is ${TOT_MEM} . less than 2G "
fi
原文:https://www.cnblogs.com/funny-linux/p/12317681.html