参考:http://www.cnblogs.com/kevinji/p/5520295.html
根据项目需要,前段时间在搞EMM系统各种安装包的自动化部署工作,主要包括一键安装和一键启动\停止功能。总结记录下来,以供后用。
本文主要是自动安装MySQL5.7.11版,Linux版脚本在CentOS7系统下测试通过。
流程如下:
a. 增加mysql用户和组
b. 检查系统是否安装有老版MySQL,如果有就卸载。
c.  卸载OS预装的Maria DB. 由于MariaDB与MySQL水火不容,须将系统预装的MariaDB卸载后再安装mysql.
b. 安装MySQL, 本次是采用RPM包的方式安装,相对简单些;当然也可以使用源码包编译安装,稍微耗时。
c. 修改配置文件my.ini,添加一条语句,增加UTF8字符支持。
d. 修改root用户密码及权限。先在my.ini文件中添加skip-grant-tables,使其跳过认证,然后无密码登陆数据库,配置密码和权限后,要把配置文件中刚才加入的skip-grant-tables注释掉,否则会报错。
e. 根据需要创建相应emm数据库及用户. 
f.  初始化数据库。
#!/bin/bash#created by Kevin 2016/03/30, modify 2016/04/20# -----------------------------------------------------------------------------
# Installation Script for the auto-deployment EMM(Linux edition)
# -----------------------------------------------------------------------------# -----------------------------------------------------------------------------
# shell script to install MySQL (default version mysql-community-5.7.11)echo "-----------------------start install mysql----------------------"# Add to mysql user and mysql groupif [ `grep "mysql" /etc/passwd | wc -l` -eq 0 ];then
echo "adding user mysql"
groupadd mysql
useradd -r -g mysql mysql
else
echo "mysql user is exist"
fi# check installed mysql or not
for i in `rpm -qa | grep "mysql"`
do
rpm -e --allmatches $i --nodeps
done# Remove pre-installed on OS MariaDB if existsfor i in $(rpm -qa | grep mariadb | grep -v grep)
doecho "Deleting rpm --> "$irpm -e --nodeps $i
done# Install mysqlserverrpm -ivh mysql-community-server-5.7.11-1.el7.x86_64.rpm mysql-community-client-5.7.11-1.el7.x86_64.rpm mysql-community-common-5.7.11-1.el7.x86_64.rpm mysql-community-libs-5.7.11-1.el7.x86_64.rpm# check the installtation was successful or not
rpm -qa |grep "mysql"
if [ $? != 0 ];then
echo "mysql install fail"| tee $mysql_instlog
exit 1
else
echo "mysql isntall success"| tee $mysql_instlog
fi# modify configuration files
cd /etc/
echo "character_set_server=utf8" >> my.cnf# startup the mysql
systemctl start mysqld
systemctl status mysqld
/etc/init.d/mysqld start
/etc/init.d/mysqld stopecho "MySQL Server install successfully!"# configuration
cat /etc/my.cnf
sed -i '/mysqld/a\skip-grant-tables' /etc/my.cnf
systemctl restart mysqld
# mysql -u root mysql
mysql -u root mysql -e "use mysql;"
# use mysql
# update mysql.user set authentication_string=password('root') where user='root' ;
mysql -u root mysql -e "update mysql.user set authentication_string=password('root') where user='root' ;"
mysql -u root mysql -e "flush privileges;"cat /etc/my.cnf
sed -i '/skip-grant-tables/s/^/#/' /etc/my.cnf
# mysql -u root -p
# SET PASSWORD = PASSWORD('root');
mysql -u root -proot --connect-expired-password -e "SET PASSWORD = PASSWORD('root');"# mysql -u root mysql
# use mysql;
mysql -u root -proot -e "use mysql;"
# update user set host = '%' where user ='root';
mysql -u root -proot -e "update user set host = '%' where user ='root';"
# select host, user from user;
mysql -u root -proot -e "select host, user from user;"
# exitmysql -u root -proot -e "source /usr/src/tools/user.sql;"
mysql -u root -proot -e "source /usr/src/tools/emm_saas_base.sql;"
# create a new database, name as "emm_saas_base"
# mysql -u root -p
# create database emm_saas_base;
# mysql -u root -proot -e "create database emm_saas_base;"
# show databases;
# mysql -u root -proot -e "show databases;"# initdb
# for x in find . -name "*.sql"
# do source emm_saas_base.sql
# done# create user & authentication
# mysql -u root -p
# CREATE USER 'emm'@'%' IDENTIFIED BY 'emm';
# GRANT ALL ON *.* TO 'emm'@'%';# show user in the DB
# select host,user from mysql.user;
mysql -u root -proot -e "select host,user from mysql.user;"echo "The MySQL install and config complete! "
Windows .bat版本:
@echo off
:: created by Kevin Ji 2016/04/08,modify 2016/05/18
:: -----------------------------------------------------------------------------
:: Installation Script for the auto-deployment EMM(Windows edition-copy)
:: -----------------------------------------------------------------------------
:: Modify EMM_Install script code for windows edition. Add to automatic configure install directory feature.
:: creat an source package directory,name as "EMM_SRC" and an destination install directory,name as "EMM_DEST".md C:\EMM_SRC
md C:\EMM_DEST:: ------------Install MySQL----------------------------------
C:
cd C:\EMM_SRC
start winrar x -r %cd%\mysql-5.7.11-winx64.zip C:\EMM_DEST
pause :: ------------Config MySQL environment variable---------------
rem set MYSQL_HOME=C:\mysql-5.7.11-winx64
rem set PATH=%PATH%;C:\mysql-5.7.11-winx64\bin
setx /M MYSQL_HOME C:\EMM_DEST\mysql-5.7.11-winx64
setx /M PATH %PATH%;C:\EMM_DEST\mysql-5.7.11-winx64\bin:: ------------MySQL installation and initialization------------
xcopy %cd%\user.sql C:\EMM_DEST\mysql-5.7.11-winx64\bin\
xcopy %cd%\emm_saas_base.sql C:\EMM_DEST\mysql-5.7.11-winx64\bin\
C:
cd C:\EMM_DEST\mysql-5.7.11-winx64\bin
mysqld -install
cd C:\EMM_DEST\mysql-5.7.11-winx64\bin
mysqld --initialize :: ------------modify MySQL configuration file-------------------------
C:
cd C:\EMM_DEST\mysql-5.7.11-winx64\
rename C:\EMM_DEST\mysql-5.7.11-winx64\my-default.ini my.ini
echo character_set_server=utf8 >> my.ini
xcopy %cd%\my.ini C:\ /e /i /y:: ------------modify MySQL-root password------------------------------
net stop mysql
echo skip-grant-tables >> my.ini
ping -n 2 127.0.0.1 >nul
taskkill /F /IM mysqld.exenet start mysql
cd C:\EMM_DEST\mysql-5.7.11-winx64\bin
mysql -e "use mysql"
mysql -e "update mysql.user set authentication_string=password('root') where user='root' ;"
mysql -e "flush privileges;"cd C:\EMM_DEST\mysql-5.7.11-winx64\
rename my.ini myold.ini
cd C:\
xcopy C:\my.ini C:\EMM_DEST\mysql-5.7.11-winx64\:: ------------restart MySQL service-------------------------------
:: taskkill /F /IM mysqld.exe
net start mysql:: ------------Initialization DB-----------------------------------
cd C:\EMM_DEST\mysql-5.7.11-winx64\
echo [client] >> my.ini
echo user=root >> my.ini
echo password=root >> my.ini
cd C:\EMM_DEST\mysql-5.7.11-winx64\bin
mysql --connect-expired-password -e "SET PASSWORD = PASSWORD('root');"
mysql --connect-expired-password -uroot -proot < C:\EMM_DEST\mysql-5.7.11-winx64\bin\user.sql
mysql --connect-expired-password -e "use emm_saas_base;"
mysql --connect-expired-password -uroot -proot < C:\EMM_DEST\mysql-5.7.11-winx64\bin\emm_saas_base.sql
pause
echo MySQL Install and configuration complete
linux的比较多:这个就是
https://github.com/Ainew/Auto-Install-Mysql/blob/master/install_mysql.sh

至此完结。

自动化运维——一键安装MySQL相关推荐

  1. 自动化运维之 安装部署 Ansible 服务

    Ansible 概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护使得工作效率低下.这是,部署自动化运维就可以尽可能的安全.高效地完成 ...

  2. MySQL的性能优化及自动化运维实践与Mysql高并发优化

    首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 DBA 的功能. 了解这些功能以后要对体系结构有更加深入的了解,你不知道怎 ...

  3. Ansible自动化运维的安装及常用模块解释

    (一)前言: Ansible是今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误.Ansible通过本身集成的非常丰富的模块可以实现各 ...

  4. Ansible自动化运维的安装及常用模块详解

    Ansible作为今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误.Ansible通过本身集成的非常丰富的模块可以实现各种管理任务, ...

  5. saltstack自动化运维部署--安装apache\原码安装nginx服务

    对saltstack自动化运维部署的认识 原理 SaltStack 是一种基于 C/S 架构的服务器基础架构集中化管理平台,管理端称为 Master,客户端称为 Minion.SaltStack 具备 ...

  6. mysql 安装 运维_MySQL自动化运维之安装篇

    MySQL安装一般使用RPM或者源码安装的方式. RPM安装的优点是快速,方便.缺点是不能自定义安装目录.如果需要调整数据文件和日志文件的存放位置,还需要进行一些手动调整 源码安装的优点是可以自定义安 ...

  7. 自动化运维saltstack 安装部署以及一键部署实现负载均衡

    saltstack介绍 SaltStack是一个服务器基础架构集中化管理平台,SaltStack基于Python语言实现,也是基于C/S架构,结合轻量级消息队列(ZeroMQ)与Python第三方模块 ...

  8. saltstack自动化运维一键部署rpm安装httpd和源码安装nginx

    配置环境:rhel6.5 server1:172.25.254.1 master server2:172.25.254.2 minion server3:172.25.254.3 minion 一.安 ...

  9. Ansible自动化运维工具安装及使用

    <--目录--> 1)Ansible介绍 2)安装 3)Hosts配置 4)Ansible.cnf配置 5)Ansible的七个命令 6)命令行使用Ansile方法总结 7)Ad-hoc与 ...

最新文章

  1. Windows下Python 3.6 安装BeautifulSoup库
  2. QueryBuildRange中的表达式
  3. group by的使用
  4. mysql.createPool(db),Node.js中JavaScript操作MySQL的常用方法整理
  5. mysql syntaxerror_解析bitronix连接MySQL出现MySQLSyntaxErrorException错误的解决方法
  6. 微信小程序API之showActionSheet(操作菜单)
  7. android launcher3 home页简易分析
  8. STM32 使用SPI读写FLASH(W25Q64型号)
  9. 下载qq付费音乐的demo
  10. 计算机音乐我还是曾经那个少年,我还是从前那个少年是什么歌
  11. typora 自动添加标题序号
  12. MySQL 视图(详解)
  13. Win10专业版启用.NET FrameWork 3.5
  14. 青少年中医药文化教育功在当代利在千秋
  15. 保护环境的画用计算机怎么画,保护环境的画简笔画
  16. 中止执行后超过2年_执行中止。债权人是否两年内都要申请执行一次。如果中止执行两年内不申请执行,是否都再也执行不了...
  17. 3.29 判断电脑无线网卡是否支持5GHz频段
  18. Python的10086查询系统模拟
  19. 嵌入式操作系统的基本概念
  20. java构造方法时对象初始化,实例化,参数赋值

热门文章

  1. 专题 17 SOCKET并发程序设计
  2. oracle两表链接序列跳序,Oracle学习之 序列(Sequence)
  3. python数据分析类库_python数据分析类库系列-Pandas入门之数据结构Series
  4. 钉钉接入access_无需开发,IT事件接入钉钉的方法详解
  5. linux 打开telnet登录,linux开启telnet
  6. 安徽大学计算机科学与技术复试线,安徽大学计算机考研报录比及分数线
  7. 配置linux终端主题需要密码,Mac/Ubuntu下终端色彩主题设置
  8. Spring MVC中处理Request和Response的策略
  9. 这个第三方登录开源工具,支持市面上几乎所有主流平台!好用!
  10. Java 17 将至,可能带来哪些新特性呢?