一种MySQL的批量化安装部署方法

文档序号:9452900阅读:1013来源:国知局
一种MySQL的批量化安装部署方法
【技术领域】
[0001] 本发明涉及一种MySQL的安装部署方法,尤其涉及一种MySQL的批量化安装部署 方法。
【背景技术】
[0002] MySQL是一个关系型数据库,支持事务、索引、多版本控制、异常恢复等重要特性, 加上其开源和轻量级的特点,被互联网企业、创业公司等接受和大量使用,是目前运行实例 数量最多的关系型数据库。Linux是数据中心最主流的操作系统,大多数MySQL也运行在 Linux,本发明探讨基于Linux的MySQL部署方法。
[0003] 与主流的商业关系型数据库相比,MySQL的安装部署相对简单,通过Linux发行版 的软件包管理工具可以轻松完成。只是,这样安装的都是预先定义好的MySQL软件包,无法 改用其他版本、或改变安装目录等。
[0004] 官方还提供MySQL二进制发行版,官方将编译好的二进制文件及其他必要的文件 存放在一个目录中,并压缩成一个归档文件。下载这个压缩归档文件,解压后即得到一个目 录,所有的安装文件都在这个目录下。
[0005] 使用MySQL的开源版本时,下载源码编译安装也是常用的方法。在编译阶段可以 设置根目录、选择支持哪些字符集等,最大限度地满足安装需求,只是对技术人员的要求比 较高。
[0006] 完成软件安装后,还需要设置环境变量、书写参数文件、初始化数据文件等诸多后 续步骤,才算完成MySQL的部署,这些步骤,在很多情况下是由技术人员手工逐个完成的。
[0007] 在很多时候,MySQL的安装部署只需考虑最方便的方式即可。但是,当MySQL在数 据中心中大规模使用、或作为一种云服务提供给客户时,就必须审视安装部署的整个过程。 比如,为了使MySQL运行稳定,一般需要使用几个特定的版本;尽可能保持MySQL部署环境 的一致性,以简化大规模运维;因为部署的MySQL非常多,需要快速地完成部署,最大程度 地自动化完成,提高服务响应能力,并降低成本。

【发明内容】

[0008] 本发明所要解决的技术问题是如何在数据中心大规模使用MySQL时,高效率地完 成MySQL的安装部署,以提高部署效率并降低成本。
[0009] 本发明为解决上述技术问题而采用的技术方案是提供一种MySQL的批量化安装 部署方法,包括如下步骤:a)获取MySQL二进制发行版,解压得到MySQL主目录及其下的文 件;b)在MySQL主目录下创建参数文件、初始化数据文件并修改帐号,生成适用于当前环境 的MySQL安装部署包;c)配置部署服务器,利用部署服务器将MySQL安装部署包远程传输 到目标服务器的指定目录;d)所述目标服务器根据接收到的MySQL安装部署包进行配置, 完成MySQL安装部署。
[0010] 上述的MySQL的批量化安装部署方法,其中,所述步骤b)创建的参数文件为 my.cnf,所述参数文件包含InnoDB缓存池参数以及server_id参数;所述步骤b)通过执行scripts/mysql_install_db-defaults-file=my.cnf完成数据目录下数据文件的初始 化。
[0011] 上述的MySQL的批量化安装部署方法,其中,所述步骤b)中修改帐号包括:保留三 个MySQL的初始用户:root@127. 0? 0?l、root@: : 1和rootOlocalhost,并删除掉其他的初始 用户。
[0012] 上述的MySQL的批量化安装部署方法,其中,所述步骤b)还包括创建InnoDB缓 存池参数修改脚本,使得目标服务器根据当前系统内存大小设定InnoDB缓存池大小以及 InnoDB缓存池实例数;所述InnoDB缓存池大小为当前目标服务器的MySQL主目录下/ proc/meminfo中读取到的系统内存大小的70%~80% ;所述InnoDB缓存池实例数的值根 据InnoDB缓存池大小设定,1GB左右对应一个实例,实例数最多为32个。
[0013] 上述的MySQL的批量化安装部署方法,其中,所述步骤b)还包括创建server_id 参数修改脚本,使得目标服务器获取当前系统的IPv4地址A.B.C.D,并将server_id设置为 A*256*256*256+B*256*256+0256+D。
[0014] 上述的MySQL的批量化安装部署方法,其中,所述步骤c)中的部署服务器上存储 有MySQL安装部署包,所述部署服务器设置SSH免密码登录目标服务器,使用SCP命令将所 述MySQL安装部署包传输至目标服务器。
[0015] 上述的MySQL的批量化安装部署方法,其中,所述步骤c)中的部署服务器通过SSH 免密码登录方式在目标服务器上远程调用InnoDB缓存池参数修改脚本和serverjd参数 修改脚本,完成MySQL部署。
[0016] 上述的MySQL的批量化安装部署方法,其中,所述部署服务器与其他业务系统合 用一个Linux服务器,一个部署服务器对应多个目标服务器,并可进行并行执行部署。
[0017] 本发明对比现有技术有如下的有益效果:本发明提供的MySQL的批量化安装部署 方法,通过在MySQL主目录下创建参数文件、初始化数据文件并修改帐号,生成适用于当前 环境的MySQL安装部署包,减少了实际部署时所需步骤和时间;并利用部署服务器实现远 程传输调用,从而能够批量化完成MySQL的安装部署,大大提高MySQL的部署效率,可行性 高,大大降低运维复杂度。此外,本发明基于IPv4计算出唯一的server_id值,并通过远程 调用在每一目标服务器实现InnoDB缓存池参数和serverjd参数的在线配置,进一步提高 MySQL的部署效率和可行性。
【附图说明】
[0018] 图1为本发明MySQL的批量化安装部署流程示意图;
[0019] 图2为本发明的InnoDB缓存池参数设置示意图;
[0020] 图3为本发明的唯一server_id参数设置示意图;
[0021] 图4为本发明采用的部署服务器与目标服务器连接示意图。
【具体实施方式】
[0022] 下面结合附图和实施例对本发明作进一步的描述。
[0023] 图1为本发明MySQL的批量化安装部署流程示意图。
[0024] 请参见图1,本发明提供的MySQL的批量化安装部署方法,包括如下步骤:
[0025] 步骤S1 :获取MySQL二进制发行版,解压得到MySQL主目录及其下的文件;本发明 的MySQL软件包使用官方Linux通用二进制发行版,其具有编译质量优秀、独立主目录、拷 贝即可使用、适用绝大部分Linux发行版的优点。
[0026] 步骤S2 :在MySQL主目录下创建参数文件、初始化数据文件并修改帐号,生成适用 于当前环境的MySQL安装部署包;
[0027] 步骤S3 :配置部署服务器,利用部署服务器将MySQL安装部署包远程传输到目标 服务器的指定目录;
[0028] 步骤S4:所述目标服务器根据接收到的MySQL安装部署包进行配置,完成MySQL 安装部署。
[0029] 现有使用官方Linux通用二进制发行版部署MySQL的步骤依次是安装软件、创建 参数文件、初始化数据文件、修改帐号。为了提高MySQL的部署效率,本发明提出将创建参 数文件、初始化数据文件、修改帐号等步骤提前执行完成,将相关文件集成到官方Linux通 用二进制发行版中,生成适用于当前环境的安装部署包。如此,实际部署MySQL的执行步骤 就可以减少。
[0030] 本发明的MySQL安装部署包按如下步骤生成:
[0031] 1.为MySQL分配一个单独块设备,文件系统格式化后挂载到/uOl,MySQL主目录 为 /uOl/mysql,MySQL参数文件为 /u01/mysql/my.cnf。
[0032] 2.操作系统中添加dba用户组,并添加用户组为dba的mysql用户。
[0033] 3.设置四个环境变量:
[0034] export MY_BASEDIR_VERSION= /uOl/mysql,MYSQL_HOME= /uOl/mysql,
[0035] PATH = /u01/mysql/bin:$PATH, LD_LIBRARY_PATH = /u01/mysql/lib〇
[0036] 官方Linux通用二进制发行版是一个压缩包,解压之后是一个目录及其下的文 件,该目录即MySQL主目录。进入该目录,创建参数文件my.cnf,之后执行scripts/mysql_ install_db-defaults-file=my.cnf初始化数据文件,这些数据文件存放在MySQL主 目录下的data子目录。接着,完成MySQL用户修改等操作,MySQL的初始用户保留三 个:root@127. 0? 0? 1、root@: : 1和rootOlocalhost,其他的删除掉,BP出于安全考虑禁用 无名帐号和远程超级权限帐号;关闭MySQL,删除auto,cnf文件,防止所有后续部署的 server-uuid都相同。二进制日志、错误日志文件、慢日志等也同样删除掉,仅保留必要的文 件。最后得到的即是MySQL安装部署包,从目录和文件上看,它多了my.cnf参数文件、data 下的数据文件。现在,该MySQL主目录包含了参数文件、数据文件,帐号也已经修改为符合 安全要求,即是上述所称的MySQL安装部署包。
[0037] MySQL参数文件my. cnf的主要内容如下:
[0038] [client]
[0039] socket = /u01/mysql/mysql.sock
[0040] [mysql d]
[0041 ] socket = /u01/mysql/mysql.sock
[0042] basedir = /u01/mysql
[0043] datadir = /u01/mysql/data
[0044] server_id = 1
[0045] innodb_bufTer_pool_size = 8G
[0046] innodb_buffer_pool_instances = 1
[0047] 实际部署MySQL时,针对每一个不同的目标服务器,还需要特殊设置个别MySQL参 数以进一步适应当前Linux操作系统,这里阐述一下这些MySQL参数的修改算法。
[0048] 首先,InnoDB缓存池大小对MySQL性能影响巨大,需要根据每一个目标服务器上 Linux操作系统的内存相应修改,取其70 %~80%,尽可能地利用内存。本发明从/proc/ meminfo中读取系统内存大小,取其75%大小作为InnoDB缓存池大小(innodb_bu
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1