mysql template

This commit is contained in:
yuejiajun 2025-08-17 02:23:38 +08:00
parent f1761fa2be
commit 32a0d9720c
2 changed files with 95 additions and 51 deletions

View File

@ -1,17 +1,17 @@
@echo off @echo off
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
chcp 65001 >nul chcp 65001 >nul
tital Initialize And Startup MySQL title Initialize And Startup MySQL
:: 检查是否以管理员身份运行 :: Check if running as administrator
net session >nul 2>&1 net session >nul 2>&1
if %errorLevel% neq 0 ( if %errorLevel% neq 0 (
echo 请使用管理员身份运行此脚本! echo Please run this script as Administrator!
pause pause
exit /b 1 exit /b 1
) )
:: 配置参数 - 根据你的环境修改这些值 :: Configuration parameters - modify these values according to your environment
set "MYSQL_HOME=%INSTALLPATH%" set "MYSQL_HOME=%INSTALLPATH%"
set "MYSQL_BIN_PATH=%INSTALLPATH%\bin" set "MYSQL_BIN_PATH=%INSTALLPATH%\bin"
set "MYSQLD_PATH=%INSTALLPATH%\bin\mysqld.exe" set "MYSQLD_PATH=%INSTALLPATH%\bin\mysqld.exe"
@ -20,76 +20,95 @@ set "SERVICE_NAME=x_database"
set "NEW_ROOT_PASSWORD=Root@2025" set "NEW_ROOT_PASSWORD=Root@2025"
set "DATA_DIR=%INSTALLPATH%\data" set "DATA_DIR=%INSTALLPATH%\data"
:: 1. Check if mysqld.exe exists
if not exist "%MYSQLD_PATH%" (
echo Error: mysqld.exe not found at %MYSQLD_PATH%
pause
exit /b 1
)
:: 2. Check if my.ini exists
if not exist "%MY_INI_PATH%" (
echo Error: Configuration file my.ini not found at %MY_INI_PATH%
pause
exit /b 1
)
:: 3. Check if service already exists
sc query "%SERVICE_NAME%" >nul 2>&1
if %errorLevel% equ 0 (
echo Error: Service [%SERVICE_NAME%] already exists
pause
exit /b 1
)
echo "%DATA_DIR%" echo "%DATA_DIR%"
if exist "%DATA_DIR%" ( if exist "%DATA_DIR%" (
set "isEmpty=true" set "isEmpty=true"
dir /a /b "%DATA_DIR%\*" 2>nul | findstr . >nul && set "isEmpty=false" dir /a /b "%DATA_DIR%\*" 2>nul | findstr . >nul && set "isEmpty=false"
dir /ad /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" ( if "!isEmpty!"=="false" (
echo 请优先清空文件夹下的数据 echo Please empty the data directory first
pause pause
exit /b 1 exit /b 1
) else ( ) else (
echo 已满足初始化条件 echo Initialization conditions met
) )
) else ( ) else (
echo 满足初始化条件,是否初始化? echo Initialization conditions met. Proceed with initialization?
choice /c yn /m "请输入选择 (Y/N): " choice /c yn /m "Enter your choice (Y/N): "
if errorlevel 2 ( if errorlevel 2 (
echo 用户选择不初始化,程序终止 echo User chose not to initialize. Exiting...
exit /b 0 exit /b 0
) else ( ) else (
echo 正在初始化文件夹... echo Initializing directory...
mkdir "%DATA_DIR%" mkdir "%DATA_DIR%"
if exist "%DATA_DIR%" ( if exist "%DATA_DIR%" (
echo 文件夹初始化成功 echo Directory initialized successfully
) else ( ) else (
echo 文件夹初始化失败 echo Failed to initialize directory
pause pause
exit /b 1 exit /b 1
) )
) )
) )
:: rm -rf data
:: mkdir data
:: 1. 初始化MySQL :: 1. Initialize MySQL
echo [1/4] 正在初始化MySQL... echo [1/4] Initializing 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%" "%MYSQL_BIN_PATH%\mysqld" --defaults-file="%MY_INI_PATH%" --initialize-insecure --basedir="%MYSQL_HOME%" --datadir="%DATA_DIR%"
if errorlevel 1 ( if errorlevel 1 (
echo 初始化失败 echo Initialization failed
exit /b 1 exit /b 1
) )
:: 2. 注册MySQL服务 :: 2. Register MySQL service
echo [2/4] 正在注册MySQL服务[%SERVICE_NAME%]... echo [2/4] Registering MySQL service [%SERVICE_NAME%]...
"%MYSQL_BIN_PATH%\mysqld" --install "%SERVICE_NAME%" --defaults-file="%MY_INI_PATH%" "%MYSQL_BIN_PATH%\mysqld" --install "%SERVICE_NAME%" --defaults-file="%MY_INI_PATH%"
if errorlevel 1 ( if errorlevel 1 (
echo 服务注册失败 echo Service registration failed
exit /b 1 exit /b 1
) )
:: 3. 启动MySQL服务 :: 3. Start MySQL service
echo [3/4] 正在启动MySQL服务[%SERVICE_NAME%]... echo [3/4] Starting MySQL service [%SERVICE_NAME%]...
net start "%SERVICE_NAME%" net start "%SERVICE_NAME%"
if errorlevel 1 ( if errorlevel 1 (
echo 服务启动失败 echo Service startup failed
exit /b 1 exit /b 1
) )
:: 4. 修改root密码 :: 4. Change root password
echo [4/4] 正在修改root密码... echo [4/4] Changing root password...
"%MYSQL_BIN_PATH%\mysql" -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '%NEW_ROOT_PASSWORD%'; FLUSH PRIVILEGES;" "%MYSQL_BIN_PATH%\mysql" -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '%NEW_ROOT_PASSWORD%'; FLUSH PRIVILEGES;"
if errorlevel 1 ( if errorlevel 1 (
echo 密码修改失败 echo Password change failed
exit /b 1 exit /b 1
) )
echo MySQL已成功初始化并配置! echo MySQL successfully initialized and configured!
echo 服务名称: %SERVICE_NAME% echo Service name: %SERVICE_NAME%
echo Root新密码: %NEW_ROOT_PASSWORD% echo New root password: %NEW_ROOT_PASSWORD%
echo my.ini路径: %MY_INI_PATH% echo my.ini path: %MY_INI_PATH%
pause pause
endlocal endlocal

View File

@ -1,51 +1,76 @@
@echo off @echo off
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
chcp 65001 >nul chcp 65001 >nul
tital Register MySQL title Register MySQL Service
:: 检查是否以管理员身份运行 :: Check if running as administrator
net session >nul 2>&1 net session >nul 2>&1
if %errorLevel% neq 0 ( if %errorLevel% neq 0 (
echo 请使用管理员身份运行此脚本! echo Please run this script as Administrator!
pause pause
exit /b 1 exit /b 1
) )
:: Configuration parameters
set "SERVICE_NAME=x_database" set "SERVICE_NAME=x_database"
set "MYSQLD_PATH=mysqld.exe"
set "MY_INI_PATH=%INSTALLPATH%\my.ini"
:: 1. 停止并删除现有MySQL服务 :: Verify mysqld.exe exists
echo 正在停止MySQL服务[%SERVICE_NAME%]... where %MYSQLD_PATH% >nul 2>&1
if %errorLevel% neq 0 (
echo Error: mysqld.exe not found in PATH
pause
exit /b 1
)
:: Verify my.ini exists
if not exist "%MY_INI_PATH%" (
echo Error: Configuration file not found at %MY_INI_PATH%
pause
exit /b 1
)
:: 1. Stop and remove existing MySQL service
echo Stopping MySQL service [%SERVICE_NAME%]...
net stop %SERVICE_NAME% >nul 2>&1 net stop %SERVICE_NAME% >nul 2>&1
echo 正在删除已有的MySQL服务[%SERVICE_NAME%]... echo Removing existing MySQL service [%SERVICE_NAME%]...
sc query %SERVICE_NAME% >nul 2>&1
if %errorLevel% equ 0 (
sc delete %SERVICE_NAME% >nul 2>&1 sc delete %SERVICE_NAME% >nul 2>&1
if %errorLevel% equ 0 ( if %errorLevel% equ 0 (
echo [成功] MySQL服务[%SERVICE_NAME%]已删除 echo [Success] MySQL service [%SERVICE_NAME%] removed
) else ( ) else (
echo [警告] 删除MySQL服务[%SERVICE_NAME%]失败(可能服务不存在) echo [Error] Failed to remove MySQL service [%SERVICE_NAME%]
pause
exit /b 1
)
) else (
echo [Info] MySQL service [%SERVICE_NAME%] does not exist (no action needed)
) )
:: 2. 安装MySQL服务 :: 2. Install MySQL service
echo 正在安装MySQL服务[%SERVICE_NAME%]... echo Installing MySQL service [%SERVICE_NAME%]...
mysqld --install %SERVICE_NAME% --defaults-file="%INSTALLPATH%\my.ini" %MYSQLD_PATH% --install %SERVICE_NAME% --defaults-file="%MY_INI_PATH%"
if %errorLevel% equ 0 ( if %errorLevel% equ 0 (
echo [成功] MySQL服务[%SERVICE_NAME%]安装完成 echo [Success] MySQL service [%SERVICE_NAME%] installed
) else ( ) else (
echo [错误] MySQL服务[%SERVICE_NAME%]安装失败 echo [Error] Failed to install MySQL service [%SERVICE_NAME%]
pause pause
exit /b 1 exit /b 1
) )
:: 3. 启动MySQL服务 :: 3. Start MySQL service
echo 正在启动MySQL服务[%SERVICE_NAME%]... echo Starting MySQL service [%SERVICE_NAME%]...
net start %SERVICE_NAME% net start %SERVICE_NAME%
if %errorLevel% equ 0 ( if %errorLevel% equ 0 (
echo [成功] MySQL服务[%SERVICE_NAME%]已启动 echo [Success] MySQL service [%SERVICE_NAME%] started
) else ( ) else (
echo [错误] MySQL服务[%SERVICE_NAME%]启动失败 echo [Error] Failed to start MySQL service [%SERVICE_NAME%]
pause pause
exit /b 1 exit /b 1
) )
echo 所有操作已完成! echo All operations completed successfully!
pause pause