1. 程式人生 > >Linux環境下MySQL(二進位制)自動安裝指令碼

Linux環境下MySQL(二進位制)自動安裝指令碼

說明:

一、本指令碼僅供測試使用,若正式環境想要使用,需更改指令碼的一些引數。

二、使用本指令碼之前,需保證linux環境可以聯網下載,若不能聯網,則需要將下載好的mysql二進位制包上傳至linux中的/data目錄下。

三、指令碼使用是需一次輸入三個引數:

1、需安裝的mysql版本號,如:5.6.24

2、需安裝的mysql埠設定,如:3306

3、mysql的server_id設定,如:1003306 

使用步驟:

1、將下列指令碼上傳至linux環境中,我個人是以mysql_install.sh命名

#!/bin/bash
#mysql_install by chen
#Email:[email protected] & [email protected]
#version 2.0
#安裝版本 5.6.20-5.6.25
#安裝要求:
#需要可以聯網,若無網路,可以先建立/data目錄,將安裝包上傳到/data目錄下

#判斷/data目錄是否存在,若不存在則建立,並且下載mysql
datamenu="/data"
read  -p "Input a mysql version:" -t 30  mysql_version
read  -p "Input a mysql port:" -t 30  mysql_port
read  -p "Input a mysql_server_id:" -t 30 mysql_server_id
mysqlfile="$datamenu/mysql-$mysql_version-linux-glibc2.5-x86_64.tar.gz"

if [ ! -d "$datamenu" ];then
     mkdir  "$datamenu"
     wget -P /data  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-$mysql_version-linux-glibc2.5-x86_64.tar.gz
elif [ ! -f "$mysqlfile" ];then
     wget -P /data  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-$mysql_version-linux-glibc2.5-x86_64.tar.gz
fi

#解壓下載好的mysql
cd /opt
mkdir mysql
cd mysql
tar zxvf $mysqlfile -C /opt/mysql

#建立mysql使用者

egrep "^mysql" /etc/group >& /dev/null
if [ $? -ne 0 ]
then
    groupadd mysql
fi

#create user if not exists
egrep "^mysql" /etc/passwd >& /dev/null
if [ $? -ne 0 ]
then
    useradd -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
fi


#建立mysql軟連線,並授權給mysql使用者
cd /usr/local/
rm -rf /usr/local/mysql
ln -s /opt/mysql/mysql-$mysql_version-linux-glibc2.5-x86_64 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/

#基於配置檔案,建立mysql安裝目錄,並授權
mkdir -p /data/mysql
mkdir -p /data/mysql/mysql${mysql_port}
cd  /data/mysql/mysql${mysql_port}/
mkdir /data/mysql/mysql${mysql_port}/data
mkdir /data/mysql/mysql${mysql_port}/logs
mkdir /data/mysql/mysql${mysql_port}/tmp
chown -R mysql:mysql /data/mysql/mysql${mysql_port}

cat > /etc/my.cnf << EOF

[client]
port            = ${mysql_port}
socket          = /tmp/mysql.sock

# The MySQL server
[mysqld]
# Basic
port            = ${mysql_port}
user        = mysql
basedir         = /usr/local/mysql
datadir         = /data/mysql/mysql${mysql_port}/data
tmpdir          = /data/mysql/mysql${mysql_port}/tmp
socket          = /tmp/mysql.sock

log-bin     = /data/mysql/mysql${mysql_port}/logs/mysql-bin

log-error   = error.log
slow-query-log-file = slow.log
skip-external-locking
skip-name-resolve
log-slave-updates

lower_case_table_names  = 1  #忽略表名大小寫

character_set_server           = gbk  
innodb_file_per_table          = 1  
innodb_autoinc_lock_mode       = 2  
  
explicit_defaults_for_timestamp = true  
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  

EOF


#初始化mysql

cd /usr/local/mysql
./scripts/mysql_install_db --defaults-file=/etc/my.cnf


#在/etc/init.d下建立mysql 啟動指令碼
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql


#新增環境變數,並使/etc/profile環境變數生效
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile
<pre name="code" class="plain">export PATH=$PATH:/usr/local/mysql/bin

2、給指令碼賦予可執行許可權,

[root@zabbix-server ~]# rz -y 
z waiting to receive.**B0100000023be50
[root@zabbix-server ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mysql_install.sh
[root@zabbix-server ~]# chmod +x mysql_install.sh 
[root@zabbix-server ~]# ls -al|grep mysql_install.sh 
-rwxr-xr-x.  1 root root  3136 Jul 29 10:29 mysql_install.sh

3、執行指令碼,並輸入三個引數,等待資料庫安裝
[root@MySQL ~]# ./mysql_install.sh 
Input a mysql version:5.6.24
Input a mysql port:3306
Input a mysql_server_id:1003306

4、啟動資料庫

[root@MySQL ~]# /etc/init.d/mysql start
Starting MySQL..                                           [  OK  ]
[root@zabbix-server ~]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.24-log MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
    -> ;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> 


至此,linux下mysql安裝已經完成,可以使用它做一些測試了