shell脚本专题之-----------全自动编译安装mysql
2016-11-09 22:06
776 查看
mysql的编译安装,在博客 开源服务专题之--------mysql的编译安装 中已经说明了,但是还是比较麻烦,尤其是一大堆命令,来手动执行,稍有不慎,就会出错。生产上一般都是先在本地测试环境进行自动化测试,如果ok,那么就在生产上进行自动化安装,省事,省力,安全。
提前将需要安装的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
[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
本文环境:
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
相关文章推荐
- mysql最新通用二进制分发版本5.7.16自动安装shell脚本
- Ubuntu自动编译和安装Python的shell脚本
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
- shell脚本-自动安装mysql源码包
- shell脚本:LAMP一键自动安装 (linux,apache,mysql,php)
- shell脚本_自动安装mysql
- RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载
- mysql最新通用二进制分发版本5.7.16自动安装shell脚本
- mysql 自动 安装 shell脚本
- shell脚本实现自动编译安装
- shell脚本和ansible实践MariaDB源码编译自动安装
- bash shell 监控 coffee, jade 脚本以便及时自动编译
- Maven 自动打包编译的shell脚本
- GlusterFS集群自动编译安装配置脚本
- mysql一键编译安装脚本,MySQL 主主实施部署,及读写分离
- 【Apache学习】编译安装httpd2.4 含傻瓜版自动安装脚本
- web自动安装脚本(apache/nginx+php+mysql)
- Centos5.8上面用Shell脚本一键安装mysql5.5.25源码包
- Oracle 11g R2 for Linux 自动安装配置---完整shell脚本
- Centos6.5上面用Shell脚本一键编译安装mysql5.5.47