APP下载

基于shell脚本的Linux环境下MySQL快速部署方法

2020-12-28李灿孙东平

电脑知识与技术 2020年33期
关键词:升级

李灿 孙东平

摘要:随着互联网时代的到来,越来越多的应用采用了MySQL作为应用的后台数据库。MySQL的供应商免费提供各种开源版本,其中Linux版本的安装包不提供可视化的安装界面,需要用户手动解压并修改配置,十分烦琐并且耗时。本文提供一种快速部署MySQL的方法,使用Shell安装脚本达到一键安装和升级数据库的目的,该方法可以大大节约用户部署数据库的时间,也减少误操作引起的数据库启动异常等问题。

关键词:MySQL;一键安装;升级;Shell脚本

中图分类号:TP183 文献识别码:A

文章编号:1009-3044(2020)33-0033-02

开放科学(资源服务)标识码(OSID):

1 引言

MySQL数据库是Oracle公司研发的一款关系型数据库,由于体积小,速度快,支持多种操作系统,同时又免费开源,具有良好的生态圈,一直以来备受各中小型互联网公司的青睐。MySQL数据库目前已经成为开源应用中最大的关系型数据库,海量的应用将数据存储在MySQL数据库中,由于承担着数据的安全性和可靠性的职责,学习和研究MySQL数据库技术显得尤为重要。

所有基于MySQL数据库的性能测试以及应用都必须首先完成MySQL环境的搭建和部署,安装部署MySQL或升级新版本MySQL在研发和测试的工作中被频繁使用。因此提高安装部署的效率显得非常重要。

本文将通过研究MySQL数据库的安装部署,提出一种快速部署和升级MySQL数据库的方法。

2 通常的安装方式

MySQL数据库支持跨平台操作,有多个版本的安装包,包括Windows版、Unix版、Linux版和Mac OS版等,常用的有Win-dows版和Linux版,其中Windows版提供了可视化的图形化界面安装工具,但是开发常用的Linux版本却只能依靠手动执行命令语句来完成安装部署。通常情况下,Linux系统中MySQL的安装需要经过环境检测、下载、解压、拷贝、配置以及启动等一系列的动作。

①检测安装环境

[root@localhost/]#rpm -qa l grep mysql

检查是否安装过Mysql,如果安装过,需要删除安装包以及相应的目录文件。

②检查是否已经创建mysql用户和用户组,如果没有,需要新建mysql用户和用户组。

[root@localhost/]#id mysql

[root@localhost/]#groupadd mysql

[root@localhost/]#useradd—r-g mysql mysql

③下载安装包

通常为了安全,我们的环境不能与Internet连通,需要将已经下载好的安装包上传到服务器。在允许联网的情况下,可以使用wget命令下载安装包。

[root@localhost/]#, wget https://dev. mysql. com/get/Downloads/MySQL-5.7/mysql-5.7.1

-linux-glibc2.1 2-x86_64.tar.gz

④解压安装包

[root@localhost/]# tar xzvf mysql-5.7.1-linux-glibc2.12-x86_64.tar.gz

⑤拷贝可执行程序和配置文件模板到相应目录,如果/usr/local/目录下不存在mysql目录,可以手动创建该目录

[root@localhost/l# mv mysql-5.7.1-linux-glibc2.12-x86_64/usr/locaVmysql

⑥在/usr/local/mysql目录下创建data目录以及etc目录,Log日志目录,同时需改环境变量文件。

[root@localhost/]#mkdir /usr/local/mysql/data

[root@localhost/]#mkdir /usr/local/mysql/etc

[root@localhost/]#mkdir /usr/local/mysql/log

[root@localhost/]#chown -R mysql:mysql /usr/local/mysql

[root@localhost/]#chmod -R 755 /usr/local/mysql

⑦切换到/usr/local/mysql/bin目录下,执行初始化数据库命令

[root@localhost bin]# ./mysqld -initialize -user=mysql一一datadir=/usr/loc al/mysql/data -basedir=/usr/loc al/mysql

⑧修改配置文件my.cnf,設置数据文件存放路径、socket连接以及监听端口,默认端口为3306

[root@localhost bin]# vi /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

port= 3306

symbolic-links=0

max_connections=400

innodb_file_per_table=1

⑨启动数据库

[root@localhost/]#/usr/local/mysql/support-files/mysql.

serv-er start

⑩检查数据库进程是否启动成功

通过检查数据库进程号是否改变,来判定数据库进程是否成功启动。也可以通过日志信息判断数据库是否启动成功。登录连接数据库,执行查看数据库是否正常T作。

由此可见,要完成以上安装步骤,手动执行时间长,容易引入人为操作的失误,最重要的是手动操作不具有可复制性,由此增加了研发和测试人员的工作量,自动安装升级MySQL就是在这种环境下应运而生的。

3 shell脚本关键技术

Shell脚本语言是一个用C语言编写的程序,是操作系统提供给用户的操作接口。用户通常使用shell访问Linux内核的服务。一般shell指的是Shell脚本,也就是将一些Shell的语法与指令写进一个文本文件,用正则表达式、管道命令和数据流重定向等功能对数据进行集中处理。Shell脚本类似于Win-dows下的批处理,可以高效地管理和执行命令。

Shell脚本语言的语法和结构相对于编译语言比较简单,书写也比较方便,脚本语言可以不经过编译直接运行,此外Linux系统为Shell脚本提供了awk,sed等应用程序,使得Shell脚本可以更方便快捷的处理实物[1]。

将手动安装MySQL的每个步骤的执行命令汇集成一个Shell脚本,可以提高执行效率。

改进后的白动安装方式:

本文提供的MySQL-键安装就是将手动安装部署MySQL的操作命令放到一个sh文件中,通过调用该脚本,可以一次性完成数据库的安装配置,并启动数据库。

一键安装部署脚本的执行流程如下图所示:

首先需要检查安装环境,通过调用函数check_env()检查当前Linux环境下是否已经安装MySQL,同时检查当前用户的环境变量文件,设置可执行文件的执行路径,库文件的存放目录等。

然后执行调用install_mysq()函数,下载tar.gz安装包,执行解压安装包命令,需要注意的是,每完成一次关键命令,需要对命令执行是否成功做一次检测,遇到执行异常需要退出程序,并打印日志方便定位故障。依次创建安装目录,拷贝文件到执行的安装目录下,并调用方法modify_config()修改配置文件,设置数据文件存放路径和MySQL关键配置项。以上函数调用完成后,调用start_mysql()方法执行初始化MySQL命令,并启动MySQL数据库。在start_mysql()方法中需要获取启动后的MySQL进程的进程号,并监控该进程号是否发生变化,如果进程号稳定不变,并且启动日志中无报错字样,视为数据库正常启动,此时,安装脚本执行完成,退出安装。反之,如果进程号在几秒钟后发生变化,视为数据库启动异常,需要停掉数据库,数据库安装脚本输出启动异常的日志,并退出安装。

实践经过和结果:

本文选择Linux SUSEll操作系统作为测试环境。将m-stall_mysql.sh拷贝到测试环境上,通过执行./sh install_mysql.sh命令执行安装脚本。

4 结论对比

通过实际安装调测发现,执行自动化安装脚本的时间基本维持在30秒钟左右,大大缩短了手动安装MySQL的时间,实验结果表明自动化安装脚本提高了安装效率,并且具有可复制性,可以反复多次在同一环境下执行。同样的方法一样适用于MySQL数据的升级,升级的本质是下载目标版本的MySQL安装包,解压并覆盖当前版本的可执行文件,配置文件。需要注意的是,如果是现网数据库版本的升级,需要保留原数据文件,配置文件以及日志文件,因此升级数据库的脚步比安装脚本要增加备份和还原配置的步骤。

总之,基于shell脚本进行部署安装和升级MySQL是自动化测试的重要工具,稳定高效的腳本文件可以极大地帮助提高工作效率,是自动化运维的重要研究方向。

参考文献:

[1]闫峻函.基于Shell脚本Solaris操作系统远程管理系统的设计与实现[D].北京:北京交通大学,2016.

[2]韩璐.在UNIX系统下用shell编程实现对文件的操作[J].中国科技信息,2006(13):131-132.

[3](美)[D.梅迪纳茨]David,Medinets..UNIX Shell编程工具[M].北京:机械工业出版社,2000.

[4]唐华.Linux操作系统高级教程[M].北京:电子工业出版社,2008.

【通联编辑:光文玲】

猜你喜欢

升级
小投入,大升级 Polk Audio Monitor XT系列
幸福,在“家门口”升级
回暖与升级