96 lines
2.5 KiB
Batchfile
96 lines
2.5 KiB
Batchfile
@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
|