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

View File

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