Linux下mysql5.6.24(二进制)自动安装脚本

说明:

一、本脚本仅供测试使用,若正式环境想要使用,需更改脚本的一些参数。

二、使用本脚本之前,需保证linux环境可以联网下载,若不能联网,则需要将下载好的mysql二进制包上传至linux中的/data目录下。

三、脚本使用是需一次输入三个参数:

1、需安装的mysql版本号,如:5.6.24

2、需安装的mysql端口设置,如:3306

3、mysql的server_id设置,如:1

使用步骤:

1、将下列脚本上传至linux环境中,我个人是以mysql_install.sh命名

 #提前安装执行好   yum instal -y autoconf && yum install -y wget 

-----------------------------------------

#!/bin/bash

#mysql_install by drizzle

#version 3.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

-----------------------------------------

#检验下环境变量 export PATH=$PATH:/usr/local/mysql/bin

 

执行脚本,并输入三个参数,等待数据库安装

[root@MySQL ~]# ./mysql_install.sh

Input a mysql version:5.6.24

Input a mysql port:3306

Input a mysql_server_id:1

 

------------------------------------------

[root@linux-node1 ~]# /etc/init.d/mysql start
Starting MySQL. SUCCESS!
[root@linux-node1 ~]# ps -ef | grep mysql
root 1333 1 0 17:08 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql3306/data --pid-file=/data/mysql/mysql3306/data/linux-node1.example.com.pid
mysql 1656 1333 4 17:08 pts/1 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql3306/data/error.log --pid-file=/data/mysql/mysql3306/data/linux-node1.example.com.pid --socket=/tmp/mysql.sock --port=3306
root 1680 1080 0 17:08 pts/1 00:00:00 grep --color=auto mysql

 

[root@linux-node2 ~]# /etc/init.d/mysql start^C
[root@linux-node2 ~]# ps -ef | grep mysql
root 12876 1 0 21:42 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql3307/data --pid-file=/data/mysql/mysql3307/data/linux-node2.example.com.pid
mysql 13199 12876 0 21:42 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3307/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql3307/data/error.log --pid-file=/data/mysql/mysql3307/data/linux-node2.example.com.pid --socket=/tmp/mysql.sock --port=3307
root 13315 12590 0 22:11 pts/0 00:00:00 grep --color=auto mysql

 

[root@linux-node3 ~]# ps -ef | grep mysql
root 13523 1 0 00:24 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql3308/data --pid-file=/data/mysql/mysql3308/data/linux-node3.example.com.pid
mysql 13846 13523 0 00:24 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql3308/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql3308/data/error.log --pid-file=/data/mysql/mysql3308/data/linux-node3.example.com.pid --socket=/tmp/mysql.sock --port=3308
root 13894 13256 0 00:28 pts/0 00:00:00 grep --color=auto mysql

 

posted @ 2018-06-06 15:53  裸奔的小鸵鸟  阅读(160)  评论(0)    收藏  举报