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 ...
随机推荐
- BZOJ 1754: [Usaco2005 qua]Bull Math
Description Bulls are so much better at math than the cows. They can multiply huge integers together ...
- GITLAB的版本回退(非命令行)
今天遇到小韩的问题,大约解决如下:
- 李洪强iOS开发Swift篇—10_方法
李洪强iOS开发Swift篇—10_方法 一.简单说明 跟其他面向对象语言一样,Swift中的方法可以分为2大类: (1)实例方法(Instance Methods) 在OC中,实例方法以减号(-)开 ...
- Learning WCF Chapter2 WCF Contracts and Serialization
So far I’ve talked about the standards behind it all,but in fact WCF hides most of this from the dev ...
- linux 复制文件时,报cp: omitting directory `XXX'
今天在用linux命令进行文件复制时omitting cp -i BBS /opt/workspace/apache-tomcat-6,参数用的是 -i),所以也不太熟悉,原来,还有子目录文件,而是必 ...
- HDU-1390 Binary Numbers
http://acm.hdu.edu.cn/showproblem.php?pid=1390 Binary Numbers Time Limit: 2000/1000 MS (Java/Others) ...
- List<T>的IndexOf方法和Remove方法
Microsoft地址 List<T>的IndexOf()方法 如果T是值类型的,就按照比较值的方法从列表的第一个元素开始逐个匹配,如果T是引用类型,就比较引用是否相同 举例如下: cla ...
- HDOJ/HDU 1982 Kaitou Kid - The Phantom Thief (1)(字符串处理)
Problem Description Do you know Kaitou Kid? In the legend, Kaitou Kid is a master of disguise, and c ...
- Tsinsen A1504. Book(王迪) 数论,贪心
题目:http://www.tsinsen.com/A1504 A1504. Book(王迪) 时间限制:1.0s 内存限制:256.0MB Special Judge 总提交次数:359 ...
- Bzoj 1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 二分
1609: [Usaco2008 Feb]Eating Together麻烦的聚餐 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1272 Solve ...