CentOS6.5一键安装MySQL5.5.32(源码编译)
##################################################
#mysql_install.sh #
#initialize the Linux system to deploy lnmp #
#2016/10/31 16:41 #
#kangjie #
##################################################
#!/bin/sh
#定义文件的位置
LOG_PATH=/server/initlog
LOG_FILE=$LOG_PATH/mysql_install.log
#MySQL安装路径
MYSQL_BASEDIR=/data/mysqlbasedir
#数据目录
MYSQL_DATA=/data/mysql
MYSQL_POS=/home/package
i=0
判断目录是否存在,没有则创建
[ ! -d $LOG_PATH ] && mkdir -p $LOG_PATH
[ ! -d $MYSQL_BASEDIR ] && mkdir -p $MYSQL_BASEDIR
[ ! -d $MYSQL_DATA ] && mkdir -p ${MYSQL_DATA}/data
[ ! -d $MYSQL_POS ] && mkdir -p $MYSQL_POS
#mysql5.5.32
#check
#检查执行状态,将状态写入日志文件
function check(){
if [ $? != 0 ]
then
echo "××××-Install $1 Failed!!!-×××" >> $LOG_FILE
else
echo "√√√-Install $1 Success-√√√" >> $LOG_FILE
fi
}
#安装依赖包
function prepare(){
yum install cmake gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make -y
check libs
#useradd
#添加用户和组, mysql用户不能登录
groupadd mysql
useradd mysql -s /bin/nologin -M -g mysql
check groupadd-useradd
#mkdir
#mysql文件目录更改组用户为mysql
chown -R mysql.mysql /data/mysql
check chown-mysql
#解压文件
cd $MYSQL_POS && tar zxf mysql-5.5.32.tar.gz
check MySQL-tar-zxf
}
#compile
#编译源码--指定安装位置--编码方式--支持的引擎--数据目录--用户--端口
function compile(){
cmake -DCMAKE_INSTALL_PREFIX=$MYSQL_BASEDIR -DMYSQL_UNIX_ADDR=$MYSQL_DATA/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=$MYSQL_DATA/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
}
#my.cnf
#将配置信息写入配置文件
function mycnf(){
cat >>/etc/my.cnf<<EOF
[client]
port = 3306
socket = $MYSQL_DATA/mysql.sock
[mysqld]
port = 3306
socket = $MYSQL_DATA/mysql.sock
basedir = $MYSQL_BASEDIR
datadir = $MYSQL_DATA/data
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
skip-name-resolve
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size = 500M
server-id = 1
[mysqld_safe]
log-error=$MYSQL_DATA/mysql.err
pid-file=$MYSQL_DATA/mysql.pid
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
EOF
}
#init
#初始化数据库 , 添加开机启动
function init(){
$MYSQL_BASEDIR/scripts/mysql_install_db --basedir=$MYSQL_BASEDIR --datadir=$MYSQL_DATA/data --user=mysql
cp $MYSQL_BASEDIR/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
}
#mail
#发送邮件(邮件配置参考上一篇文章)
function Mail(){
mail -s "***Linux Deploy Report***" 88888888@qq.com < $LOG_FILE
}
#main
#调用上边的函数
#首先是安装依赖包,然后编译源码:cmake , make, make install, 修改MySQL配置文件,设置环境变量,初始化MySQL,启动,发邮件
function main(){
ip=`awk '/IPADDR/' /etc/sysconfig/network-scripts/ifcfg-eth0 |awk -F "=" '{print $2}' `
echo "Deploy MySQL ****$ip****`date +"%Y-%m-%d_%H-%M-%S"`*****">>$LOG_FILE
prepare
cd $MYSQL_POS/mysql-5.5.32 && compile && make && make install
check make_install
ln -sv $MYSQL_BASEDIR /usr/local/mysql
mycnf
check mycnf
echo "export PATH=$MYSQL_BASEDIR/bin:$PATH" >> /etc/profile.d/mysql.sh
source /etc/profile
init
/etc/init.d/mysqld start
check mysql_start
mysql -uroot -e "select version();"
if [ $? == 0 ]
then
mysql -uroot -e "show databases;" >> $LOG_FILE
mysqladmin -uroot password '888888'
check mysql_change_password
else
echo "MySQL Install Failed" >> $LOG_FILE
fi
Mail
}
main
CentOS6.5一键安装MySQL5.5.32(源码编译)的更多相关文章
- mysql5.7.10 源码编译安装记录 (centos6.4)【转】
一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...
- WordPress安装篇(5):源码编译安装LNMP并部署WordPress
与YUM方式安装相比,源码编译安装方式更灵活,安装过程中能自定义功能和参数,特别是在批量部署服务器又要求软件版本及配置一致时,源码编译安装的优势很明显.本文介绍如何通过源码编译方式安装Nginx1.1 ...
- CentOs下MySQL5.6.32源码安装
. 安装好--安装MySQL需要的包 yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c+ ...
- MySQL5.6.32源码安装
. 安装好--安装MySQL需要的包 yum install -y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc- ...
- mysql-5.5.46源码编译安装
1.安装准备 cat /etc/redhat-release uname -r yum install ncurses-devel cmake automake autoconf make gcc g ...
- CentOS7 + Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装
一.安装Nginx 1.安装依赖扩展 # yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng ...
- CentOS下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装
一.安装Nginx ①安装依赖扩展 # yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng l ...
- Mysql5.7.20源码编译安装
一.下载源码包 1.1 下载mysql源码包 MySQL源码,网址为:https://dev.mysql.com/downloads/mysql/ : 1.2 下载boost 下载网址为:http:/ ...
- MySQL5.7.13源码编译安装指南
系统 CenterOs 6.5 1.安装依赖包(cmake make gcc等,其实好多都有了,不需要更新,为了防止世界被破坏,就装下) yum install gcc gcc-c++ -yyum i ...
随机推荐
- 事件tou
#define EV_TIMER_RESOLUTION 1 /* 1 msec */ #define EV_READ_EVENT EPOLLIN #define EV_WRITE_EVENT EPOL ...
- Word删除复制后产生空行
如上图,用网上说的^p^p替换为^p无效,我全选,然后在样式里选择正文才搞定.实践出真知!!!!!!!!!网络上附和的多
- gdb调试高级用法
Linux下进程崩溃时定位源代码位置 如何在调试内核时,同时可以调试应用程序的做法: (cskygdb) c Continuing. ^C Program received signal SIGINT ...
- Android Density(密度)
1. 什么是density 引用 1) density density表示每英寸有多少个显示点(逻辑值),它的单位是dpi:dot per inch,通常屏幕大时,density就大,屏幕小时,de ...
- js 弹出页面传值
有页面a和页面b,页面a中有一个文本框和一个按钮,点按钮弹出页面b,页面b也有一个文本框,在文本框中输入值,在不经过后台用js实现把页面b的文本框的值传到页面a,赋给页面a的文本框 a页面代码< ...
- maven install 跳过 测试 test
你可能想要配置 Maven 使其完全跳过单元测试. 可能你有一个很大的系统,单元测试需要花好多分钟来完成,而你不想在生成最终输出前等单元测试完成. 你可能正工作在一个遗留系统上面,这个系统有一系列的失 ...
- Android Loader详解一:概述
装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数 ...
- 英语之路 zt
各位为英语而郁闷的兄弟姐妹们: 自从考完GRE和TOEFL以后,心有所感,本想写点心得,但是因为太懒没写成.今日风雨如晦,心中又有所感,于是一舒笔墨,写下我学英语的方法.俺知道有很多兄弟姐妹们和曾经的 ...
- MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验
原文地址:http://liangweilinux.blog.51cto.com/8340258/1728131 首先在此感谢下我的老师年一线实战经验,我当然不能和我的老师平起平坐,得到老师三分之一的 ...
- glsl-BufferObject- change
修改其值的最快方式: 创建: Mutable Storage To create mutable storage for a buffer object, you use this API: void ...