吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1754|回复: 21
收起左侧

[其他原创] 写了一个windows下自动安装 解压版mysql8的脚本

  [复制链接]
初出江湖的Ryan 发表于 2024-1-13 23:49


由于mysql 8的 MSI 安装包,自动把程序安装到了C盘,小弟没看到有可以更改安装位置的配置可以修改。故自行写了一个脚本,用来安装mysql 8的压缩包。可以将 mysql 8 以及其 Data目录 安装到C盘以外的位置。


第一次写 bat 脚本,希望各位大佬多赐教!



[Asm] 纯文本查看 复制代码
@echo off
:: 设置将要生成的文件的路径
set base_dir=%cd%
set data_dir=%base_dir%\Data
set myini_file=%base_dir%\my.ini
set Uploads_dir=%base_dir%\Uploads

:: 设置一些变量默认值
set agree=Y
set data_is_empty=0
set is_gen_start_file=N
set is_install_service=N
set is_clear_datadir=N
set is_add_path=N

:: 判断脚本当前所在的位置
%cd%/bin/mysql.exe --version >nul
if not %errorlevel%==0 (
    echo 脚本执行结束,请将此脚本移动到mysql程序的根目录下再执行(跟bin目录同一级目录)
    goto end
)

:: 打印程序安装说明
echo 使用说明:
echo 使用此脚本安装mysql时,会将保存数据的Data目录以及my.ini文件放在MySQL程序的根目录下:
echo %base_dir%
echo 可以修改此脚本的路径变量进行重新指定路径
set /p agree=如果同意,按任意键继续,按q键退出:
if /i %agree%==Q (
    echo 退出安装
    goto end
) else if /i not %agree%==Q (
    echo 脚本开始安装mysql.......
)

:: 生成my.ini配置文件
if not exist %myini_file% (
    echo [mysqld] >> %myini_file%
    echo basedir=%cd% >> %myini_file%
    echo datadir=%data_dir% >> %myini_file%
    echo secure-file-priv=%cd%\Uploads >> %myini_file%
    echo 生成my.ini文件:%myini_file%
) else (
    echo %myini_file%文件已存在,即将使用该配置文件
)

:: 创建 Uploads 目录
if not exist %Uploads_dir% (
    md %Uploads_dir%
    echo 创建Uploads目录:%Uploads_dir%
) else (
    echo %Uploads_dir%目录已存在,跳过创建
)

:: 创建 Data 目录
:md_data_dir
if not exist %data_dir% (
    md %data_dir%
    echo 创建Data目录:%data_dir%
    :: 创建了目录后,直接进行安装
    goto initialize_data
) else (
    goto data_dir_check
)

:: 如果Data目录已存在,则检查Data目录是否为空
:data_dir_check
for /f "tokens=* delims=" %%i in ('dir /b /a "%data_dir%"') do (
    set /p is_clear_datadir=%data_dir%目录已存在,并且目录不为空,是否清空Data目录(N不清空,Y清空):
    goto clear_datadir
)

if %data_is_empty%==0 (
    echo %data_dir%为空,即将初始化Data目录进行安装
    goto initialize_data
)

:clear_datadir
if /i %is_clear_datadir%==Y (
    echo 正在清空%data_dir%
    rd /s /q %data_dir%
    goto :md_data_dir
) else if /i %is_clear_datadir%==N (
    echo 跳过清空Data目录,即将进行不初化安装
    goto :install_service
) else (
    goto :data_dir_check
)

:initialize_data
echo 正在初始化Mysql....
%base_dir%/bin/mysqld.exe --defaults-file=%myini_file% --initialize-insecure --console
echo MySQL初始化完毕!
echo ===================================================
echo 注意!root用户的密码为空!
echo ===================================================

:need_install_service
set /p is_install_service=是否需要将MySQL设置成为windows系统服务(需要管理员身份)(Y/N,默认N):
if /i %is_install_service%==Y (
    goto install_service
) else if /i %is_install_service%==N (
    echo 已选择无须将MySQL设置为系统服务
    goto gen_start_file
) else (
    goto need_install_service
)

:install_service
echo 正在将检查windows服务......
:: sc query  type^= all ^| findstr /i "SERVICE_NAME"
for /F "tokens=2" %%i in (' sc query type^= service state^= all ^| findstr /i "MySQL" ^| findstr /i "SERVICE_NAME" ') do ( 
    for /F "tokens=* delims=" %%s in ('sc qc %%i ^| findstr /i "BINARY_PATH_NAME"' ) do (
        echo %%s | find /i "%base_dir%" > NUL &&  echo MySQL已经是Windows系统服务 & goto gen_start_file
    )
)
echo 正在将MySQL注册成为Windows系统服务......
%base_dir%/bin/mysqld.exe --install MySQL8 --defaults-file=%myini_file%
sc config MySQL8 start=demand

:gen_start_file
set /p is_gen_start_file=是否需要在bin目录下生成一键启动脚本mysqld_start(Y/N,默认N):
if /i %is_gen_start_file%==Y (
    echo mysqld.exe --defaults-file=%myini_file% --console > %base_dir%/bin/mysqld_start.bat
) else (
    echo 已选择不生成一键启动脚本。
)

:: 添加到用户级的环境变量
set /p is_add_path=是否需要将MySQL添加到环境变量(Y/N,默认N):
if /i %is_add_path%==N (
    echo 已跳过添加MySQL到环境变量
) else (
    set path | find /i "%base_dir%\bin" > nul || setx PATH "%PATH%;%base_dir%\bin" 
    echo 已添加环境变量
)

:end
echo 脚本执行完毕!!!

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
bbs119 + 1 + 1 谢谢@Thanks!
blindcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

oks 发表于 2024-1-13 23:50
下载一个zip版不就好了
a2523188267 发表于 2024-1-14 00:19
shao2155233 发表于 2024-1-14 01:29
地球守护者 发表于 2024-1-14 06:08
膜拜大佬
CQGaxm 发表于 2024-1-14 07:04
感谢分享,学习学习
blindcat 发表于 2024-1-14 07:42
感谢分享,支持一下
ysy2001 发表于 2024-1-14 07:45
膜拜,学习一下。
啊笨 发表于 2024-1-14 07:52
对安装包的名字有要求么?
50lovelace 发表于 2024-1-14 08:03
oks 发表于 2024-1-13 23:50
下载一个zip版不就好了

大佬  ZIP版 您那有吗?是不是打开就能用 ,不用安装的 ,能分享下吗?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表