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=""
yum remove -y mysql mysql-server
yum install -y cmake ncurses-devel
tar xf mysql-5.6..tar.gz -C /usr/local/src/
cd /usr/local/src/mysql-5.6.
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=\
-DWITH_INNOBASE_STORAGE_ENGINE=\
-DWITH_MEMORY_STORAGE_ENGINE=\
-DWITH_READLINE=\
-DENABLED_LOCAL_INFILE=\
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL-USER=mysql
make -j && 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

最新文章

  1. Hibernate中事务声明
  2. Matlab 进阶学习记录
  3. nginx和tomcat实现反向代理、负载均衡和session共享
  4. React组件系统、props与状态(state)
  5. POJ 2823 Sliding Window
  6. C#多线程之二:ManualResetEvent和AutoResetEvent
  7. hdu 2665 Kth number
  8. 射频识别技术漫谈(15)——Mifare1的安全性及7字节序列号M1卡【worlsing笔记】
  9. [unity菜鸟] 笔记1 —— 函数篇
  10. python operator模块
  11. 笔记整理--Linux_Socket
  12. 每天一个Linux命令 1
  13. DirectFB的架构介绍
  14. MSBuild Tools解决办法
  15. openstack学习心得:keystone 常用命令(M版)
  16. docker for windows & dotnet core app
  17. tomcat安装apr优化
  18. 力扣(LeetCode) 66. 加一
  19. pyquery的使用
  20. IIS w3wp对应的应用程序

热门文章

  1. Snmp协议应用-扫描局域网内打印机
  2. 让ZenCoding提升编码速度
  3. Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
  4. Apache Thrift 跨语言服务开发框架
  5. debian(kali Linux) 安装net Core
  6. 【开源】开发者新闻聚合APP 2.0.3发布(第二个稳定版本)
  7. 赴美工作常识(Part 3 - 英语)
  8. java内功 ---- jvm虚拟机原理总结,侧重于虚拟机类加载执行系统
  9. iOS 向模拟器里添加照片
  10. NodeJS系列~第二个小例子,解决中文乱码的问题