前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL5.5.5安装脚本

MySQL5.5.5安装脚本

作者头像
dogfei
发布2020-07-31 11:57:20
4520
发布2020-07-31 11:57:20
举报
文章被收录于专栏:devops探索devops探索

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163

#!/bin/bash mysql_data_dir="/data/mysql" mysql_binlog_file="/data/mysql_binlog/mysql-bin" DownloadFileDir="$(pwd)" InstallLogFile="$(pwd)/install.log" tmp="n" fun_failed() { printf "%-59s" "$1" echo -e "[\033[31mFAILED\033[0m]" echo -e "\033[31msee ./install.log for detail\033[0m" exit 1 } fun_ok() { printf "%-59s" "$1" echo -e "[\033[32m OK \033[0m]" } while [[ $# != 0 ]];do case $1 in -y) tmp="y" shift 1 ;; -d) mysql_data_dir=$2 shift 2 ;; -b) mysql_binlog_file=$2 shift 2 ;; -h) echo "usage: script that auto install mysqld srv" echo " -y :answer to any question which would be asked is yes" echo " -d <data dir> :set mysql data dir [default: $mysql_data_dir]" echo " -b <data dir> :set mysql bin log file [default: $mysql_binlog_file]" echo " NOT in /root,mysql don't have authority " exit ;; *) echo "wrong option" exit esac done echo "=========================" echo "datadir: $mysql_data_dir" echo "binlog: $mysql_binlog_file" if [[ $tmp = "n" ]];then read -p "Confirm set is right [y/n]: " tmp [[ $tmp != "y" ]] && exit 2 fi echo ss -tnpl | grep -q mysqld [[ $? -eq 0 ]] && fun_failed "mysqld process is running:" useradd -r mysql -s /sbin/nologin &>> $InstallLogFile [[ $? -ne 0 && $? -ne 9 ]] && fun_failed "useradd mysql:" # $? -eq 0 || $? -eq 9 通过,取反退出 fun_ok "useradd mysql:" yum -y install gcc gcc-c++ gcc-g77 autoconf \ automake zlib* fiex* libxml* ncurses-devel libmcrypt* \ libtool-ltdl-devel* make cmake curl freetype \ libjpeg-turbo libjpeg-turbo-devel \ openjpeg-libs libpng gd ncurses git bison \ openssl-devel libaio-devel &>> $InstallLogFile || fun_failed "install rpm:" fun_ok "install rpm:" #[[ -e mysql-5.5.55.tar.gz ]] && mv mysql-5.5.55.tar.gz mysql-5.5.55.tar.gz.bak-$(date +%M) #wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.55.tar.gz -O mysql-5.5.55.tar.gz &>> $InstallLogFile || fun_failed "wget mysqld:" #wget https://andyblog.org/files/20170625-6810431146.gz -O mysql-5.5.55.tar.gz &>> $InstallLogFile || fun_failed "wget mysqld:" #fun_ok "wget mysqld:" [[ -e mysql-5.5.55 ]] && mv mysql-5.5.55 mysql-5.5.55.bak-$(date +%M) tar xf mysql-5.5.55.tar.gz &>> $InstallLogFile || fun_failed "tar xf mysqld:" fun_ok "tar xf mysqld:" [[ -e /usr/local/mysql ]] && fun_failed "bin dir has exist:" mkdir -p /usr/local/mysql/run/lock mkdir -p /usr/local/mysql/conf mkdir -p /var/log/mysqld chown -R mysql /usr/local/mysql/run chown -R mysql /var/log/mysqld cd mysql-5.5.55 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \ -DMYSQL_DATADIR=$mysql_data_dir \ -DSYSCONFDIR=/usr/local/mysql/conf \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci &>> $InstallLogFile || fun_failed "configure mysqld:" fun_ok "configure mysqld:" CpuCount=$(cat /proc/cpuinfo| grep "processor"| wc -l) make -j $CpuCount &>> $InstallLogFile || fun_failed "make mysqld:" fun_ok "make mysqld:" make install &>> $InstallLogFile || fun_failed "make install mysqld:" fun_ok "make install mysqld:" cd /usr/local/mysql \cp $DownloadFileDir/file/mysql.conf ./conf/my.cnf sed -i "s#^datadir.*#datadir = $mysql_data_dir#g" ./conf/my.cnf sed -i "s#^log-bin.*#log-bin=$mysql_binlog_file#g" ./conf/my.cnf /usr/local/mysql/bin/my_print_defaults --defaults-file=/usr/local/mysql/conf/my.cnf &>> $InstallLogFile [[ -e /etc/my.cnf ]] && mv /etc/my.cnf{,.bak} [[ -e $mysql_data_dir ]] && fun_failed "data dir has exist:" mkdir -p $(dirname $mysql_binlog_file) chown -R mysql $(dirname $mysql_binlog_file) /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=$mysql_data_dir &>> $InstallLogFile || fun_failed "init db file:" fun_ok "init db file:" cat > /etc/profile.d/mysql.sh << EOF PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:\$PATH export PATH EOF source /etc/profile.d/mysql.sh \cp $DownloadFileDir/file/mysql.init /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on \cp $DownloadFileDir/file/mysql.logrotate /etc/logrotate.d/mysqld fun_ok "config mysqld:" service mysqld start &>> $InstallLogFile || fun_failed "start mysqld:" fun_ok "start mysqld:" sleep 1 ss -tnlp | grep mysqld &>> $InstallLogFile || fun_failed "listen port:" fun_ok "listen port:" cd $DownloadFileDir rm -rf mysql-5.5.55* &>> $InstallLogFile || fun_failed "rm download file:" fun_ok "rm download file:" echo -e "\033[32mservice mysqld started \033[0m" echo echo "bindir: /usr/local/mysql" echo "service: /etc/init.d/mysqld" echo "datadir: $mysql_data_dir" echo "logdir: /var/log/mysqld" echo

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档