検索

学习了两周Linux Shell脚本,终于写出一个MySQL自动化安装脚本。加上今天一整天的测试,可以正常执行安装MySQL 5.5.40. 其他版本

学习了两周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!"

      fi

  mount -t cifs -o username=swen02,password=autozhao01! //172.16.11.20/LAMP-all-software /mnt/share

fi

 


echo "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!"

      fi

fi

 


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

fi

cd ..

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

fi

cd ..

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

fi

 

 

 

echo "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

fi

cd ..

 


#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 ]]

do

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

then

  echo "not found it"

  sleep 30

else

    echo "found it"

  let signal+=1

fi

done

 


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

kill -9 $PPID

--------------------------------------分割线 --------------------------------------

Ubuntu 14.04下安装MySQL

《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主从服务器

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二进制安装

--------------------------------------分割线 --------------------------------------

本文永久更新链接地址:

linux

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLはデータレプリケーションをどのように処理しますか?MySQLはデータレプリケーションをどのように処理しますか?Apr 28, 2025 am 12:25 AM

MySQLは、非同期、半同期、およびグループ複製の3つのモードを介してデータの複製を処理します。 1)非同期の複製パフォーマンスは高くなりますが、データが失われる可能性があります。 2)半同期複製により、データセキュリティが向上しますが、遅延が増加します。 3)グループレプリケーションは、高可用性要件に適したマルチマスターレプリケーションとフェールオーバーをサポートします。

説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?Apr 28, 2025 am 12:24 AM

説明ステートメントは、SQLクエリのパフォーマンスを分析および改善するために使用できます。 1.説明ステートメントを実行して、クエリプランを表示します。 2。出力結果を分析し、アクセスの種類、インデックスの使用量に注意し、順序を結合します。 3.分析結果に基づいてインデックスを作成または調整し、結合操作を最適化し、フルテーブルスキャンを回避してクエリ効率を向上させます。

MySQLデータベースをバックアップして復元するにはどうすればよいですか?MySQLデータベースをバックアップして復元するにはどうすればよいですか?Apr 28, 2025 am 12:23 AM

論理バックアップにMySQLDUMPとホットバックアップにMySQLenterPriseBackupを使用することは、MySQLデータベースをバックアップする効果的な方法です。 1. mysqldumpを使用してデータベースをバックアップします:mysqldump-uroot-pmydatabase> mydatabase_backup.sql。 2。ホットバックアップにmysqlenterprisebackupを使用:mysqlbackup - user = root-password = password - backup-dir =/path/to/backupbackup。回復するときは、対応する寿命を使用します

MySQLのスロークエリの一般的な原因は何ですか?MySQLのスロークエリの一般的な原因は何ですか?Apr 28, 2025 am 12:18 AM

MySQLのクエリが遅い主な理由には、インデックスの欠落または不適切な使用、クエリの複雑さ、過剰なデータボリューム、および不十分なハードウェアリソースが含まれます。最適化の提案には以下が含まれます。1。適切なインデックスを作成します。 2。クエリステートメントを最適化します。 3.テーブルパーティションテクノロジーを使用します。 4.適切にハードウェアをアップグレードします。

mysqlのビューは何ですか?mysqlのビューは何ですか?Apr 28, 2025 am 12:04 AM

MySQLビューは、SQLクエリの結果に基づいた仮想テーブルであり、データを保存しません。 1)ビューは複雑なクエリを簡素化し、2)データセキュリティを強化し、3)データの一貫性を維持します。ビューは、テーブルのように使用できるデータベースにクエリを保存しますが、データは動的に生成されます。

MySQLと他のSQL方言の構文の違いは何ですか?MySQLと他のSQL方言の構文の違いは何ですか?Apr 27, 2025 am 12:26 AM

MySQLdiffersfromotherSQLdialectsinsyntaxforLIMIT,auto-increment,stringcomparison,subqueries,andperformanceanalysis.1)MySQLusesLIMIT,whileSQLServerusesTOPandOracleusesROWNUM.2)MySQL'sAUTO_INCREMENTcontrastswithPostgreSQL'sSERIALandOracle'ssequenceandt

MySQLパーティションは何ですか?MySQLパーティションは何ですか?Apr 27, 2025 am 12:23 AM

MySQLパーティション化により、パフォーマンスが向上し、メンテナンスが簡素化されます。 1)大きなテーブルを特定の基準(日付範囲など)、2)物理的に独立したファイルに物理的に分割する、3)MySQLはクエリするときに関連するパーティションに焦点を合わせることができます。

MySQLで特権をどのように許可して取り消しますか?MySQLで特権をどのように許可して取り消しますか?Apr 27, 2025 am 12:21 AM

mysqlで許可を許可および取り消す方法は? 1。grantallprivilegesondatabase_name.to'username'@'host 'などの許可を付与するために付与ステートメントを使用してください。 2。Revokeallprivilegesondatabase_name.from'username'@'host 'など、Revoke Statementを使用して、許可のタイムリーな通信を確保します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン