千家信息网

1分钟完成MySQL5.7安装部署

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,1分钟完成MySQL5.7安装部署简介Part1:写在最前MYSQL5.7.15是截止至本文撰写当日,mysql官网的最新社区版,mysql5.7的多项功能优化可以用激动人心来形容,嫌安装麻烦?没关系
千家信息网最后更新 2024年11月23日1分钟完成MySQL5.7安装部署

1分钟完成MySQL5.7安装部署

简介

Part1:写在最前

MYSQL5.7.15是截止至本文撰写当日,mysql官网的最新社区版,mysql5.7的多项功能优化可以用激动人心来形容,嫌安装麻烦?没关系,跟着本文,带你1分钟搞定MySQL5.7.15数据库安装部署。


Part2:仅仅安装就够了?

不,当然不够,MySQL5.7的多项功能特性更新,无法一一赘述,因此,我们先从和本文最相关的my.cnf,来解读一些MySQL5.7的部分新特性。

在之前我写过一篇MySQL5.6的新特性参数,诸如:

innodb_buffer_pool_dump_at_shutdown=1

innodb_buffer_pool_load_at_startup=1

开启这个两个参数当数据库重启后把这些热数据重新加载回去

只有正常关库才会dump热数据块,宕机和kill -9不会

更多5.6安装内容可移步:

http://suifu.blog.51cto.com/9167728/1846671


在5.7里,一个新的系统参数innodb_buffer_pool_dump_pct,其默认值为25

允许DBA控制每个缓冲池最近使用页的百分比来导出,以减缓导出innodb buffer pool所有页占用过大的磁盘。如果innodb buffer pool里缓存了100个页,那么会将最近使用的25个页导出去,最大值是100,意思为全部导出,如下图所示:

注:在MariaDB10.1里,同样提供了该参数,不过其默认值是100



在线调整innodb_buffer_pool_size,不用重启mysql进程

在MySQL5.6/MariaDB 10.1版本,调整该参数必须重启MySQL进程才可以生效,而mysql5.7版本里,可以直接动态设置,非常方便。

这个功能应用场景如:

1.机器新增内存,DBA忘记调大该参数;

2.工作交接,新来的DBA发现前任DBA对该参数设置不合理。

下面在我机器里进行测试,把512M内存变更为256M,见下图:

需注意的是,在调整buffer_pool期间,用户的请求会被阻塞,直到调整完毕,所以请勿在高峰期调整。



实战

Part1:整个流程分3步

1.mysql官网下载二进制版本的mysql5.7.15安装包(mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz)至/root目录

2.执行下文所述的mysql_auto_install.sh脚本

3.输入您设置的密码登录数据库



Part2:自动化脚本

[root@HE2 ~]# cat mysql_auto_install.sh###### 二进制自动安装数据库脚本root密码MANAGER将脚本和安装包放在/root目录即可#####################数据库目录/usr/local/mysql##################数据目录/data/mysql##################慢日志目录/data/slowlog##################端口号默认3306其余参数按需自行修改###############################author:rrhelei@126.com####################!/bin/bash# Check if user is rootif [ $(id -u) != "0" ]; then    echo "Error: You must be root to run this script, please use root to install"    exit 1ficlearecho "========================================================================="echo "A tool to auto-compile & install MySQL 5.7.15 on Redhat/CentOS Linux "echo "========================================================================="cur_dir=$(pwd)#set mysql root password        echo "==========================="        mysqlrootpwd="MANAGER"        echo -e "Please input the root password of mysql:"        read -p "(Default password: MANAGER):" mysqlrootpwd        if [ "$mysqlrootpwd" = "" ]; then                mysqlrootpwd="MANAGER"        fi        echo "==========================="        echo "MySQL root password:$mysqlrootpwd"        echo "==========================="#which MySQL Version do you want to install?echo "==========================="    isinstallmysql57="n"        echo "Install MySQL 5.7.15,Please input y"        read -p "(Please input y , n):" isinstallmysql57        case "$isinstallmysql57" in        y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)        echo "You will install MySQL 5.7.15"        isinstallmysql57="y"        ;;        *)        echo "INPUT error,You will exit install MySQL 5.7.15"        isinstallmysql57="n"    exit        esac        get_char()        {        SAVEDSTTY=`stty -g`        stty -echo        stty cbreak        #dd if=/dev/tty bs=1 count=1 2> /dev/null        stty -raw        stty echo        stty $SAVEDSTTY        }        echo ""        echo "Press any key to start...or Press Ctrl+c to cancel"        char=`get_char`# Initialize  the installation related content.function InitInstall(){        cat /etc/issue        uname -a        MemTotal=`free -m | grep Mem | awk '{print  $2}'`          echo -e "\n Memory is: ${MemTotal} MB "        #Set timezone        #rm -rf /etc/localtime        #ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime    #Delete Old Mysql program        rpm -qa|grep mysql        rpm -e mysql        #Disable SeLinux        if [ -s /etc/selinux/config ]; then        sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config        fi    setenforce 0}#Installation of depend on and optimization options.function InstallDependsAndOpt(){cd $cur_dircat >>/etc/security/limits.conf<> /etc/sysctl.conf}#Install MySQLfunction InstallMySQL57(){echo "============================Install MySQL 5.7.15=================================="cd $cur_dir#Backup old my.cnf#rm -f /etc/my.cnfif [ -s /etc/my.cnf ]; then    mv /etc/my.cnf /etc/my.cnf.`date +%Y%m%d%H%M%S`.bakfiecho "============================MySQL 5.7.15 installing…………========================="#mysql directory configurationtar xvf /root/mysql-5.7.15-linux-glibc2.5-x86_64.tar.gzmv /root/mysql-5.7.15-linux-glibc2.5-x86_64 /usr/local/mysqlgroupadd mysql -g 512useradd -u 512 -g mysql -s /sbin/nologin -d /home/mysql mysqlmkdir -p /data/mysqlmkdir -p /data/slowlogchown -R mysql:mysql /data/mysqlchown -R mysql:mysql /usr/local/mysqlchown -R mysql:mysql /data/slowlog#edit /etc/my.cnfSERVERID=`ifconfig eth0 | grep "inet addr" | awk '{ print $2}'| awk -F. '{ print $3$4}'`cat >>/etc/my.cnf<> /etc/ld.so.conf.d/mysql-x86_64.conf<> /etc/profile < /tmp/mysql_sec_script<&1 | tee /root/mysql-install.logInstallDependsAndOpt 2>&1 | tee -a /root/mysql-install.logInstallMySQL57 > /dev/nullCheckInstall 2>&1 | tee -a /root/mysql-install.log




Part5:登录&享受吧

1.先source一下环境变量文件使生效

[root@HE2 ~] source /etc/profile


2.输入用户名密码(默认为MANAGER)登录数据库


至此,MySQL5.7.15安装完成


--总结--

MySQL5.7拥有诸多让我们激动和期待的新功能,限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正。


0