之前Mysql的安装说明是针对Cmake的安装,前端时间整理出来一套线上的Mysql安装脚本,版本使用的是mysql-5.1.50.区别在于这次不是使用cmake,也用不上cmake。直接上脚本:
安装思路:基础组件安装---->主程序包准备---->管理帐号创建---->解压主程序包,编译,安装---->授权相关目录---->修改主配置文件---->启动服务---->测试
- #!/bin/bash
- echo "正在安装Mysql基础组件包,请稍等!"
- sleep 2
- yum -y install gcc gcc-c++ ncurses ncurses-devel openssl openssl-devel libtool*
- df -h
- echo "正在计算硬盘空间,请确认空间是否满足安装需求.
- 是 请输入Y\y
- 否 请输入N\n
- "
- read -p "请根据编号选择(Y\y or N\n).. " SERVER_ID
- if [ $SERVER_ID == Y ] || [ $SERVER_ID == y ];then
- SERVER="是"
- elif [ $SERVER_ID == N ] || [ $SERVER_ID == n ];then
- SERVER="Quit"
- exit 5
- else
- exit
- fi
- sleep 2
- echo "创建数据存放目录......"
- mkdir -p /data/dbdata
- sleep 2
- if [ `grep "mysql" /etc/passwd | wc -l` -eq 0 ];then
- echo "正在创建Mysql管理帐号......"
- /usr/sbin/groupadd mysql
- /usr/sbin/useradd -g mysql mysql
- else
- echo "Mysql管理帐号创建完成."
- fi
- sleep 2
- ######################
- DOWNDIR=/usr/local/src
- cd {$DOWNDIR}
- tar xzvf mysql-5.1.50.tar.gz
- cd mysql-5.1.50
- echo "正在编译Mysql主程序包......"
- ./configure '--prefix=/usr/local/mysql' \
- '--localstatedir=/data/dbdata/' \
- '--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock' \
- '--with-charset=utf8' \
- '--with-extra-charsets=complex' \
- '--with-pthread' \
- '--enable-thread-safe-client' \
- '--with-ssl' \
- '--with-client-ldflags=-all-static' \
- '--with-mysqld-ldflags=-all-static' \
- '--with-plugins=partition,federated,innobase,csv,blackhole,myisam,innodb_plugin,heap,archive' \
- '--enable-shared' \
- '--enable-assembler'
- if [ $? -ne 0 ];then
- echo "编译失败,请检测组件包是否安装正确!"
- exit 1
- fi
- echo "正在安装Mysql主程序包,等候的时间可能有些久,您可以煮一杯咖啡."
- make
- if [ $? -ne 0 ];then
- echo "编译失败,请检查主程序包是否正确......"
- exit 1
- fi
- make install
- echo "正在授权mysql用户及其相对应的目录."
- chown -R mysql:mysql /usr/local/mysql
- chown -R mysql:mysql /data/dbdata/
- sleep 2
- echo "正在初始化数据库!"
- /usr/local/mysql/bin/mysql_install_db --user=mysql
- sleep 2
- echo "正在配置Mysql主配置文件!"
- cp /usr/local/src/mysql-5.1.50/support-files/my-large.cnf /etc/my.cnf
- echo "正在设置Mysql服务并且允许Mysql开机自动启动.
- 是 请输入Y\y
- 否 请输入N\n
- "
- read -p "请根据编号选择(Y\y or N\n).. " SERVER_ID
- if [ $SERVER_ID == Y ] || [ $SERVER_ID == y ];then
- SERVER="自动启动"
- elif [ $SERVER_ID == N ] || [ $SERVER_ID == n ];then
- SERVER="Quit"
- exit 5
- else
- exit
- fi
- sleep 2
- cp /usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld
- chkconfig --add mysqld
- chkconfig --level 2345 mysqld on
- echo "Mysql 正在启动中......"
- /etc/rc.d/init.d/mysqld start
- if [ $? -ne 0 ];then
- echo "Mysql 启动失败,请端口或者服务已经生效!"
- else
- echo "Mysql 启动成功!"
- fi
以上脚本直接可以使用,编译模块部分可以根据自己的实际需求进行变更。并不是添加使用的模块越多越好,适合于自己的才是最好的。