Centos6.5上面用Shell腳本一鍵編譯安裝mysql5.5.47

操做系統及其mysql配置文件說明:
Linux系統:Centos6.5
node

cat /etc/centos_release     查看centos版本信息mysql

[root@Linux-node2 ~]# cat /etc/centos-release c++

CentOS release 6.5 (Final)sql

uname -r        #顯示操做系統的發行版號數據庫

[root@Linux-node2 ~]# uname -rcentos

2.6.32-431.el6.x86_64bash

uname -a      #顯示系統名、節點名稱、操做系統的發行版號、操做系統版本、運行系統的機器 ID 號服務器

Linux Linux-node2.com 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linuxide

mysql:mysql-5.5.47.tar.gz源碼包測試

cmake:cmake-2.8.10.2.tar.gz

安裝目錄:/usr/local/mysql/
數據目錄:/data/mysql/3306/data/
二進制日誌:/data/msyql/3306/binlog/
relay日誌:/data/mysql/3306/relaylog/
配置文件:/data/mysql/3306/my.cnf
mysql.sock文件:/data/mysql/3306/mysql.sock
下面是我轉載並通過修改的一鍵安裝mysql數據庫的腳本,若有不對的地方請多多指教。


[root@Linux-node2~]# cat mysql_install.sh

  #!/bin/bash

  #date:2016.1.02

#

#Mysql install directory and configuration files.

  MYSQL_DIR="/data/software"

DATA_DIR="/data/mysql/3306/data"

  BASE_DIR="/usr/local/mysql"

  mkdir -p $MYSQL_DIR     

  mkdir -p $DATA_DIR     

  mkdir -p $BASE_DIR  #建立mysql數據庫的源碼軟件包存放路徑、數據存放路徑、安裝路徑目錄

echo"please input mysql version:"

readVERSION

echo"Your mysql version is mysql-$VERSION.tar.gz"

if[ -e "$MYSQL_DIR/mysql-$VERSION.tar.gz"]

then

echo"Please waitting..."

sleep3

   #Install mysql package dependent.

yum -y installgcc gcc-c++ gcc-g77 autoconf automake openssl zlib* fiex** libxml* \

ncurses-devel libmcrypt* libtool-ltdl-devel* && 

   #Install cmake.

echo"The system will installe cmake,please waitting..."

   sleep3

tar-zxvf $MYSQL_DIR/cmake-2.8.10.2tar.gz -C $MYSQL_DIR && 

cd$MYSQL_DIR/cmake-2.8.10.2 && 

./configure\

--prefix=/usr/local/cmake&& 

make&& makeinstall&& 

#creating mysql account and group.

/usr/sbin/groupaddmysql && 

/usr/sbin/useradd-s /sbin/nologin-g mysql -M mysql && 

#Install mysql.

tar-zxvf $MYSQL_DIR/mysql-$VERSION.tar.gz -C $MYSQL_DIR

cd$MYSQL_DIR/mysql-$VERSION 

   export"PATH=$PATH:/usr/local/cmake/bin"/etc/profile&& source/etc/profile

   export"PATH=$PATH:/usr/local/mysql/bin"/etc/profile&& source/etc/profile

cmake \

$MYSQL_DIR/mysql-$VERSION 

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DYSQL_TCP_PORT=3306 \

-DMYSQL_DATADIR=$DATA_DIR \ 

-DMYSQL_UNIX_ADDR=/data/mysql/3306/mysql.sock \ 

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 

-DDEFAULT_CHARSET=utf8 \ 

-DDEFAULT_COLLATION=utf8_general_ci \ 

-DEXTRA_CHARSETS=all \

-DWITH_DEBUG=0

make&& makeinstall&&

mkdir-p `dirname$DATA_DIR`/binlog

mkdir-p `dirname$DATA_DIR`/relaylog

cp$MYSQL_DIR/mysql-$VERSION/support-files/my-small.cnf.sh `dirname$DATA_DIR`/my.cnf

cp$MYSQL_DIR/mysql-$VERSION/support-files/mysql.server.sh /etc/init.d/mysqld

chmod+x /etc/init.d/mysqld

sed-i 's/^basedir=/basedir=\/usr\/local\/mysql/'/etc/init.d/mysqld

sed-i 's/^datadir=/datadir=\/data\/mysql\/3306/'/etc/init.d/mysqld

sed-i 's/`@HOSTNAME@`/Linux-node2.com/'/etc/init.d/mysqld

sed -i 's/^datadir=\/var\/lib\/mysql/datadir=$DATA_DIR' /etc/my.cnf

   chown -R mysql.mysql /data/mysql/

sh /usr/local/mysql/scripts/mysql_install_db--user=mysql --basedir=/usr/local/mysql--datadir=$DATA_DIR  &&

/etc/init.d/mysqldstart                                            #初始化數據庫

else

echo"Your input mysql version  is not in $MYSQL_DIR"

fi



下面咱們測試這個腳本是否能正常執行。 

    首先新建目錄/data/software,在mysql官方網站下載mysql-5.5.47.tar.gz和cmake源碼包。

    接下來咱們執行mysql安裝腳本,這裏要手動輸入mysql版本號碼5.5.47,而後腳本會自動安裝.

    最後查看一下mysql數據庫的安裝是否OK,經過查看mysql數據庫啓動文件,端口,數據文件等等都是正常的。

            netstat -ntlp | grep 3306

    總結:上面的腳本里面都作了簡單的註釋,下面着重說明一下在安裝過程當中容易出錯的地方。

     1)export "PATH=$PATH:/usr/local/cmake/bin" > /etc/profile && source /etc/profile 

          export "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile && source /etc/profile

腳本里面的這行代是修改環境變量,不然在編譯安裝mysql數據庫的時候出錯提示說找不到cmake命令和mysql命令。
     2)sed -i 's/^basedir=/basedir=\/usr\/local\/mysql/' /etc/init.d/mysqld和  sed -i 's/^datadir=/datadir=\/data\/mysql\/3306/' /etc/init.d/mysqld 腳本里面的這兩行在mysql啓動文件指定mysql數據庫的安裝目錄和數據目錄存放目錄。
     3)sed -i 's/`@HOSTNAME@`/Linux-node2.com/' /etc/init.d/mysqld 腳本的這行是用mysql服務器的主機名替換掉`@HOSTNAME@`,不然在啓動數據庫的時候會提示下面錯誤,/etc/init.d/mysqld: line 263: @HOSTNAME@: command not found,但數據庫能正常啓動。

     4)sed -i 's/^datadir=\/var\/lib\/mysql/datadir=$DATA_DIR' /etc/my.cnf 修改mysql的配置文件中[mysqld]下 datadir的目錄

相關文章
相關標籤/搜索