MySQL 安装脚本

#!/bin/bash


# 定义正确输出函数
function green_echo () {
#用法: green_echo "content"
    local what=$*
    echo -e "\e[1;32m ${what} \e[0m"
}

# 定义错误输出函数
function red_echo () {
#用法: red_echo "content"
    local what=$*
    echo -e "\e[1;31m ${what} \e[0m"
}

# 定义判断函数
function if_check () {
# 用法: if_check "content"
     if [ $? -ne 0 ];then
         red_echo "$time $*" >> /tmp/install_mysql.log
         exit 1
     fi
}


# MySQL 开始安装
green_echo "$(date "+%F %H:%M:%S") MySQL 开始安装" > /tmp/install_mysql.log

# 定义包目录,创建data目录及mysql密码
pack_dir="/data/packages"
my_dir="/usr/local/mysql"
my_pack="mysql-5.6.14.tar.gz"
my_ver="mysql-5.6.14"
my_cmd="$my_dir/bin/mysql"
my_pass="yunjee0515ueopro1234"
data_dir="/usr/local/mysql/data"

[ -d ${data_dir} ] || mkdir -p ${data_dir}

# yum安装MySQL依赖
yum -y install autoconf automake bc bind-utils bzip2 bzip2-devel curl curl-devel dmidecode e2fsprogs-devel expat expat-devel freetype* gcc gcc-c++ gettext gettext-devel glib2 glib2-devel glibc glibc-devel hdparm krb5-devel libaio libaio-devel libidn-devel libjpeg libpng libxml2 libxml2-devel lrzsz mlocate ncurses ncurses-devel net-snmp net-snmp-devel net-snmp-libs net-snmp-utils ntp openssh-clients openssl-devel pam-devel rsync rsyslog-relp screen smartmontools strace sysstat telnet vim* vixie-cron wget yum-fastestmirror zip zlib-devel cmake

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") YUM 依赖包安装成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") YUM 依赖包安装失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi

# 检查并创建MySQL用户,并且设置data目录权限
id mysql &> /dev/null || useradd mysql -s /sbin/nologin -M 
chown -R mysql.mysql ${data_dir}

# 解压并且CMAKE编译
cd /opt
tar zxf ${pack_dir}/${my_pack}
cd ${my_ver} 
cmake . -DCMAKE_INSTALL_PREFIX=${my_dir} \
-DSYSCONFDIR=${data_dir} \
-DWITH_SSL=yes \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=${data_dir}

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") MySQL CMAKE 编译成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") MySQL CMAKE 编译失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi

# 安装
make && make install 

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") MySQL (MAKE|MAKE INSTALL) 安装成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") MySQL (MAKE|MAKE INSTALL) 安装失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi

# 设置环境变量及拷贝启动文件
echo "" >> /etc/profile
echo "" >> /etc/profile
echo "PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile
echo "export PATH" >> /etc/profile && export PATH

cp -f ${my_dir}/support-files/mysql.server /etc/init.d/mysqld
chmod 700 /etc/init.d/mysqld 

# 初始化数据库
${my_dir}/scripts/mysql_install_db --basedir=${my_dir} --datadir=${data_dir} --user=mysql 

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") MySQL 初始化数据库成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") MySQL 初始化数据库失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi


# 启动MySQL数据库
/etc/init.d/mysqld start

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") MySQL 服务启动成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") MySQL 服务启动失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi


# 更改数据库密码
${my_cmd}admin -u root password "${my_pass}"

# 数据库授权
${my_cmd} -p${my_pass} -e "GRANT all PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '${my_pass}';
GRANT all PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '${my_pass}';
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY 'XXMysql^&';
FLUSH PRIVILEGES;"
if_check "$(date "+%F %H:%M:%S") grant is a failed !!!"

if [ $? -eq 0 ];then
    green_echo "$(date "+%F %H:%M:%S") MySQL GRANT 授权成功" >> /tmp/install_mysql.log
else
    red_echo "$(date "+%F %H:%M:%S") MySQL GRANT 授权失败,请校验..." >> /tmp/install_mysql.log
    exit 1
fi

# MySQL 安装完成
green_echo "$(date "+%F %H:%M:%S") MySQL 安装完成" >> /tmp/install_mysql.log
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值