一键安装MySQL和frp并注册为服务适用于U盘

11 篇文章 0 订阅
4 篇文章 1 订阅

首先查看下目录结构 此教程适用于mysql 5.7.32 安装到D盘xfl目录

winsw下载链接 https://github.com/winsw/winsw

//注册服务
winsw.exe install
//卸载服务
winsw.exe uninstall
//启动服务
winsw.exe start
//停止服务
winsw.exe stop
//重启服务
winsw.exe restart
//查看状态
winsw.exe status

frp下载链接 https://github.com/fatedier/frp/releases 

mysql下载链接 https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.32-winx64.zip https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.32-win32.zip

下载完成按照上图目录结构 解压文件并改名

首先根目录创建winsw.xml

<service>
	<!-- 该服务的唯一标识 -->
    <id>frpc</id>
    <!-- 该服务的名称 -->
    <name>frpc</name>
    <!-- 该服务的描述 -->
    <description>frpc客户端 这个服务用 frpc 实现内网穿透</description>
    <!-- 要运行的程序路径 -->
    <executable>D:\xfl\frpc\frpc.exe</executable>
    <!-- 携带的参数 -->
    <arguments>-c D:\xfl\frpc\frpc.ini</arguments>
    <!-- 第一次启动失败 60秒重启 -->
    <onfailure action="restart" delay="60 sec"/>
    <!-- 第二次启动失败 120秒后重启 -->
    <onfailure action="restart" delay="120 sec"/>
    <!-- 日志模式 -->
    <logmode>append</logmode>
    <!-- 指定日志文件目录(相对于executable配置的路径) -->
    <logpath>logs</logpath>
</service>

然后创建install.bat

@echo off
chcp 65001
@REM %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
@REM cd /d "%~dp0"
title :::::::软件安装程序:::::::
if "%1" == "" (
	echo 请输入端口 
	goto success_exit
)
@rem /a表示进行数值运算
set /a a=4000,b=%1
set /a result=%a%+%b%
@REM 设置utf8解决乱码问题
@rem 保存当前路径
set currentPath=%~dp0
@rem 保存当前驱动器盘符
set currentDriver=%~d0
@rem 设置默认密码为xing
set mysql_default_pwd=xing
set mysql_default_port=3306
set mysql_service_name=mysql
@rem 安装的保存路径
set mysql_basedir=D:\xfl\mysql
set frpc_basedir=D:\xfl\frpc
@rem 判断64位系统和32位系统
if /i %PROCESSOR_IDENTIFIER:~0,3%==x86 (
    echo 当前系统为32位操作系统
    set mysql=%currentPath%mysql32
    set frpc=%currentPath%frp32
	set WinSW=%currentPath%WinSW-x86.exe
) else (
    echo 当前系统为64位操作系统
    set mysql=%currentPath%mysql64
    set frpc=%currentPath%frp64
	set WinSW=%currentPath%WinSW-x64.exe
) 

@REM @REM 移动frps
xcopy %frpc%  %frpc_basedir% /s/y
echo [common] > %frpc_basedir%\frpc.ini
echo server_addr = 120.**.**.133 >> %frpc_basedir%\frpc.ini
echo server_port = 7000 >> %frpc_basedir%\frpc.ini
echo authentication_method = token >> %frpc_basedir%\frpc.ini
echo token = liang >> %frpc_basedir%\frpc.ini
echo admin_addr = 127.0.0.1 >> %frpc_basedir%\frpc.ini
echo admin_port = 7400 >> %frpc_basedir%\frpc.ini
echo admin_user = admin >> %frpc_basedir%\frpc.ini
echo admin_pwd = admin >> %frpc_basedir%\frpc.ini
echo [%1] >> %frpc_basedir%\frpc.ini
echo type = tcp >> %frpc_basedir%\frpc.ini
echo local_ip = 127.0.0.1 >> %frpc_basedir%\frpc.ini
echo local_port = 3389 >> %frpc_basedir%\frpc.ini
echo remote_port = %result% >> %frpc_basedir%\frpc.ini

copy  %WinSW%  D:\xfl\winsw.exe
copy  %currentPath%winsw.xml  D:\xfl\winsw.xml
D:\xfl\winsw.exe install
D:\xfl\winsw.exe start 





@REM 移动mysql
xcopy %mysql%  %mysql_basedir% /s/y
rem 指定mysql的bin目录
set mysql_bin=%mysql_basedir%\bin
rem 指定存放数据的目录(注意必须是一个不存在的空目录)
set mysql_data=%mysql_basedir%\data
rem 指定自动生成的mysql配置文件
set mysql_ini_file=%mysql_basedir%\my.ini
set mysql_cnf_file=%mysql_basedir%\my.cnf
set mysql_install_bat=%mysql_basedir%\Install.bat
set mysql_uninstall_bat=%mysql_basedir%\UnInstall.bat
set mysql_start_bat=%mysql_basedir%\start.bat
set mysql_stop_bat=%mysql_basedir%\stop.bat
set mysql_reset_root_password_bat=%mysql_basedir%\reset_root_password.bat
set resetmysqlrootpwd=%mysql_basedir%\resetmysqlrootpwd.sql
if not exist "%mysql_bin%\mysqld.exe" (
	echo 请确认参数mysql_basedir,没找到%mysql_bin%\mysqld.exe
	goto error_exit
)

if not exist "%mysql_bin%\mysql.exe" (
	echo 请确认参数mysql_basedir,没找到%mysql_bin%\mysql.exe
	goto error_exit
)
echo 显示当前mysql版本号
"%mysql_bin%\mysql.exe" --version

if exist "%mysql_data%" (
	echo 请确认参数mysql_data=%mysql_data%,必须是一个不存在的空目录,当前检测到目录已经存在!
	goto :success_set
)
rem --initialize-insecure 是root没密码的初始化
rem --initialize 生成的root不清楚密码是什么样的
echo "%mysql_bin%\mysqld.exe" --initialize-insecure --user=mysql --basedir="%mysql_basedir%" --datadir="%mysql_data%"
"%mysql_bin%\mysqld.exe" --initialize-insecure --user=mysql --basedir="%mysql_basedir%" --datadir="%mysql_data%"
if %errorlevel% neq 0 (
	echo 初始化数据目录"%mysql_data%"错误!
	goto success_exit
)
rem SET PASSWORD FOR 'some_user'@'some_host' = PASSWORD('password');
rem SET PASSWORD FOR 'root'@'%' = PASSWORD('root123');
rem 启动时增加--skip-grant-tables参数就会跳过密码验证,可以操作数据,但不能重置密码
rem 修改密码用:mysqladmin -u root -h 127.0.0.1 -P 3306 password "root123"
echo "%mysql_bin%\mysqld.exe" --defaults-file="%mysql_ini_file%" --console

:success_set
rem ***************************************************************************
rem 处理ini路径参数ini_mysql_basedir
set replaceValue=
set curChar=
set newStrValue=%mysql_basedir%
echo %newStrValue%
:next_mysql_basedir
if not "%newStrValue%"=="" (
	set curChar=%newStrValue:~0,1%
	if "%curChar%"=="\" ( 
		set replaceValue=%replaceValue%\\
	)
	if not "%curChar%"=="\" (
		set replaceValue=%replaceValue%%curChar%
	)
    set newStrValue=%newStrValue:~1%
    goto next_mysql_basedir
)
if "%curChar%"=="\" ( 
	set curChar=\\
)
if not "%curChar%"=="\" (
	set replaceValue=%replaceValue%%curChar%
)
set ini_mysql_basedir=%replaceValue%
echo ini_mysql_basedir=%replaceValue%

rem ***************************************************************************
rem 处理ini路径参数ini_mysql_data
set replaceValue=
set curChar=
set newStrValue=%mysql_data%
:next_mysql_data
if not "%newStrValue%"=="" (
	set curChar=%newStrValue:~0,1%
	if "%curChar%"=="\" ( 
		set replaceValue=%replaceValue%\\
	)
	if not "%curChar%"=="\" (
		set replaceValue=%replaceValue%%curChar%
	)
    set newStrValue=%newStrValue:~1%
    goto next_mysql_data
)
if "%curChar%"=="\" ( 
	set curChar=\\
)
if not "%curChar%"=="\" (
	set replaceValue=%replaceValue%%curChar%
)
set ini_mysql_data=%replaceValue%
echo ini_mysql_data=%replaceValue%

rem 生成配置文件my.cnf
echo [client] > "%mysql_cnf_file%"
echo port=%mysql_default_port% >> "%mysql_cnf_file%"
echo character-sets-dir=%ini_mysql_basedir%\\share\\charsets >> "%mysql_cnf_file%"
echo default-character-set=utf8 >> "%mysql_cnf_file%"

rem 生成配置文件my.ini
echo [client] > "%mysql_ini_file%"
echo default-character-set=utf8 >> "%mysql_ini_file%"
echo port=%mysql_default_port% >> "%mysql_ini_file%"
echo [mysqld] >> "%mysql_ini_file%"
echo # set basedir to your installation path >> "%mysql_ini_file%"
echo basedir=%ini_mysql_basedir% >> "%mysql_ini_file%"
echo # set datadir to the location of your data directory >> "%mysql_ini_file%"
echo datadir=%ini_mysql_data% >> "%mysql_ini_file%"
echo character-set-server=utf8 >> "%mysql_ini_file%"
echo port=%mysql_default_port% >> "%mysql_ini_file%"
if "%mysql_ver:~0,1%" == "8" (
	echo # mysql8 >> "%mysql_ini_file%"
	echo default_authentication_plugin=mysql_native_password >> "%mysql_ini_file%"
)
echo %mysql_install_bat%
rem 生成注册安装windows服务批处理Install.bat
echo "%mysql_bin%\mysqld.exe" --install %mysql_service_name% --defaults-file="%mysql_ini_file%" > "%mysql_install_bat%"

rem 生成卸载服务批处理
echo net stop %mysql_service_name% > "%mysql_uninstall_bat%"
echo "%mysql_bin%\mysqld.exe" --remove %mysql_service_name% >> "%mysql_uninstall_bat%"

rem 生成启动服务批处理
echo net start %mysql_service_name% > "%mysql_start_bat%"

rem 生成停止服务批处理
echo net stop %mysql_service_name% > "%mysql_stop_bat%"

rem 生成重置密码批处理
echo "%mysql_bin%\mysqladmin.exe" -u root  -P %mysql_default_port% -p password "%mysql_default_pwd%" > "%mysql_reset_root_password_bat%"

echo 命令行启动:"%mysql_bin%\mysqld.exe" --defaults-file="%mysql_ini_file%" --console
echo 修改root密码:"%mysql_bin%\mysqladmin.exe" -u root  -P %mysql_default_port% password "%mysql_default_pwd%"
echo 命令行连接:"%mysql_bin%\mysql.exe" -uroot -p%mysql_default_pwd%  -P %mysql_default_port%
echo 安装服务:install.bat
echo 卸载服务:uninstall.bat
echo 启动服务:start.bat
echo 停止服务:stop.bat
echo 重置root密码:reset_root_password.bat

call "%mysql_install_bat%"
call "%mysql_start_bat%"
call "%mysql_reset_root_password_bat%"

ping 127.0.0.1 -n 3 > nul


:success_exit




默认密码和frpc的配置文件可在bat文件中更改 目录和上图一致后一管理员运行install.bat 

运行完毕查看服务是否开启

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值