windows环境下把mysql、reids、nginx、jdk、jar打成setup

环境准备

下载inno setup用于把mysql、reids、nginx、jdk、jar压缩称exe安装文件,需要了解inno setup和winsw

https://jrsoftware.org/isinfo.php

下载winsw用于启动nginx、jar服务。

https://github.com/winsw/winsw

文件目录

在这里插入图片描述
在这里插入图片描述

mysql配置

在这里插入图片描述

以mysql5.7为例:
  1. 配置my.ini文件
[mysqld]
# 设置9002端口 端口随意修改不冲突就行 
port=9002
# 设置mysql的安装目录 
basedir=C:\Users\Administrator\Desktop\mysql\mysql-5.7
# 设置mysql数据库的数据的存放目录 
datadir=C:\Users\Administrator\Desktop\tt\mysql\mysql-5.7\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎 
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证 
default_authentication_plugin=mysql_native_password
# sql-mode sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# skip-grant-tables 
[mysql]
# 设置mysql客户端默认字符集 
default-character-set=utf8 [client]
# 设置mysql客户端连接服务端时默认使用的端口 
port=9002 default-character-set=utf8

2.编写安装mysql install.bat脚本(所谓的批处理就是window的命令集)相当于把安装mysql的命令集合到一起执行

::作用是在批处理文件执行期间关闭命令输出的显示.
@echo off
::查询mysql是否在运行
sc query mysql_service >nul 2>nul
if %errorlevel% equ 1060 (
	::用于将当前工作目录更改为批处理脚本所在的目录
	cd /d %~dp0 
	::初始化命令
	"%cd%\bin\mysqld.exe" --initialize-insecure --user=mysql --console
	echo -----mysql init succee-----
	:: 安装命令
	"%cd%\bin\mysqld.exe" install mysql_service
	echo -----mysql service install succee-----
	::启动mysql服务
	net start mysql_service
	echo loading...
	::2秒后执行
	timeout /t 2 >nul
	::这个命令会通过 mysqladmin 工具连接到 MySQL 数据库,并使用 root 用户身份执行密码设置操作。
	"%cd%\bin\mysqladmin" -u root password 123456
	timeout /t 1 >nul
	::初始化sql
	initSql.bat
	echo created
) else (
    echo Mysql Service installed
)

3.初始化sql脚本 initSql.bat

@echo off
::获取sql文件绝对路径
set p=%cd%
::执行sql文件
%cd%\bin\mysql.exe -uroot -p123456 -h 127.0.0.1 -P 9002  < %p%\sql\createDB.sql
%cd%\bin\mysql.exe -uroot -p123456 -h 127.0.0.1 -P 9002 ry_vue < %p%\sql\data.sql
echo created

4.卸载脚本 uninstall.bat

echo 停止并删除数据库
net stop mysql_service

sc delete mysql_service

taskkill /F /IM mysqld.exe

5.inno setup配置 打开inno setup 新建一个文件.iss

[INI]
;初始化数据库配置文件 如果要修改mysql的端口和数据保存路径在此修改,修改端口别忘了修改初始化 initSql.bat中的端口 
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql\mysql-5.7"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql\mysql-5.7\data"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"port"; String:"3306"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"client";Key:"port"; String:"3306"

; 程序安装成功后按顺序执行以下脚本
[Run]     
Filename: "{app}\mysql\mysql-5.7\install.bat";
 ; 程序卸载按顺序执行以下脚本
[UninstallRun]
Filename: "{app}\mysql\mysql-5.7\bin\uninstall.bat";RunOnceId:"MysqlId"

redis配置

在这里插入图片描述

1.install.bat脚本

@echo off
REM Check if the service is installed
sc query redis>nul 2>nul
if %errorlevel% equ 1060 (
	echo installing...
	redis-server.exe --service-install redis.windows.conf
	echo 缓存服务启动中
	redis-server.exe --service-start
	ping -n 3 127.1>nul
	echo running...
) else (
echo Redis Service installed 
)

2.uninstall.bat脚本

@echo off 
echo uninstalling...
redis-server.exe --service-stop
redis-server.exe --service-uninstall
ping -n 3 127.1>nul
echo Redis uninstalled 

3.iss文件

;程序安装成功后按顺序执行以下脚本
[Run]     
Filename: "{app}\Redis3.0\redis\install.bat"; 
;程序卸载按顺序执行以下脚本
[UninstallRun]
Filename: "{app}\Redis3.0\redis\uninstall.bat"; RunOnceId:"ReidsId"

nginx配置

在这里插入图片描述

1.把下载的winsw复制到nginx目录下修改名称nginx-service.exe
2.创建nginx-service.exe.config文件,内容如下(nginx-service.exe和.config名称一样)

<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" />
  </startup>
  <runtime>
    <generatePublisherEvidence enabled="false"/> 
  </runtime>
</configuration>

3.创建nginx-service.xml文件(注:xml文件的名称要和nginx-service.exe文件的名称保持一致)

<service>
<!-- 服务的id唯一 net start nginx 启动服务 -->
  <id>nginx</id>
  <!-- 服务的名称 -->
  <name>ANginx Service</name>
  <!-- 服务的描述 -->
  <description>High Performance Nginx Service</description>
  <!-- 日志路径 -->
  <logpath>ANginxServiceLog\logs</logpath>
  <log mode="roll-by-size">
    <sizeThreshold>10240</sizeThreshold>
    <keepFiles>8</keepFiles>
  </log>
  <!-- 在net start nginx时 启动所执行的命令,.bat,.exe文件等等 -->
 <executable>nginx.exe</executable>
 <!-- 参数-->
  <arguments></arguments>
</service>

4.创建install.bat(安装)

@echo off
REM Check if the service is installed
sc query nginx >nul 2>nul
if %errorlevel% equ 1060 (
	:: 把nginx安装到服务中 打开系统服务会存在 为ANginx Service的名称
	nginx-service.exe install
	echo loading...
	timeout /t 2 >nul
	::启动nginx服务
	net start nginx
) else (
    echo Nginx Service installed
)

5.创建uninstall.bat(卸载)

@echo off
::关闭nginx服务
net stop nginx
::结束nginx进程
taskkill /F /IM nginx.exe
::卸载nginx服务
nginx-service.exe uninstall

jdk配置

在这里插入图片描述

1.创建install.bat文件

@echo off
java -version
if %errorlevel% == 0 (
    echo 检测到已安装 JDK,直接跳过该步骤
    goto END
) else (
    echo 无法运行 java,请检查配置。
    echo %errorlevel%
    goto INSTALL
)
:INSTALL
set current_directory=%CD%
#::添加到环境变量中
set JAVA_HOME=%current_directory%\jdk1.8.0_181
set PATH=%PATH%;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
#::添加注册表中
set "RegV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
reg add "%RegV%" /v "JAVA_HOME" /d "%JAVA_HOME%" /f
reg add "%RegV%" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /f
reg add "%RegV%" /v "CLASSPATH" /d "%CLASSPATH%" /f
::mshta vbscript:msgbox("Java环境已成功注册!",64,"成功")(window.close)
echo Java环境已成功注册!
#-Dfile.encoding=utf-8
exit
:END
exit

2.创建uninstall.bat文件

@echo off

REM 检查是否已经安装了 Java
java -version
if %errorlevel% == 0 (
    REM JDK 已安装,开始卸载
    echo 检测到已安装 JDK,开始卸载...
    echo 进行卸载操作,请稍等...
    set current_directory=%CD% 
    REM 删除 Java 安装目录
    rmdir /s /q %current_directory\jdk1.8.0_181%
    REM 删除 Java 相关注册表项
    reg delete "HKLM\SOFTWARE\JavaSoft" /f
    REM 清除 Java 相关环境变量
    setx -m JAVA_HOME ""
    echo JDK 和 JRE 已成功卸载。
    goto END
) else (
    REM JDK 未安装,直接退出
    echo 未安装 JDK,无需卸载。
    goto END
)
:END
exit

3.iss配置

; 程序安装成功后按顺序执行以下脚本
[Run]     
Filename: "{app}\jdk\install.bat"; 

 ; 程序卸载按顺序执行以下脚本
[UninstallRun]
Filename: "{app}\jdk\uninstall.bat";RunOnceId:"JdkId"

jar配置

在这里插入图片描述

1.把下载的winsw复制到jar目录下修改名称,创建.config文件,和.xml文件(参考nginx)。

.xml
<service>
<!-- 唯一服务ID -->
<id>equip</id>
<!-- 显示服务的名称 -->
<name>AEquip Service</name>
<!-- 服务描述 -->
<description>High Performance Equip Service</description>
<!-- 日志路径 -->
<logpath>AEquipServiceLog\logs</logpath>
<!-- 日志模式-->
<log mode="roll-by-size">
  <sizeThreshold>10240</sizeThreshold>
  <keepFiles>8</keepFiles>
</log>
<executable>java</executable>
<arguments>-jar equip.jar</arguments>
</service>

2.创建install.bat

@echo off
equip.exe install
echo loading...
timeout /t 1 >nul
net start equip

3.创建iunnstall.bat

net stop equip
@echo off
echo uninstalling...
timeout /t 1 >nul
equip.exe uninstall

4.iss配置

; 程序安装成功后按顺序执行以下脚本
[Run]     
Filename: "{app}\jar\install.bat";   
 ; 程序卸载按顺序执行以下脚本
[UninstallRun]
Filename: "{app}\jar\uninstall.bat"; RunOnceId:"JarId"

完整.iss文件

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName ""        
#define MyAppVersion ""           
#define MyAppPublisher ""
#define MyAppURL ""
 
; 基本配置
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
; 单独标识,可以通过 工具自动生成    点击工具--- 生成GUID
AppId={{1D2B5F25-0DFA-4E29-802C-41962B818B9F}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
; 默认安装路径
DefaultDirName=D:\BJJS\program
DefaultGroupName={#MyAppName}
; 打包后的软件名称
OutputBaseFilename=test
; 打包后的软件图标
SetupIconFile=C:\Users\root\Desktop\tt\org\logo4.ico
; 压缩方式  
Compression=lzma
; yes 可以使文件更小
SolidCompression=yes
; 必需有管理员权限才能安装
PrivilegesRequired=admin
; 安装密码
;Password=itdragon
; 开启加密,可能还需要一个dll文件
;Encryption=yes
 
; 语言配置 
[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
 
; 安装文件
[Files]
; 安装部署的源文件路径
 Source: "C:\Users\root\Desktop\tt\org\*"; DestDir: "{app}";Flags:  recursesubdirs createallsubdirs
 
; 快捷键
[Icons]
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
;安装完成后做桌面会生成快捷图标 
Name: "{commondesktop}\{#MyAppName}"; Filename: {app}\equ.exe

[INI]
;初始化数据库配置文件 如果要修改mysql的端口和数据保存路径在此修改,修改端口别忘了修改初始化 initSql.bat中的端口 
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"basedir"; String:"{app}\mysql\mysql-5.7"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"datadir"; String:"{app}\mysql\mysql-5.7\data"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"mysqld";Key:"port"; String:"3306"
Filename:"{app}\mysql\mysql-5.7\my.ini";Section:"client";Key:"port"; String:"3306"

; 程序安装成功后按顺序执行以下脚本
[Run]     
Filename: "{app}\mysql\mysql-5.7\install.bat";
Filename: "{app}\jdk\install.bat"; 
Filename: "{app}\Redis3.0\redis\install.bat"; 
Filename: "{app}\jar\install.exe";   
Filename: "{app}\nginx\nginx-1.25.1\install.bat"; 

 ; 程序卸载按顺序执行以下脚本
[UninstallRun]
Filename: "{app}\nginx\nginx-1.25.1\uninstall.bat";RunOnceId:"NginxId"
Filename: "{app}\jar\uninstall.bat"; RunOnceId:"JarId"
Filename: "{app}\Redis3.0\redis\uninstall.bat"; RunOnceId:"ReidsId"
Filename: "{app}\jdk\uninstall.bat";RunOnceId:"JdkId"
Filename: "{app}\mysql\mysql-5.7\bin\uninstall_mysql.bat";RunOnceId:"MysqlId"

;卸载程序删除除用 [Files][Dirs]
[UninstallDelete]
Type: files; Name: "{app}\org\logo4.ico"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值