#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin

export PATH

# Checkifuser is root

#检查用户是否为root用户if [ $(id -u) != "0" ]; then

echo "Error: You must be root to run this script, please use root to install"exit1

fi

clear

echo "========================================================================="

echo "A tool to auto-compile & install MySQL 5.6.22 on Redhat/CentOS Linux"

echo "========================================================================="cur_dir=$(pwd)

#set mysql root password

#设置MySQL根密码echo "==========================="mysqlrootpwd="root"#请输入MySQL的根密码echo -e "Please input the root password of mysql:"#默认密码

read-p "(Default password: root):"mysqlrootpwdif [ "$mysqlrootpwd" = "" ]; thenmysqlrootpwd="root"

fi

echo "==========================="

echo "MySQL root password:$mysqlrootpwd"

echo "==========================="#which MySQL Version do you want to install?#您要安装哪个MySQL版本?echo "==========================="isinstallmysql56="n"

echo "Install MySQL 5.6.22,Please input y"read-p "(Please input y , n):"isinstallmysql56case "$isinstallmysql56" iny|Y|Yes|YES|yes|yES|yEs|YeS|yeS)echo "You will install MySQL 5.6.22"isinstallmysql56="y";;*)echo "INPUT error,You will exit install MySQL 5.6.22"isinstallmysql56="n"exitesacget_char()

{

SAVEDSTTY=`stty -g`

stty-echo#禁止回显

stty cbreakdd if=/dev/tty bs=1 count=1 2> /dev/nullstty-raw

sttyecho#打开回显

stty $SAVEDSTTY

}echo ""#按任意键开始…或按Ctrl+C取消echo "Press any key to start...or Press Ctrl+c to cancel"

char=`get_char`

# 初始化与安装相关的内容

# Initialize the installation related content.functionInitInstall()

{cat /etc/issueuname -a

MemTotal=`free -m | grep Mem | awk '{print $2}'`echo -e "\n Memory is: ${MemTotal} MB"#Set timezone设置时区rm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

#Synchronization time同步时间yum install -y ntp

ntpdate-u pool.ntp.orgdate#Delete Old Mysql program删除旧MySQL程序

rpm-qa|grepmysql

rpm-e mysqlyum -y remove mysql-server mysql mysql-libsyum -y remove php-mysqlyum -y install yum-fastestmirror

#yum -y update

#Disable SeLinux禁用SeLinuxif [ -s /etc/selinux/config ]; then

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configfisetenforce0#Install Compile MySQL related procedures安装编译mysql相关程序for packages in make cmake ncurses-devel bison bison-devel libaio-devel gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel net-tools perl-Data-Dumper perl;do yum -y install $packages; done}

#Check the mysql installationfileexists, there is no download automatically.functionCheckAndDownloadFiles()

{echo "============================check files=================================="

if [ "$isinstallmysql56" = "n" ]; then

if [ -s mysql-5.6.22.tar.gz ]; then

echo "mysql-5.6.22.tar.gz [found]"

else

echo "Error: mysql-5.6.22.tar.gz not found!!!download now......"

wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.22.tar.gz

fi

echo "============================check files=================================="

fi}

#Installation of depend on and optimization options.functionInstallDependsAndOpt()

{

cd $cur_dircat >>/etc/security/limits.conf<<eof* soft nproc 65535

* hard nproc 65535

* soft nofile 65535

* hard nofile 65535eofecho "fs.file-max=65535" >> /etc/sysctl.conf

}

#Install MySQLfunctionInstallMySQL56()

{echo "============================Install MySQL 5.6.22=================================="cd $cur_dir

#Backup old my.cnf

#rm -f /etc/my.cnfif [ -s /etc/my.cnf ]; then

mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bakfi#mysql directory configurationmkdir -p /opt/mysql-5.6.22

ln -s /opt/mysql-5.6.22 /opt/mysqlif [ -d /data ] && [ -d /log ];then

ln -s /data /opt/mysql/dataln -s /log /opt/mysql/logmkdir -p /opt/mysql/runelse

mkdir -p /opt/mysql/{data,log,run}figroupadd mysql

useradd-s /sbin/nologin -M -g mysql mysqlif [ -d /data ] && [ -d /log ];then

chown -R mysql.mysql /opt/mysqlchown -R mysql.mysql /datachown -R mysql.mysql /logfi

tar zxf mysql-5.6.22.tar.gz

cd mysql-5.6.22/

mkdirsource_downloadsif [ -s gmock-1.6.0.zip ];then

cp ../gmock-1.6.0.zipsource_downloadsfi# CFLAGS="-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

cmake \-DCMAKE_INSTALL_PREFIX=/opt/mysql \-DMYSQL_DATADIR=/opt/mysql/data \-DSYSCONFDIR=/etc \-DWITH_MYISAM_STORAGE_ENGINE=1\-DWITH_INNOBASE_STORAGE_ENGINE=1\-DWITH_MEMORY_STORAGE_ENGINE=1\-DWITH_READLINE=1\-DWITH_PARTITION_STORAGE_ENGINE=1\-DENABLED_LOCAL_INFILE=1\-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci-DWITH_SSL=system \-DWITH_ZLIB=system \-DMYSQL_UNIX_ADDR=/opt/mysql/run/mysql.sock \-DMYSQL_TCP_PORT=3306\-DMYSQL_USER=mysql \-DENABLE_DOWNLOADS=1\-DWITH_DEBUG=0

make -j `cat /proc/cpuinfo | grep processor| wc -l` && make install

if [ -s ../my_defaults.cnf ]; then

echo "mysql user-defined config is [found]"

cp ../my_defaults.cnf /etc/my.cnfelse

cp support-files/my-default.cnf /etc/my.cnffi

/opt/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql --explicit_defaults_for_timestampcp support-files/mysql.server /etc/init.d/mysqlchmod 755 /etc/init.d/mysql

chkconfig--add mysql

chkconfig mysql oncat > /etc/ld.so.conf.d/mysql.conf<<EOF/opt/mysql/lib

EOF

ldconfigln -s /opt/mysql/lib/mysql /usr/lib/mysqlln -s /opt/mysql/include/mysql /usr/include/mysqlif [ -d "/proc/vz" ];thenulimit-s unlimitedfi

/etc/init.d/mysql start

#ln -s /opt/mysql/bin/mysql /usr/bin/mysql

#ln -s /opt/mysql/bin/mysqldump /usr/bin/mysqldump

#ln -s /opt/mysql/bin/myisamchk /usr/bin/myisamchk

#ln -s /opt/mysql/bin/mysqld_safe /usr/bin/mysqld_safecat > /etc/profile.d/mysql.sh <<EOF

PATH=/opt/mysql/bin:\$PATH

export PATH

EOF

source/etc/profile/opt/mysql/bin/mysqladmin -u root password $mysqlrootpwdcat > /tmp/mysql_sec_script<<EOF

use mysql;

update user set password=password('$mysqlrootpwd') where user='root';

delete from user where not (user='root') ;

delete from user where user='root' and password='';

drop database test;

DROP USER''@'%';

flush privileges;

EOF/opt/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_scriptrm -f /tmp/mysql_sec_script

source/etc/profile/etc/init.d/mysql restart

#/etc/init.d/mysql stopecho "============================MySQL 5.6.22 install completed========================="}functionCheckInstall()

{echo "===================================== Check install ==================================="

clearismysql=""

echo "Checking..."

if [ -s /opt/mysql/bin/mysql ] && [ -s /opt/mysql/bin/mysqld_safe ] && [ -s /etc/my.cnf ]; then

echo "MySQL: OK"ismysql="ok"

else

echo "Error: /opt/mysql not found!!!MySQL install failed."

fi

if [ "$ismysql" = "ok" ]; then

echo "Install MySQL 5.6.22 completed! enjoy it."

echo "========================================================================="netstat-ntlelse

echo "Sorry,Failed to install MySQL!"

echo "You can tail /root/mysql-install.log from your server."

fi}

#The installation log

InitInstall2>&1 | tee /root/mysql-install.log

CheckAndDownloadFiles2>&1 | tee -a /root/mysql-install.log

InstallDependsAndOpt2>&1 | tee -a /root/mysql-install.log

InstallMySQL562>&1 | tee -a /root/mysql-install.log

CheckInstall2>&1 | tee -a /root/mysql-install.log

全自动安装MySQL_自动部署安装mysql-5.6.22相关推荐

  1. zabbix_agent自动部署安装

    一.先编译个zabbix_zgent 1.下载安装zabbix wget "http://sourceforge.net/projects/zabbix/files/ZABBIX%20Lat ...

  2. Linux系统的安装(自动引导安装、网络安装、分区选择)

    Linux系统的安装(自动引导安装.网络安装.分区选择) Cobbler配置 yum install httpd -y yum install cobbler cobbler-web pykickst ...

  3. kylin安装mysql_源码安装mysql

    一.环境 CentOS7.4   64位  最小化安装 二.准备工作 1.安装依赖 yum -y install wget cmake gcc gcc-c++ ncurses ncurses-deve ...

  4. yum查询已经安装mysql_通过yum安装mysql

    在linux中安装数据库首选MySQL,Mysql数据库的第一个版本就是发行在Linux系统上,其他选择还可以有postgreSQL,oracle等 在Linux上安装mysql数据库,我们可以去其官 ...

  5. jenkins 安装 和自动部署的 一些配置

    2018-03-27 18:03:38 转载 :https://blog.51cto.com/xiong51/2093450 目录 1.安装 1.1.安装插件 1.2.配置 2.配置 2.1.配置je ...

  6. linux系统安装自主分区,Linux系统的安装(自动引导安装、网络安装、分区选择)...

    Linux系统的安装(自动引导安装.网络安装.分区选择) Cobbler配置 yum install httpd -y yum install cobbler cobbler-web pykickst ...

  7. install-newton部署安装--------计算节点部署安装

    #################################################################################################### ...

  8. ubuntu系统下安装docker并部署Springboot+mysql+redis

    目录 安装Docker Docker常用命令 构建mysql容器 构建Redis容器 构建Springboot应用镜像及容器 (1)springboot使用maven将程序打成jar包,接着编写Dok ...

  9. CentOS 安装Docker 并部署配置MySql

    先安装Docker 卸载之前Docker 如果本地之前安装过Docker,需要先卸载,如果没有安装过,可以跳过这一步: 1 $ sudu yum remove docker \ 2 docker-cl ...

最新文章

  1. qml: C++调用qml函数
  2. dubbo的监控中心
  3. 白话中台战略:中台是个什么鬼?
  4. CentOS7上GitLab的使用
  5. PyOpenGL之3D界面详解(二)
  6. 190607每日一句
  7. 静态页面模板,比较不错的网站,效果比较多,html代码可以直接下载即可
  8. 开源项目9GAG源码解析与Material改造(二)
  9. hdoj 4747 线段树
  10. 解决bug问题,查找bug的方法
  11. RestfulApi接口规范
  12. 计算输入的正数和负数个数
  13. python里面print是什么函数_python print()内置函数
  14. 如何在 Linux 下关闭 i386 架构
  15. 红队攻击演练过程中必须具备哪些能力
  16. 国企招聘计算机笔试考什么区别,国企秋招要来了!看看你能报考哪家国企!
  17. 携程编程大赛预赛第二场
  18. JS计算今年过了多少天
  19. 项目计划书、规划文档模板
  20. JAVA三角海伦公式_(海伦公式)已知三角形三条边长,求面积

热门文章

  1. flutter和dart的SDK安装
  2. matlab画转体_【求助】matlab生成旋转体?
  3. bash: go: 未找到命令_golang快速入门[2.3]-go语言开发环境配置-linux
  4. android提权system,Android push app to /system/app/
  5. jpa 连接多个mysql 数据库_SpringBoot 连接多个数据库
  6. 搭建自己的Unity Package
  7. 华师计算机基础在线作业秋,18秋华师《计算机基础》在线作业.docx
  8. 散粉在哪个步骤用_底妆的正确步骤是什么?花三分钟带你破译底妆密码
  9. 使用Upida/Jeneva.Net验证传入的JSON
  10. java 浮点型 除零_Java-非零整数除以10等于0.0浮点?