【批处理】- 批处理自动安装Mysql与Redis
创始人
2025-05-30 07:57:29
0

在这里插入图片描述

前言

在全新环境中安装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=13306
basedir=D:\Desktop\tested\mysql-8.0.30 
datadir=D:\Desktop\tested\mysql-8.0.30\data 
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
[client]
port=13306
default-character-set=utf8

basedir:mysql解压所在的文件路径
datadir:数据存放的地址
注:要注意的是在输入路径地址的时候要使用’//’

3)、命令代码

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

①、设置安装路径

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

set cds=%~dp0
set mysql_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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
set str=%path%
echo 所有变量:%str%
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
③、安装mysql服务

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

:: 设置mysql服务名字:mysql82
set service_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 5
echo >>>>终止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 65001
title 安装MYSQL与Redis
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo 开始安装MYSQL8.0
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
set cds=%~dp0
set mysql_path=%cds%mysql-8.0.30
set redis_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 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
set str=%path%
echo 所有变量:%str%
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
echo >>>>正在安装MYSQL服务
echo.
:: 设置mysql服务名字:mysql82
set service_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 5
echo >>>>终止mysqld进程
taskkill /f /im mysqld.exenet start %service_name%
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo 启动MYSQL SERVICE,SERVICE NAME 》mysql82
echo.
echo 修改密码:root
echo.
echo >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
echo.
echo 安装redis
:: 设置redis服务名字:redis5
set redis_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

相关内容

热门资讯

电视安卓系统哪个品牌好,哪家品... 你有没有想过,家里的电视是不是该升级换代了呢?现在市面上电视品牌琳琅满目,各种操作系统也是让人眼花缭...
安卓会员管理系统怎么用,提升服... 你有没有想过,手机里那些你爱不释手的APP,背后其实有个强大的会员管理系统在默默支持呢?没错,就是那...
安卓系统软件使用技巧,解锁软件... 你有没有发现,用安卓手机的时候,总有一些小技巧能让你玩得更溜?别小看了这些小细节,它们可是能让你的手...
安卓系统提示音替换 你知道吗?手机里那个时不时响起的提示音,有时候真的能让人心情大好,有时候又让人抓狂不已。今天,就让我...
安卓开机不了系统更新 手机突然开不了机,系统更新还卡在那里,这可真是让人头疼的问题啊!你是不是也遇到了这种情况?别急,今天...
安卓系统中微信视频,安卓系统下... 你有没有发现,现在用手机聊天,视频通话简直成了标配!尤其是咱们安卓系统的小伙伴们,微信视频功能更是用...
安卓系统是服务器,服务器端的智... 你知道吗?在科技的世界里,安卓系统可是个超级明星呢!它不仅仅是个手机操作系统,竟然还能成为服务器的得...
pc电脑安卓系统下载软件,轻松... 你有没有想过,你的PC电脑上安装了安卓系统,是不是瞬间觉得世界都大不一样了呢?没错,就是那种“一机在...
电影院购票系统安卓,便捷观影新... 你有没有想过,在繁忙的生活中,一部好电影就像是一剂强心针,能瞬间让你放松心情?而我今天要和你分享的,...
安卓系统可以写程序? 你有没有想过,安卓系统竟然也能写程序呢?没错,你没听错!这个我们日常使用的智能手机操作系统,竟然有着...
安卓系统架构书籍推荐,权威书籍... 你有没有想过,想要深入了解安卓系统架构,却不知道从何下手?别急,今天我就要给你推荐几本超级实用的书籍...
安卓系统看到的炸弹,技术解析与... 安卓系统看到的炸弹——揭秘手机中的隐形威胁在数字化时代,智能手机已经成为我们生活中不可或缺的一部分。...
鸿蒙系统有安卓文件,畅享多平台... 你知道吗?最近在科技圈里,有个大新闻可是闹得沸沸扬扬的,那就是鸿蒙系统竟然有了安卓文件!是不是觉得有...
宝马安卓车机系统切换,驾驭未来... 你有没有发现,现在的汽车越来越智能了?尤其是那些豪华品牌,比如宝马,它们的内饰里那个大屏幕,简直就像...
p30退回安卓系统 你有没有听说最近P30的用户们都在忙活一件大事?没错,就是他们的手机要退回安卓系统啦!这可不是一个简...
oppoa57安卓原生系统,原... 你有没有发现,最近OPPO A57这款手机在安卓原生系统上的表现真是让人眼前一亮呢?今天,就让我带你...
安卓系统输入法联想,安卓系统输... 你有没有发现,手机上的输入法真的是个神奇的小助手呢?尤其是安卓系统的输入法,简直就是智能生活的点睛之...
怎么进入安卓刷机系统,安卓刷机... 亲爱的手机控们,你是否曾对安卓手机的刷机系统充满好奇?想要解锁手机潜能,体验全新的系统魅力?别急,今...
安卓系统程序有病毒 你知道吗?在这个数字化时代,手机已经成了我们生活中不可或缺的好伙伴。但是,你知道吗?即使是安卓系统,...
奥迪中控安卓系统下载,畅享智能... 你有没有发现,现在汽车的中控系统越来越智能了?尤其是奥迪这种豪华品牌,他们的中控系统简直就是科技与艺...