1. 程式人生 > >mysql一鍵安裝指令碼---二進位制安裝

mysql一鍵安裝指令碼---二進位制安裝

#!/bin/sh

MYSQL_TAB_FILE=""
MYSQL_REAL_DIR=""
INSTALL_DIR="/usr/local"
BASEDIR="$INSTALL_DIR"/mysql
DATADIR="$BASEDIR"/data
DEFAULT_STORAGE_ENGINE=""
ROOT_PWD=".mysql.$$"

trap "interrupt" 1 2 3 6 15

usage()
{
  cat <<EOF
	sh install.sh <MYSQL_TAB_FILE> <DEFAULT_STORAGE_ENGINE> <ROOT_PWD>
EOF
exit 1
}

cleanup(){
	echo "Cleaning up..."
	rm -f $command
}

clean_and_exit(){
	cleanup
	exit 1
}

interrupt(){
	echo 
	echo "Aborting!"
	echo 
	cleanup
	stty echo 
	exit 1
}

check()
{
	status=`whoami |awk '{print $1}'`
	
	if [ $status == "root" ]
	then
		echo "the current logined user is root! "
	else
		echo "the current logined user is not root! please install with root. "
	fi
	
	if [ $# -ne 3 ];then
		usage
	fi
	
	if [ ! -f $MYSQL_TAB_FILE ];then
		echo "The file $MYSQL_TAB_FILE does not exists!"
		exit 1
	fi
	
	if [ 0 -eq $(echo $MYSQL_TAB_FILE|grep "\.tar\.gz$"|wc -l) ];then
		echo "The file $MYSQL_TAR_FILE does not format *.tar.gz!"
		exit 1 
	fi
	
	if [ ! -d $INSTALL_DIR ];then
		echo "The directory $INSTALL_DIR does not exists!"
		exit 1 
	fi 
	
	if [ $DEFAULT_STORAGE_ENGINE != 'INNODB' -a $DEFAULT_STORAGE_ENGINE != 'MYISAM' ]
	then
		usgae
	fi
	
	if [ -d $INSTALL_DIR/$MYSQL_REAL_DIR ];then
		echo "The directory $INSTALL_DIR/$MYSQL_REAL_DIR exists! Mysql has been installed!"
		exit 1 
	fi 
	
	if [ -d $INSTALL_DIR/mysql ];then
		echo "The directory $INSTALL_DIR/mysql exists! Mysql has been installed!"
		exit 1 
	fi 
	
	if [ -d $DATADIR ];then
		echo "Create directory datadir $DATADIR..."
	fi 
}

init()
{
	MYSQL_TAB_FILE=$1
	MYSQL_REAL_DIR=`echo $MYSQL_TAB_FILE|sed 's/\.tar\.gz//g'`
	DEFAULT_STORAGE_ENGINE=`echo $2|tr 'a-z' 'A-Z'`
	ROOT_PWD=$3 
}

install()
{
	groupadd mysql
	useradd -g mysql mysql
	
	tar -zxvf $MYSQL_TAB_FILE -C $INSTALL_DIR
	cd $INSTALL_DIR
	
	ln -s $MYSQL_REAL_DIR mysql
	cd mysql
	script/mysql_install_db --user=mysql --datadir=$DATADIR --basedir=$BASEDIR
	chown -R root:mysql .
	chown -R mysql:mysql data
	
	rm -f /etc/init.d/mysqld 
	cp support-files/mysql.server /etc/init.d/mysqld
	chmod 700 /etc/init.d/mysqld
	chkconfig --add mysqld 
	chkconfig --level 345 mysqld on 
	
	if [ $DEFAULT_STORAGE_ENGINE = 'INNODB' ]
	then
		eval sed '/^#skip-networking$/a\basedir=$BASEDIR\\ndatadir=$DATADIR\\ncharacter-set-server=utf8\\ncollation-server=utf8_general_ci\\ninit_connect="SET NAMES 'utf8'"\\ndefault_storage_engine=InnoDB' ./support-files/my-large.cnf >/etc/my.cnf
	elif [ $DEFAULT_STORAGE_ENGINE = 'MYISAM' ]
	then
		eval sed '/^#skip-networking$/a\basedir=$BASEDIR\\ndatadir=$DATADIR\\ncharacter-set-server=utf8\\ncollation-server=utf8_general_ci\\ninit_connect="SET NAMES 'utf8'"\\ndefault_storage_engine=InnoDB' ./support-files/my-large.cnf >/etc/my.cnf
	fi
	
	echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile
	export PATH=$PATH:/usr/local/mysql/bin
	/etc/init.d/mysqld start
}

prepare_product_env(){
	echo "UPDATE mysql.user SET Password=PASSWORD('$ROOT_PWD') WHERE User='root';" >$command
	echo "DELETE FROM mysql.user WHERE User='';" >>$command
	echo "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1');" >>$command
	echo "DROP DATABASE test;" >>$command
	echo "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';" >>$command
	echo "FLUSH PRIVILEGES;" >>$command
	mysql -uroot <$command
	if [ $? -eq 0 ];then
		echo "prepare product environment successfully!"
	else
		echo "prepare product environment failed!"
		clean_and_exit
	fi 
}

init 
[email protected]
check [email protected] install prepare_product_env cleanup

這個指令碼有很多需要改的地方,會繼續改進,主要是my.cnf這塊(這個應該根據os的記憶體,動態調整), 歡迎拍磚

相關推薦

mysql安裝指令碼---二進位制安裝

#!/bin/sh MYSQL_TAB_FILE="" MYSQL_REAL_DIR="" INSTALL_DIR="/usr/local" BASEDIR="$INSTALL_DIR"/mysql DATADIR="$BASEDIR"/data DEFAULT_STOR

MYSQL安裝指令碼

系統環境:CENTOS7 MYSQL:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz MYSQL的安裝包的路徑:/shared/app/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz [[email p

k8s安裝指令碼(二進位制)

安裝案例:系統:Centos可以多臺Master(Master不能低於3臺)多臺Node此案例使用三臺Master兩臺Node,使用者名稱root,密碼均為123456 master 192.168.20.183 master 192.168.20.96 master 192.168.20.171 n

linux 下mysql安裝指令碼

修改名字為 mysql.sh #!/bin/bash GROUP_NAME=mysql USER_NAME=mysql MYSQLDB_HOME=/home/mysql/mysql MYSQLDB_DATA_HOME=/home/mys

MySql安裝shell腳本

mysql shell 一鍵安裝 #!/bin/bash #data:20171104 #QQ:654996537 #Name:Zhang #判斷是否是root用戶 if [ $(id -u) != "0" ]; then echo " Not the root user! Try usi

mysql安裝 各種版本操作

[[email protected] soft]# cat auto_install_mysql.sh #!/bin/sh set -x groupadd mysql useradd -g mysql mysql #mkdir /usr/local/mysql m

Apache/Nginx+PHP+MySQL環境安裝

windows平臺 2.WINDOWS的NGINX+PHP+MYSQL+MEMCACHED的伺服器整合環境 LINUX 平臺 1.linux+apache/nginx+php+mysql lanmp/lamp/lnmp/lnamp一鍵安裝包 2.linux+a

jdk+tomcat+mysql安裝配置

安裝步驟如下 1.準備好免安裝版jdk 2.免安裝版tomcat,這個容易找 3.免安裝版MySQL,可以直接去官網上下載zip版。我的這個是5.5版本的,剛下載的時候壓縮包中是沒有my.ini檔案,需要自己將my-small.ini複製貼上然後將名字改為my.ini。

網狐Android客戶端發布並安裝到手機

oid post png info clas src log androi http 網狐Android客戶端一鍵發布並安裝到手機

mysql建立從庫指令碼

#!/bin/sh myuser=root mypass="root123" mysock=/data/3306/mysql.sock #main_path=/server/backup data_path=/server/backup [ ! -f $data_path ] &&

linux下 mysql 8.0.12版本二進位制安裝教程

mysq安裝步驟:①下載安裝包:wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz ②解壓縮下載的安裝包:   ----例如:tar -Jxvf

MySQl編譯安裝二進位制安裝介紹

MySQL介紹 MySQL是一個開放原始碼的小型關聯式資料庫管理系統。目前MySQL被廣泛地應用在Internet上的中小型網站中。由於其體積小、速度快、總體擁有成本低,尤其是開放原始碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。 MySQl資料庫分類 1)社群

MySQL 5.7.19多例項安裝二進位制安裝模式)

MySQL可以通過在一臺伺服器上,部署執行多個MySQL服務程序,通過不同的socket監聽不同的服務埠來提供各自的服務。各個例項之間是相互獨立的,每個例項的datadir, port, socket, pid都是不同的 作業系統 redhat 7.4 資料庫

lnmp環境搭建及解除安裝

按上述命令執行後,會出現如下提示: (注:如果是Debian系統,會提示Where are your servers located? asia,america,europe,oceania or africa,這裡是選擇伺服器/VPS在哪個大洲,一般都是美國VPS,直接回車就行,如果是中國的,輸入asia,

win7下 ghost/還原軟體解除安裝後 刪除相關開機啟動選項

系統:win7 x64  安裝一鍵ghost/一鍵還原軟體,解除安裝後,發現vista一鍵還原 仍保留在開機選項裡,刪除方法: 1、下載win7優化大師,點選“系統設定”-->“啟動設定”-->“多系統選擇”-->選中專案,點選“刪除”; 2、進入終

MYSQL】MySQL5.6.37二進位制安裝

最近有個專案要用到mysql 於是在mysql的論壇中找到了一個5.6.37版本的 下面介紹怎麼安裝和使用mysql 下載地址: 下面這個是我上傳到雲上的 1.下載並上傳到伺服器中,進行解壓,解壓到/usr/local下 [[email protected]

Linux For CentOS7常用服務配置指令碼

-----------------------------------------------第二次修正:更新最新專案地址-----------時間:2018年11月9日 15:50:34 做測試最麻煩的就是配置環境這塊,所以在經歷了很多折磨之後,我決定自己寫一個指令碼,整合一些常用服務的安裝與

切換指令碼

1.一鍵切換指令碼 第一步:cd ~ [email protected]:~$ cd ~ 第二步:mkdir -p aliyun 163 [email protected]:~$ mkdir -p aliyun 163 第三步:在aliyun 163目錄下vi

微服務啟動指令碼shell

etting####################################################### #程式程式碼陣列APPS=(cAssistantbussiness cAssistantbussinessweb) #程式名稱陣列 NAMES=(愛生活業務服務後臺 愛生活業務服務

基於CentOS7的PPTP VPN部署指令碼

指令碼已親測可用,環境是centos7.4 #!/bin/bash [ $(id -u) != "0" ] && { echo "Error: You must be root to run this script"; exit 1; } e