学习了两周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通用二进制安装
--------------------------------------分割线 --------------------------------------
本文永久更新链接地址:

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ホットトピック









