mysql自動化指令碼 mysql自動化安裝指令碼

2021-10-17 13:56:16 字數 4419 閱讀 2513

學習了兩周linux shell指令碼,終於寫出乙個mysql自動化安裝指令碼。加上今天一整天的測試,可以正常執行安裝mysql 5.5.40. 其他版本還沒有測試。現分享一下。也請高手指點一下。執行該指令碼的前提是:

環境介紹:

1、redhat 6.3 x64,最小化安裝

2、ram: 2g,hd:30g

3、關閉selinux

4、配置好yum源(我使用自己配置的源)

5、開啟ssh,病配置好iptables,允許遠端登入訪問。

6、所需軟體和檔案:

cmake-2.8.10.1.tar.gz

bison-3.0.tar.gz

zlib-1.2.7.tar.gz

mysql-5.5.40.tar.gz

my.cnf   //老師共享的檔案

指令碼內容:

#!/bin/bash

echo "step one: create folder and mount packages"

if [ -d /mnt/share ]

then

echo "find it,don't need to create it."

else

mkdir -p /mnt/share

if [[ $? = 0 ]]

then

echo "create it successfully!"

else

echo " can't create this folder!pls check out!"

fimount -t cifs -o username=swen02,password=autozhao01! /mnt/share

fiecho "step two: create mysql installation path"

if [ -d /project/class2 ]

then

echo "find it, don't need to create it."

else

mkdir -p /project/class2/

if [[ $? = 0 ]]

then

echo "create it successfully!"

else

echo " can't create this floder!pls check out!"

fifi

echo "step three: copy packages to the folder"

cp /mnt/share/cmake-2.8.10.1.tar.gz  /project/class2/

cp /mnt/share/bison-3.0.tar.gz  /project/class2/

cp /mnt/share/zlib-1.2.7.tar.gz  /project/class2/

cp /mnt/share/mysql-5.5.40.tar.gz /project/class2/

cp /mnt/share/my.cnf  /project/class2/

echo "step four: install base packages"

yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

cd /project/class2

tar -xzvf  cmake-2.8.10.1.tar.gz

cd cmake-2.8.10.1

./bootstrap

make && make install

if [[ $? = 0 ]]

then

echo "good job!"

else

echo "sorry, pls check out!"

exit 1

ficd ..

tar -zxvf bison-3.0.tar.gz

cd bison-3.0

./configure

make && make install

if [[ $? = 0 ]]

then

echo "good job!"

else

echo "sorry, pls check out!"

exit 1

ficd ..

tar -zxvf zlib-1.2.7.tar.gz

cd zlib-1.2.7

./configure

make && make install

cd ..

if [[ $? = 0 ]]

then

echo "good job!"

else

echo "sorry, pls check out!"

exit 1

fiecho "step five:configure system referenc"

flags="-o3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"

cxx=g++

cxxflags="-o3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"

export cflags cxx cxxflags

echo "step six: begin to install mysql"

groupadd mysql

useradd -r -g mysql mysql

tar -zxvf mysql-5.5.40.tar.gz

cd mysql-5.5.40

cmake -dcmake_install_prefix=/project/class2/mysql

make

make install

if [[ $? = 0 ]]

then

echo "good job!"

else

echo "sorry, pls check out!"

exit 1

ficd ..

#create folder and initial new db

mkdir ./mysql/run

mkdir ./mysql/log

chown -r mysql.mysql /project/class2/mysql

rm -rf /project/class2/mysql/data/*

./mysql/scripts/mysql_install_db --datadir=/project/class2/mysql/data --user=mysql --basedir=/project/class2/mysql

#modify my.cnf and copy new one

sed 's/default-character-set=gbk/default-character-set=utf8/' my.cnf | sed 's/skip-ssl/#skip-ssl/' >./mysql/my.cnf

chown -r mysql.mysql /project/class2/mysql/my.cnf

#creat ln

ln -s /project/class2/mysql/run/mysql.sock /tmp/mysql.sock

mv /root/.bash_profile /root/.bash_profile.bak

/bin/sed '/export path/i\export path="$path":/project/class2/mysql/bin/' /root/.bash_profile.bak >/root/.bash_profile

#start mysql service

./mysql/bin/mysqld_safe --defaults-file=/project/class2/mysql/my.cnf &

#waitting for service to be started

signal=0

while [[ "$signal" = 0 ]]

doif [ -z " `grep 'source distribution'  /project/class2/mysql/log/alert.log`" ]

then

echo "not found it"

sleep 30

else

echo "found it"

let signal+=1

fidone

#logout and relogin, new path will be  take effect.

kill -9 $ppid

部署python自動化指令碼 搭建自動化指令碼執行環境

年前把平台的指令碼寫好了,準備在虛擬機器中全部執行一遍。沒想到在虛擬機器中配置了很長時間,才把環境搭好。為了不再犯這配置環境的苦,在這簡單說說環境的搭建吧。因為寫的指令碼是在win7上實現的,所以虛擬機器我安裝的也是win7系統。1 安裝python 2 配置環境變數 python安裝成功後,將安裝...

docker 自動化部署mysql

bin bash 當前路徑 cur dir cd dirname 0 pwd cd cur dir 後出現的 一旦出現了返回值非零,整個指令碼就會立即退出 set e redis映象名稱 image name mysql latest 容器名稱 container name mysql docker...

自動化部署指令碼

usr bin env python coding utf 8 import sys,os import subprocess import re import shlex import time filename sys.argv 0 absdir os.path.abspath os.path....