@echo off setlocal enabledelayedexpansion chcp 65001 >nul tital Initialize And Startup MySQL :: 检查是否以管理员身份运行 net session >nul 2>&1 if %errorLevel% neq 0 ( echo 请使用管理员身份运行此脚本! pause exit /b 1 ) :: 配置参数 - 根据你的环境修改这些值 set "MYSQL_HOME=%INSTALLPATH%" set "MYSQL_BIN_PATH=%INSTALLPATH%\bin" set "MYSQLD_PATH=%INSTALLPATH%\bin\mysqld.exe" set "MY_INI_PATH=%INSTALLPATH%\my.ini" set "SERVICE_NAME=x_database" set "NEW_ROOT_PASSWORD=Root@2025" set "DATA_DIR=%INSTALLPATH%\data" echo "%DATA_DIR%" if exist "%DATA_DIR%" ( set "isEmpty=true" dir /a /b "%DATA_DIR%\*" 2>nul | findstr . >nul && set "isEmpty=false" dir /ad /b "%DATA_DIR%\*" 2>nul | findstr . >nul && set "isEmpty=false" if "!isEmpty!"=="false" ( echo 请优先清空文件夹下的数据 pause exit /b 1 ) else ( echo 已满足初始化条件 ) ) else ( echo 满足初始化条件,是否初始化? choice /c yn /m "请输入选择 (Y/N): " if errorlevel 2 ( echo 用户选择不初始化,程序终止 exit /b 0 ) else ( echo 正在初始化文件夹... mkdir "%DATA_DIR%" if exist "%DATA_DIR%" ( echo 文件夹初始化成功 ) else ( echo 文件夹初始化失败 pause exit /b 1 ) ) ) :: rm -rf data :: mkdir data :: 1. 初始化MySQL echo [1/4] 正在初始化MySQL... :: "%MYSQL_BIN_PATH%\mysqld" --defaults-file="%MY_INI_PATH%" --initialize-insecure --basedir="%MYSQL_BIN_PATH%\.." --datadir="%DATA_DIR%" "%MYSQL_BIN_PATH%\mysqld" --defaults-file="%MY_INI_PATH%" --initialize-insecure --basedir="%MYSQL_HOME%" --datadir="%DATA_DIR%" if errorlevel 1 ( echo 初始化失败 exit /b 1 ) :: 2. 注册MySQL服务 echo [2/4] 正在注册MySQL服务[%SERVICE_NAME%]... "%MYSQL_BIN_PATH%\mysqld" --install "%SERVICE_NAME%" --defaults-file="%MY_INI_PATH%" if errorlevel 1 ( echo 服务注册失败 exit /b 1 ) :: 3. 启动MySQL服务 echo [3/4] 正在启动MySQL服务[%SERVICE_NAME%]... net start "%SERVICE_NAME%" if errorlevel 1 ( echo 服务启动失败 exit /b 1 ) :: 4. 修改root密码 echo [4/4] 正在修改root密码... "%MYSQL_BIN_PATH%\mysql" -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '%NEW_ROOT_PASSWORD%'; FLUSH PRIVILEGES;" if errorlevel 1 ( echo 密码修改失败 exit /b 1 ) echo MySQL已成功初始化并配置! echo 服务名称: %SERVICE_NAME% echo Root新密码: %NEW_ROOT_PASSWORD% echo my.ini路径: %MY_INI_PATH% pause endlocal