• Mysql5.7源码编译安装脚本


    #!/bin/bash
    #
    #********************************************************************
    #Author:            Wuvikr
    #QQ:                744123155
    #Date:              2020-12-01
    #FileName           Mysql5.7_src_install.sh
    #URL:               http://www.wuvikr.top
    #Description        The test script
    #Copyright (C):     2020 All rights reserved
    #********************************************************************
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    CPU=`lscpu | sed -rn 's/^CPU(s)[^0-9]+([0-9]+)/1/p'`
    Rpcsvc_Package=rpcsvc-proto-1.4.2.tar.xz
    Boost_Package=boost_1_59_0.tar.bz2
    Mysql_Package=mysql-5.7.30.tar.gz
    Rpcsvc_Dirname=${Rpcsvc_Package%.tar*}
    Boost_Dirname=${Boost_Package%.tar*}
    Mysql_Dirname=${Mysql_Package%.tar*}
    
    Boost_Install_Dir=/usr/local
    Mysql_Install_Dir=/apps/mysql
    Mysql_Data_Dir=/data/mysql
    
    # 编译安装rpcsvc
    install_rpcsvc() {
        [ -f $Rpcsvc_Package ] && tar xvf $Rpcsvc_Package &> /dev/null || echo -e "e[1;31m当前目录没有检测到${Rpcsvc_Package}包,请提前准备好安装包!e[0m"
    
        cd $Rpcsvc_Dirname
        ./configure
        make -j $CPU && make install
    }
    
    # 编译安装mysql
    install_mysql() {
        # 切换回上一级目录
        cd ..
    
        # 检测安装包
        [ -f $Boost_Package ] && tar xvf $Boost_Package -C $Boost_Install_Dir &> /dev/null || echo -e "e[1;31m当前目录没有检测到${Boost_Package}包,请提前准备好安装包!e[0m"
    
        [ -f $Mysql_Package ] && tar xvf $Mysql_Package &> /dev/null || echo -e "e[1;31m当前目录没有检测到${Mysql_Package}包,请提前准备好安装包!e[0m"
    
        # 安装相关依赖包
        yum -y install make cmake gcc gcc-c++ ncurses ncurses-devel bison openssl-devel
    
        # 创建用户及用户组
        groupadd -r mysql
        useradd -r -g mysql -s /sbin/nologin mysql
    
        #准备mysql目录
        mkdir $Mysql_Data_Dir
        chown mysql.mysql $Mysql_Data_Dir
    
        # 编译安装
        cd $Mysql_Dirname
    
        cmake . 
        -DCMAKE_INSTALL_PREFIX=$Mysql_Install_Dir 
        -DMYSQL_DATADIR=$Mysql_Data_Dir 
        -DSYSCONFDIR=/etc 
        -DMYSQL_UNIX_ADDR=$Mysql_Data_Dir/mysqld.sock 
        -DEXTRA_CHARSETS=all 
        -DDEFAULT_CHARSET=utf8mb4 
        -DDEFAULT_COLLATION=utf8mb4_unicode_ci 
        -DWITH_MYISAM_STORAGE_ENGINE=1 
        -DWITH_INNOBASE_STORAGE_ENGINE=1 
        -DWITH_PARTITION_STORAGE_ENGINE=1 
        -DENABLED_LOCAL_INFILE=1 
        -DENABLED_PROFILING=1 
        -DMYSQL_TCP_PORT=3306 
        -DWITH_DEBUG=0 
        -DWITH_BOOST=${Boost_Install_Dir}/${Boost_Dirname}
    
        make -j $CPU && make install
    
    }
    
    # 配置和初始化Mysql
    configuration() {
        # 设置环境变量
        echo "PATH=${Mysql_Install_Dir}/bin:$PATH" > /etc/profile.d/mysql.sh
    
        # 准备配置文件
        cat > /etc/my.cnf << EOF
    [mysqld]
    datadir=$Mysql_Data_Dir
    skip_name_resolve=1
    socket=${Mysql_Data_Dir}/mysql.sock
    log-error=${Mysql_Data_Dir}/mysql.log
    pid-file=${Mysql_Data_Dir}/mysql.pid
    
    [client]
    default-character-set=utf8mb4
    socket=${Mysql_Data_Dir}/mysql.sock
    
    [mysql]
    default-character-set=utf8mb4
    socket=${Mysql_Data_Dir}/mysql.sock
    
    [mysql]
    auto-rehash
    prompt="\u@\h [\d]>"
    EOF
        
        # 初始化数据库
        ${Mysql_Install_Dir}/bin/mysqld --initialize-insecure --user=mysql --basedir=${Mysql_Install_Dir} --datadir=${Mysql_Data_Dir}
    
        # 准备服务脚本
        cp ${Mysql_Install_Dir}/support-files/mysql.server /etc/init.d/mysqld
    
        # 启动mysql
        chkconfig --add mysqld
        service mysqld start
    }
    
    
    install_rpcsvc
    install_mysql
    configuration
    
    echo -e "e[1;31m${Mysql_Dirname}安装成功!e[0m"
    
    
  • 相关阅读:
    mySQL如何在查询的结果前添加序号
    bootstrap 列表前添加序号 1.10版本
    sql 如何优先显示不为空的字段 并进行排序
    java面向对象总结
    线程总结(二)
    数据库索引介绍(转载)
    线程总结(一)
    GUI图形界面编程之事件处理机制
    Eclipse快捷键大全(转载)
    JDBC数据库编程总结
  • 原文地址:https://www.cnblogs.com/wuvikr/p/14068220.html
Copyright © 2020-2023  润新知