mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错。生产上一般都是先在本地测试环境进行自动化测试,如果ok,那么就在生产上进行自动化安装,省事,省力,安全。

本文环境:

  CentOS6.5x64 ,mysql版本:mysql-5.6.26。 采用自动化编译安装。

相关准备工作:

  熟知sed 文本编译命令,expect交互式脚本的使用。

提前将需要安装的mysql安装包放在/root下面,当然了,下载的过程也可以一并写在脚本中,为了节约时间,下载过程一般不会写在脚本中,而且好多生产环境是不能够连接外网的。

[root@xiaolyu76 ~]# ls
anaconda-ks.cfg   install.log install.log.syslog mysql-5.6.26.tar.gz  mysql_install_auto.sh

下面是我的脚本:mysql_install_auto.sh 的内容:

[root@xiaolyu76 ~]# cat mysql_install_auto.sh

#!/bin/bash
MYSQL_PASSWD="123456"
yum remove -y mysql mysql-server
yum install -y cmake ncurses-devel
tar xf mysql-5.6.26.tar.gz -C /usr/local/src/
cd /usr/local/src/mysql-5.6.26
useradd -M -s /sbin/nologin mysql
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_MEMORY_STORAGE_ENGINE=1\
-DWITH_READLINE=1\
-DENABLED_LOCAL_INFILE=1\
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL-USER=mysql
make -j 4 && make install
cd && chown -R mysql:mysql /usr/local/mysql/
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sed -i 's%^basedir=%basedir=/usr/local/mysql%' /etc/init.d/mysqld
sed -i 's%^datadir=%datadir=/usr/local/mysql/data%' /etc/init.d/mysqld
chkconfig mysqld on
/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data/ \
--user=mysql
ls /usr/local/mysql/data/
ln -s /usr/local/mysql/bin/* /bin/
service mysqld start
echo "now let's begin mysql_secure_installation "
if [ ! -e /usr/bin/expect ]
then yum install expect -y
fi
echo '#!/usr/bin/expect
set timeout 60
set password [lindex $argv 0]
spawn mysql_secure_installation
expect {
"enter for none" { send "\r"; exp_continue}
"Y/n" { send "Y\r" ; exp_continue}
"password" { send "$password\r"; exp_continue}
"Cleaning up" { send "\r"}
}
interact ' > mysql_secure_installation.exp
chmod +x mysql_secure_installation.exp
./mysql_secure_installation.exp $MYSQL_PASSWD

[root@xiaolyu76 ~]# sh  mysql_install_auto.sh    //直接执行该脚本即可。

脚本是shell脚本,最后mysql数据库安全初始化的时候,生成一个expect的脚本:mysql_secure_installation.exp。

说明:为了增强脚本的整齐美观和可读性,去掉了很多if 判断以及echo $?判断脚本是否执行成功。

mysql编译安装中的相关命令和参数的说明在本人的博客:开源服务专题之--------mysql的编译安装 已经有了详细说明,故本文不在赘述。

本文脚本经测试完全正确。

本文为作者原创博客,转载请注明出处:http://www.cnblogs.com/jasmine-Jobs/p/6045469.html

shell脚本专题之-----------全自动编译安装mysql(免安装版)的更多相关文章

  1. shell脚本专题之-----------全自动编译安装mysql

    mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错.生产上一般都是先在本地测试环境进行自 ...

  2. win10安装MySQL免安装版

    一:下载并解压 这个就不多说了https://dev.mysql.com/downloads/mysql/,简单的很 二:MySQL根目录下新建my.ini [mysql] # 设置mysql客户端默 ...

  3. Windows安装MySQL免安装版

    安装环境: win7 64位 IP地址:192.168.2.37 防火墙已经关闭 一.安装MySQL5.7.14免安装版 1.解压文件 2.新建my.ini文件 data文件夹自动生成 my.ini里 ...

  4. mysql 免安装版文件含义及作用

    相信很多同学在首次安装mysql 免安装版时,对其中的文件不解,下面以 5.6.24为例讲解这里个文件代表什么: bin: 存放编译好的工具 data:存放数据库数据的位置(就是我们数据库存放的地方) ...

  5. Shell脚本中执行sql语句操作mysql的5种方法【转】

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考.对于脚本输出的 ...

  6. centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾

    centos6.5环境通过shell脚本备份php的web及mysql数据库并做远程备份容灾 系统:centos6.5 1.创建脚本目录 mkdir -p /usr/local/sh/ 创建备份web ...

  7. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

  8. [转]mysql免安装版配置

    现在mysql有一个installer,相当于安装包管理器.包含mysql的各个组件,比如workbench,各个语言的connector.十分方便,不用就可惜了.实在没有必要下载zip版,自己配置. ...

  9. RPM方式安装MySQL5.6和windows下安装mysql解压版

    下载地址: http://cdn.MySQL.com/archives/mysql-5.6/MySQL-server-5.6.13-1.el6.x86_64.rpmhttp://cdn.mysql.c ...

随机推荐

  1. JSP中的EL表达式详细介绍

    一.JSP EL语言定义 EL 提供了在 JSP 脚本编制元素范围外使用运行时表达式的功能.脚本编制元素是指页面中能够用于在 JSP 文件中嵌入 Java 代码的元素.它们通常用于对象操作以及执行那些 ...

  2. 你真得懂Javascript中的==等于运算符吗?

    var i = 2; Number.prototype.valueOf = function() { return i++; }; var a = new Number( 42 ); if (a == ...

  3. [Angular] Style HTML elements in Angular using ngStyle

    We will learn how to make use of the ngStyle directive to directly add multiple style attributes to ...

  4. sql语句的编程手册 SQL PLUS

    一.SQL PLUS 引言 SQL命令 以下17个是作为语句开头的关键字: alter drop revoke audit grant rollback* commit* insert select ...

  5. python opencv3 —— 改变颜色空间(color space)

    OpenCV: Changing Colorspaces 1. 查看 opencv 支持的颜色空间转换 opencv 中色彩空间转换由一些定义的全局的宏给出,使用如下的代码,将它们调出: >&g ...

  6. 读<阿里亿级日活网关通道架构演进>有感

    读<阿里亿级日活网关通道架构演进>时对优化方法有些概念不理解,特意搜索了一下,拓展自己的思路. 其中的优化: 优化方法中1,2比较常见,3,4我知道的比较少,很感兴趣.就继续追踪下去: 于 ...

  7. MongoDb 查询时常用方法

    Query.All("name", "a", "b");//通过多个元素来匹配数组Query.And(Query.EQ("name ...

  8. 【redis,1】java操作redis: 将string、list、map、自己定义的对象保存到redis中

    一.操作string .list .map 对象 1.引入jar: jedis-2.1.0.jar   2.代码 /**      * @param args      */     public s ...

  9. win32程序如何改变字体大小颜色

    //设定文字大小和颜色 LOGFONT logfont; //改变输出字体 ZeroMemory(&logfont, sizeof(LOGFONT)); logfont.lfCharSet = ...

  10. ZOJ 1203 Swordfish MST

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1203 大意: 给出一些点,求MST 把这几天的MST一口气发上来. kru ...