#!/bin/bash #by sunbeamboy #File Name:auto_install_mysql.sh #2021-02-22 23:17:46 ############################# soft_dir="pwd" mysql_tar="mysql-5.5.60.tar.gz" mysql_install_path="/usr/local/mysql55" mysql_data_install_path="/usr/local/data/mysql55" mysql_down_path="http://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.60.tar.gz" COLOR="echo -e \033[01;31m" END='\033[0m' install(){ if [ ! -e $mysql_tar ];then $COLOR"缺少${mysql_tar}安装文件,重新下载请等待…………"$END wget $mysql_down_path elif [ -e $mysql_install_path ];then $COLOR"数据库已经存在,退出安装"$END exit else return fi $COLOR"开始建立MYSQL用户..."$END sleep 1 useradd -s /sbin/nologin mysql -M $COLOR"开始安装依赖包..."$END sleep 2 yum install -y gcc ncurses-devel libaio bison gcc-c++ git cmake ncurses-devel openssl openssl-devel cmake mkdir -p $mysql_data_install_path mkdir -p $mysql_install_path wget $mysql_down_path tar -zxvf $mysql_tar $COLOR"开始预编译MYSQL..."$END sleep 3 cd mysql-5.5.60 cmake . -DCMAKE_INSTALL_PREFIX=$mysql_install_path
-DMYSQL_UNIX_ADDR=$mysql_install_path/mysql.sock
-DMYSQL_DATADIR=$mysql_data_install_path
-DSYSCONFDIR=$mysql_install_path
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
-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 make -j cat /proc/cpuinfo | grep processor| wc -l && make install mkdir -p $mysql_install_path/log/ touch $mysql_install_path/log/mysql.log cp support-files/my-large.cnf $mysql_install_path/my.cnf cp support-files/mysql.server /etc/init.d/mysqld chown -R mysql. $mysql_data_install_path chown -R mysql. $mysql_install_path chmod +x /etc/init.d/mysqld cat << EOF > $mysql_install_path/my.cnf [client] port = 3306 socket = /usr/local/mysql55/mysql.sock [mysqld] datadir = /usr/local/data/mysql55 port = 3306 socket = /usr/local/mysql55/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 log-bin=mysql-bin binlog_format=mixed server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [mysqld_safe] log-error = /usr/local/mysql55/log/mysql.log EOF /usr/local/mysql55/scripts/mysql_install_db --user=mysql --datadir=/usr/local/data/mysql55 --basedir=/usr/local/mysql55 #import environment cat << EOF >> ~/.bash_profile export PATH=/usr/local/mysql55/bin:$PATH EOF $COLOR"MYSQL_数据库安装完成..."$END sleep 2 $COLOR"启动MYSQL数据库..."$END sleep 1 /etc/init.d/mysqld start systemctl enable mysqld }

uninstall(){ /etc/init.d/mysqld stop rm -rf $mysql_install_path rm -rf $mysql_data_install_path/* $COLOR"MYSQL_数据库卸载完成..."$END sleep 2 }

read -p "Please confirm whether to install mysql(yes) and uninstall-mysql(no),yes or no?" INPUT if [ $INPUT == "yes" -o $INPUT == "y" ];then install else uninstall fi