【批处理】- 批处理自动安装Mysql与Redis

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 在全新环境中安装MySQL与Redis操作是挺麻烦的,于是就想使用脚本来自动安装,使用批处理进行一步到位的安装,后面还能使用工具进行打包成exe可执行文件,一键安装,最后能够更好的部署项目到windows系统的服务器。

批处理自动安装.jpg

前言

在全新环境中安装MySQL与Redis操作是挺麻烦的,于是就想使用脚本来自动安装,使用批处理进行一步到位的安装,后面还能使用工具进行打包成exe可执行文件,一键安装,最后能够更好的部署项目到windows系统的服务器。

代码与实现

本次是安装mysql8.0和redis5.0,安装在windows系统。

整体思路

流程很简单,需要获取安装的路径,文件所在路径,配置环境变量,安装服务,修改mysql密码。接下来一步一步解析。

安装mysql

1)、下载mysql压缩包

首先需要下载免安装的MySQL压缩包,https://dev.mysql.com/downloads/mysql/

下载完后解压,就会看到以下目录,接下来我们需要创建data文件 以及 my.ini的配置文件

2)、添加配置文件my.ini

当然,配置文件也是可以通过dos指令输入进去的,只是为了方便,我们这里可以通过事先配置好存放进去,详细配置可以看如下:

[mysql]
default-character-set=utf8
[mysqld]
port=13306basedir=D:\\Desktop\\tested\\mysql-8.0.30 
datadir=D:\\Desktop\\tested\\mysql-8.0.30\\data 
max_connections=200max_connect_errors=10character-set-server=utf8
default-storage-engine=INNODB
[client]
port=13306default-character-set=utf8

basedir:mysql解压所在的文件路径

datadir:数据存放的地址

注:要注意的是在输入路径地址的时候要使用'//'

3)、命令代码

前置工作准备完成,接下来就可以看一下批处理命令。

①、设置安装路径

首先就是对变量的过去与设置

setcds=%~dp0
setmysql_path=%cds%mysql-8.0.30
%~dp0:获取当前的路劲地址(绝对路径)
②、配置环境变量

将mysql\bin下的路径设置到path环境变量里面,后面是输出此时path的环境变量,以下代码包括设置了redis的环境变量。

echo 配置环境变量
echo.
setx path "%redis_path%;%mysql_path%\bin;%path%" /m
IF ERRORLEVEL 1 (
echo.
echo 配置环境变量失败,即将退出
echo.
goto END
)
echo.
echo 打印环境变量
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
setstr=%path%
echo 所有变量:%str%
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
③、安装mysql服务

先设置MySQL服务的名字,为了防止存在相同的服务,将设置好的服务名称的服务通过net stop %service_name%停掉,并且将mysql的data删除(这部需要谨慎处理),接着对mysql进行初始化,接着通过mysqld.exe去安装服务。

:: 设置mysql服务名字:mysql82
setservice_name=mysql82
net stop %service_name%
echo >>>>删除原DATA
:: 删除原本的MySQL数据
rd /s /q %mysql_path%\data
echo >>>>删除原MYSQL服务
%mysql_path%\bin\mysqld.exe --remove %service_name%
echo >>>>初始化DATA
md %mysql_path%\data
echo >>>>安装MYSQL SERVICE
%mysql_path%\bin\mysqld.exe --initialize--user=mysql --console%mysql_path%\bin\mysqld.exe --install %service_name%
④、修改密码

mysql8.0之后的版本,不能通过修改mysql.user 表来修改用户密码,取消了password函数,使用authentication_string=password("123456")去修改密码会报错。按照只是用解压缩+配置文件.ini来安装是需要先通过初始化之后生成的随机临时密码登录,在进行修改密码。对于这个修改密码,我也是找了很久,看了很多篇文章,最后发现了解决方案。

解决办法:

首先有一种,通过mysqld --console --skip-grant-tables --shared-memory的方法启动服务器,在是使用修改密码命令去改变密码。可是,这种在使用批处理的时候遇到了许多问题,因为是新手,对指令这些逻辑还不是很清楚,因为使用这种方式启动MySQL,原来的思路是,等它启动服务后,用新的命令窗口去执行修改密码,接着关闭新窗口往下继续进行,但是会出现这条启动服务的任务不会自动完成。通过跳过密码验证就会使得无法往下继续执行,需要使用新的窗口来进行修改密码。这也就会导致接下来的命令就会无法执行。

接着后面使用第二种方式,需要在外部新建一个配置文件,用来进行修改密码的。使用-init-file重置MySQL Root密码。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

思路也很简单,只要使用新的窗口来执行这条语句,在把这个新的窗口关掉,就能够恢复初始窗口继续执行。

start"更改密码" cmd /c "%mysql_path%\bin\mysqld.exe --user=mysql --init-file=%cds%init-file.ini --console"timeout /t 5echo >>>>终止mysqld进程
taskkill /f /im mysqld.exe

start:执行命令,”更改密码“是命令窗口的标题,后面是使用mysqld

timeout /t 5 :倒计时5秒

taskkill /f /im mysqld.exe:杀死这个进程

详细方案可以看一下这位大佬写的,我的灵感也是得之于他:如何在MySQL 8.0中重置Root密码 - 腾讯云开发者社区-腾讯云

⑤、按照完毕

安装完毕就可以去执行启动mysql服务

net start %service_name%

安装redis

安装redis就更简单了,就直接使用安装指令就行

cd /d%redis_path%
redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose
echo 启动redis服务
redis-server.exe --service-start--service-name %redis_server_name%

代码附件

以下是所有的代码

@echo off
chcp 65001title 安装MYSQL与Redis
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo 开始安装MYSQL8.0
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
setcds=%~dp0
setmysql_path=%cds%mysql-8.0.30
setredis_path=%cds%Redis5.0
echo.
echo 数据库安装路径:%mysql_path%
echo Redis安装路径:%redis_path%
echo.
echo 配置环境变量
echo.
setx path "%redis_path%;%mysql_path%\bin;%path%" /m
IF ERRORLEVEL 1 (
echo.
echo 配置环境变量失败,即将退出
echo.
goto END
)
echo.
echo 打印环境变量
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
setstr=%path%
echo 所有变量:%str%
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
echo >>>>正在安装MYSQL服务
echo.
:: 设置mysql服务名字:mysql82
setservice_name=mysql82
net stop %service_name%
echo.
echo >>>>删除原DATA
echo.
:: 删除原本的MySQL数据
rd /s /q %mysql_path%\data
echo.
echo >>>>删除原MYSQL服务
echo.
%mysql_path%\bin\mysqld.exe --remove %service_name%
echo.
echo >>>>初始化DATA
echo.
md %mysql_path%\data
echo.
echo >>>>安装MYSQL SERVICE
echo.
%mysql_path%\bin\mysqld.exe --initialize--user=mysql --console%mysql_path%\bin\mysqld.exe --install %service_name%
echo >>>>关闭mysql服务
net stop %service_name%
:: 修改密码
echo >>>>执行更改密码
start"更改密码" cmd /c "%mysql_path%\bin\mysqld.exe --user=mysql --init-file=%cds%init-file.ini --console"timeout /t 5echo >>>>终止mysqld进程
taskkill /f /im mysqld.exe
net start %service_name%
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo 启动MYSQL SERVICE,SERVICE NAME 》mysql82
echo.
echo 修改密码:root
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
echo 安装redis
:: 设置redis服务名字:redis5
setredis_server_name=redis5
echo.
echo ****正在安装REDIS服务****
echo.
echo 停止原REDIS服务
echo.
net stop %redis_server_name%
echo 删除redis服务
sc delete %redis_server_name%
echo.
cd /d%redis_path%
redis-server.exe --service-install redis.windows.conf --service-name %redis_server_name% --loglevel verbose
echo 启动redis服务
redis-server.exe --service-start--service-name %redis_server_name%
:END
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
7天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
63 24
|
8天前
|
NoSQL 算法 Redis
docker高级篇(大厂进阶):安装redis集群
docker高级篇(大厂进阶):安装redis集群
61 24
|
15天前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
84 26
|
1天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
39 7
|
1天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
1月前
|
存储 NoSQL 关系型数据库
MySQL和Redis的区别
**MySQL和Redis的区别** MySQL和Redis都是流行的数据存储解决方案,但它们在设计、用途和特性上有显著区别。理解这些区别有助于选择合适的数据库来满足不同的应用需求。本文将详细介绍MySQL和Redis的区别,包括它们的架构、使用场景、性能和其他关键特性。 ### 一、基本概述 **MySQL**: MySQL是一个关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据管理。它支持事务、复杂查询和多种存储引擎,广泛应用于各种Web应用、企业系统和数据分析项目。 **Redis**: Redis是一个基于内存的键值数据库,通常被称为NoSQL数
83 4
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
61 4
|
2天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
10 3
|
2天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
14 3
|
2天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
20 2

推荐镜像

更多