| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- @echo off
- chcp 65001 >nul
- setlocal EnableDelayedExpansion
- echo.
- echo ================================================
- echo MES制造执行系统 - 数据库配置工具
- echo ================================================
- echo.
- :: 检查MySQL是否安装
- echo [1/6] 检查MySQL环境...
- mysql --version >nul 2>&1
- if errorlevel 1 (
- echo ❌ 错误: 未检测到MySQL客户端,请先安装MySQL 8.0+
- echo.
- echo 请访问: https://dev.mysql.com/downloads/mysql/
- pause
- exit /b 1
- )
- echo ✅ MySQL客户端检测成功
- :: 设置配置文件路径
- set "CONFIG_FILE=Back\mes-sorter\src\main\resources\application.properties"
- set "SQL_FILE=Back\mes-sorter\src\main\resources\static\mes_sorter.sql"
- :: 检查配置文件是否存在
- echo.
- echo [2/6] 检查项目文件...
- if not exist "%CONFIG_FILE%" (
- echo ❌ 错误: 配置文件不存在 - %CONFIG_FILE%
- pause
- exit /b 1
- )
- if not exist "%SQL_FILE%" (
- echo ❌ 错误: SQL文件不存在 - %SQL_FILE%
- pause
- exit /b 1
- )
- echo ✅ 项目文件检查完成
- :: 获取数据库连接信息
- echo.
- echo [3/6] 配置数据库连接信息...
- echo.
- :: 数据库主机
- set /p "DB_HOST=请输入数据库主机地址 [默认: localhost]: "
- if "%DB_HOST%"=="" set "DB_HOST=localhost"
- :: 数据库端口
- set /p "DB_PORT=请输入数据库端口 [默认: 3306]: "
- if "%DB_PORT%"=="" set "DB_PORT=3306"
- :: 数据库名称
- set /p "DB_NAME=请输入数据库名称 [默认: mes_sorter]: "
- if "%DB_NAME%"=="" set "DB_NAME=mes_sorter"
- :: 数据库用户名
- set /p "DB_USER=请输入数据库用户名 [默认: root]: "
- if "%DB_USER%"=="" set "DB_USER=root"
- :: 数据库密码
- echo.
- echo 请输入数据库密码(输入时不显示字符):
- call :GetPassword DB_PASSWORD
- :: 确认信息
- echo.
- echo [4/6] 确认配置信息...
- echo.
- echo 数据库主机: %DB_HOST%
- echo 数据库端口: %DB_PORT%
- echo 数据库名称: %DB_NAME%
- echo 数据库用户: %DB_USER%
- echo 密码: ********
- echo.
- set /p "CONFIRM=确认以上信息无误吗?(Y/N) [默认: Y]: "
- if /i "%CONFIRM%"=="N" (
- echo 配置已取消
- pause
- exit /b 0
- )
- :: 测试数据库连接
- echo.
- echo [5/6] 测试数据库连接...
- mysql -h%DB_HOST% -P%DB_PORT% -u%DB_USER% -p%DB_PASSWORD% -e "SELECT 1;" >nul 2>&1
- if errorlevel 1 (
- echo ❌ 错误: 数据库连接失败,请检查连接信息
- pause
- exit /b 1
- )
- echo ✅ 数据库连接测试成功
- :: 创建数据库和导入数据
- echo.
- echo [6/6] 初始化数据库...
- :: 创建数据库
- echo 正在创建数据库 %DB_NAME%...
- mysql -h%DB_HOST% -P%DB_PORT% -u%DB_USER% -p%DB_PASSWORD% -e "CREATE DATABASE IF NOT EXISTS %DB_NAME% CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
- if errorlevel 1 (
- echo ❌ 错误: 数据库创建失败
- pause
- exit /b 1
- )
- :: 导入SQL文件
- echo 正在导入数据表结构和初始数据...
- mysql -h%DB_HOST% -P%DB_PORT% -u%DB_USER% -p%DB_PASSWORD% %DB_NAME% < "%SQL_FILE%"
- if errorlevel 1 (
- echo ❌ 错误: SQL文件导入失败
- pause
- exit /b 1
- )
- :: 更新配置文件
- echo 正在更新应用配置文件...
- :: 创建临时文件
- set "TEMP_CONFIG=%CONFIG_FILE%.tmp"
- :: 构建数据库URL
- set "DB_URL=jdbc:mysql://%DB_HOST%:%DB_PORT%/%DB_NAME%?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8"
- :: 更新配置文件
- (
- for /f "delims=" %%i in (%CONFIG_FILE%) do (
- set "line=%%i"
-
- :: 替换数据库URL
- if "!line:~0,24!"=="spring.datasource.url=" (
- echo spring.datasource.url=%DB_URL%
- ) else if "!line:~0,29!"=="spring.datasource.username=" (
- echo spring.datasource.username=%DB_USER%
- ) else if "!line:~0,29!"=="spring.datasource.password=" (
- echo spring.datasource.password=%DB_PASSWORD%
- ) else (
- echo !line!
- )
- )
- ) > "%TEMP_CONFIG%"
- :: 替换原文件
- move "%TEMP_CONFIG%" "%CONFIG_FILE%" >nul
- :: 创建数据库配置保存文件
- echo.
- echo 保存数据库配置到 db-config.txt...
- (
- echo # MES系统数据库配置信息
- echo # 生成时间: %date% %time%
- echo.
- echo DB_HOST=%DB_HOST%
- echo DB_PORT=%DB_PORT%
- echo DB_NAME=%DB_NAME%
- echo DB_USER=%DB_USER%
- echo DB_PASSWORD=%DB_PASSWORD%
- echo.
- echo # 连接字符串
- echo DB_URL=%DB_URL%
- ) > db-config.txt
- echo.
- echo ================================================
- echo 数据库配置完成!
- echo ================================================
- echo.
- echo ✅ 数据库 '%DB_NAME%' 创建成功
- echo ✅ 数据表结构导入完成
- echo ✅ 初始数据导入完成
- echo ✅ 应用配置文件已更新
- echo ✅ 配置信息已保存到 db-config.txt
- echo.
- echo 🚀 现在可以运行 start.bat 启动系统
- echo.
- pause
- exit /b 0
- :: 隐藏密码输入函数
- :GetPassword
- set "password="
- :GetPasswordLoop
- set "char="
- for /f "delims=" %%i in ('xcopy /w "%~f0" "%~f0" 2^>nul') do if not defined char set "char=%%i"
- set "char=%char:~-1%"
- if "%char%"=="" goto :GetPasswordEnd
- if "%char%"=="%BS%" (
- if defined password (
- set "password=%password:~0,-1%"
- <nul set /p "=!BS! !BS!"
- )
- goto :GetPasswordLoop
- )
- set "password=%password%%char%"
- <nul set /p "=*"
- goto :GetPasswordLoop
- :GetPasswordEnd
- set "%~1=%password%"
- echo.
- exit /b 0
|