设为首页 加入收藏

TOP

Linux下全自动编译安装MySQL
2017-07-04 10:23:27 】 浏览:8940
Tags:Linux 全自动 编译 安装 MySQL

本文环境:


相关准备工作:


熟知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中IN子查询会导致无法使用索..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目