绿色包保存
This commit is contained in:
@@ -1,85 +1,33 @@
|
||||
==========================================
|
||||
NPQS9100 MySQL 免安装版使用说明
|
||||
NPQS9100 MySQL 数据库
|
||||
==========================================
|
||||
|
||||
一、快速开始
|
||||
目录说明
|
||||
----------------------------------------
|
||||
1. 启动 MySQL:
|
||||
双击运行: startup.bat
|
||||
(注意:不要关闭窗口,关闭会停止MySQL)
|
||||
|
||||
2. 首次使用,如需重置密码和权限:
|
||||
双击运行: reset-root-password.bat
|
||||
|
||||
3. 停止 MySQL:
|
||||
双击运行: stop.bat
|
||||
bin/ - MySQL 可执行文件
|
||||
data/ - 数据库数据目录
|
||||
share/ - 共享资源文件
|
||||
my.ini - MySQL 配置文件
|
||||
|
||||
|
||||
二、连接信息
|
||||
服务管理
|
||||
----------------------------------------
|
||||
主机: 127.0.0.1 (或 localhost)
|
||||
MySQL 服务由主应用自动管理:
|
||||
- 应用启动时自动启动
|
||||
- 应用关闭时自动停止
|
||||
- 默认端口:3306(如被占用会自动切换)
|
||||
|
||||
|
||||
连接信息
|
||||
----------------------------------------
|
||||
主机: 127.0.0.1
|
||||
端口: 3306
|
||||
用户: root
|
||||
密码: njcnpqs
|
||||
字符集: utf8mb4
|
||||
|
||||
|
||||
三、脚本说明
|
||||
----------------------------------------
|
||||
startup.bat - 启动 MySQL 服务
|
||||
stop.bat - 正常停止 MySQL 服务
|
||||
reset-root-password.bat - 重置root密码和权限(解决1130错误)
|
||||
kill-running-port.bat - 智能清理应用实际使用的端口(自动识别3306/3307/...)
|
||||
my.ini - MySQL 配置文件
|
||||
.running-port - 运行时端口记录(自动生成,勿删除)
|
||||
|
||||
bin/ - MySQL 可执行文件
|
||||
data/ - 数据库数据目录
|
||||
share/ - 共享资源
|
||||
|
||||
⚠️ 安全说明:
|
||||
- 应用自动停止MySQL时,只会停止应用自己启动的MySQL进程
|
||||
- 不会影响您电脑上安装的其他MySQL服务
|
||||
- kill-running-port.bat 会读取 .running-port 文件,精确清理实际使用的端口
|
||||
- 如果3306被占用,应用会自动使用3307,kill-running-port.bat 会智能识别
|
||||
|
||||
⚙️ 停止机制:
|
||||
- 应用关闭时会自动使用 mysqladmin shutdown 优雅停止MySQL
|
||||
- 如果优雅停止失败,会自动尝试强制停止
|
||||
- 整个停止过程最多12秒,确保MySQL完全关闭
|
||||
|
||||
⭐ 端口智能管理:
|
||||
- 应用启动时自动检测可用端口(3306 → 3307 → 3308...)
|
||||
- 启动成功后会记录实际端口到 .running-port 文件
|
||||
- 使用 kill-running-port.bat 可自动清理正确的端口
|
||||
|
||||
|
||||
四、注意事项
|
||||
----------------------------------------
|
||||
1. 启动后不要关闭命令行窗口,关闭窗口会停止 MySQL
|
||||
2. 正常停止请使用 stop.bat
|
||||
3. 如果出现 1130 或密码错误,运行 reset-root-password.bat
|
||||
4. 如果端口被占用无法启动,运行 kill-3306.bat
|
||||
5. 默认密码是 njcnpqs,不要随意修改
|
||||
|
||||
|
||||
五、常见问题
|
||||
----------------------------------------
|
||||
Q: 连接提示 1130 错误或密码错误?
|
||||
A: 运行 reset-root-password.bat 重置权限
|
||||
|
||||
Q: 启动失败或端口被占用?
|
||||
A: 运行 kill-running-port.bat 清理端口(自动识别正确端口)
|
||||
|
||||
Q: 如何重置密码?
|
||||
A: 运行 reset-root-password.bat(密码会重置为 njcnpqs)
|
||||
|
||||
Q: 数据在哪里?
|
||||
A: 所有数据库数据在 data/ 目录下
|
||||
|
||||
|
||||
==========================================
|
||||
南京灿能电气自动化有限公司
|
||||
2025
|
||||
==========================================
|
||||
|
||||
|
||||
34
build/extraResources/mysql/init_pwd.bat
Normal file
34
build/extraResources/mysql/init_pwd.bat
Normal file
@@ -0,0 +1,34 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
cd /d %~dp0
|
||||
|
||||
taskkill /F /IM mysqld.exe 2>nul
|
||||
timeout /t 2 /nobreak >nul
|
||||
|
||||
rmdir /s /q data 2>nul
|
||||
mkdir data
|
||||
|
||||
echo 初始化数据库...
|
||||
bin\mysqld.exe --defaults-file=my.ini --initialize-insecure --console
|
||||
|
||||
echo 启动 MySQL...
|
||||
start /B bin\mysqld.exe --defaults-file=my.ini
|
||||
timeout /t 8 /nobreak >nul
|
||||
|
||||
echo 设置密码...
|
||||
bin\mysql.exe -h 127.0.0.1 -P 3306 -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'njcnpqs'; CREATE USER IF NOT EXISTS 'root'@'127.0.0.1' IDENTIFIED BY 'njcnpqs'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION; FLUSH PRIVILEGES;"
|
||||
|
||||
if %errorlevel% NEQ 0 (
|
||||
echo 第一次失败,重试...
|
||||
timeout /t 3 /nobreak >nul
|
||||
bin\mysql.exe -h localhost -P 3306 -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'njcnpqs'; CREATE USER IF NOT EXISTS 'root'@'127.0.0.1' IDENTIFIED BY 'njcnpqs'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION; FLUSH PRIVILEGES;"
|
||||
)
|
||||
|
||||
taskkill /F /IM mysqld.exe 2>nul
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 完成!密码: njcnpqs
|
||||
echo ==========================================
|
||||
pause
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
color 0C
|
||||
title 清理NPQS9100 MySQL端口占用
|
||||
cls
|
||||
echo ==========================================
|
||||
echo 清理 NPQS9100 MySQL 端口占用
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 获取MySQL目录(脚本所在目录)
|
||||
set MYSQL_HOME=%~dp0
|
||||
cd /d "%MYSQL_HOME%"
|
||||
|
||||
REM 读取实际运行的端口
|
||||
set PORT_FILE=.running-port
|
||||
set MYSQL_PORT=
|
||||
|
||||
if exist "%PORT_FILE%" (
|
||||
set /p MYSQL_PORT=<"%PORT_FILE%"
|
||||
echo [√] 检测到运行记录:端口 %MYSQL_PORT%
|
||||
echo.
|
||||
) else (
|
||||
echo [!] 未找到运行记录文件,使用默认端口 3306
|
||||
echo.
|
||||
set MYSQL_PORT=3306
|
||||
)
|
||||
|
||||
echo [1] 检查端口 %MYSQL_PORT% 占用情况...
|
||||
echo.
|
||||
|
||||
REM 查找占用该端口的连接
|
||||
netstat -ano | findstr ":%MYSQL_PORT%" > "%TEMP%\mysql_port.txt"
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo 发现以下端口 %MYSQL_PORT% 连接:
|
||||
echo ----------------------------------------
|
||||
type "%TEMP%\mysql_port.txt"
|
||||
echo ----------------------------------------
|
||||
echo.
|
||||
|
||||
echo [2] 提取进程ID并结束进程...
|
||||
echo.
|
||||
|
||||
REM 提取所有LISTENING状态的PID
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%MYSQL_PORT%" ^| findstr "LISTENING"') do (
|
||||
if not "%%a"=="0" (
|
||||
echo 正在结束进程 PID: %%a
|
||||
taskkill /F /PID %%a 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [失败] 无法结束进程 %%a
|
||||
) else (
|
||||
echo [成功] 已结束进程 %%a
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
REM 如果还有其他状态的连接,也尝试结束
|
||||
for /f "tokens=5" %%a in ('netstat -ano ^| findstr ":%MYSQL_PORT%" ^| findstr /V "LISTENING"') do (
|
||||
if not "%%a"=="0" (
|
||||
echo 正在结束进程 PID: %%a
|
||||
taskkill /F /PID %%a 2>nul
|
||||
if errorlevel 1 (
|
||||
echo [已结束或无权限] 进程 %%a
|
||||
) else (
|
||||
echo [成功] 已结束进程 %%a
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [3] 清理完成
|
||||
|
||||
REM 等待2秒让进程完全释放
|
||||
timeout /t 2 /nobreak >nul
|
||||
|
||||
echo.
|
||||
echo [4] 再次检查端口 %MYSQL_PORT%...
|
||||
netstat -ano | findstr ":%MYSQL_PORT%"
|
||||
if errorlevel 1 (
|
||||
echo [√] 端口 %MYSQL_PORT% 已完全释放
|
||||
|
||||
REM 删除端口记录文件
|
||||
if exist "%PORT_FILE%" (
|
||||
del "%PORT_FILE%"
|
||||
echo [√] 已清理端口记录文件
|
||||
)
|
||||
) else (
|
||||
echo [!] 仍有连接存在(可能是TIME_WAIT状态,会自动释放)
|
||||
)
|
||||
|
||||
) else (
|
||||
echo [√] 没有发现占用端口 %MYSQL_PORT% 的进程
|
||||
|
||||
REM 删除端口记录文件
|
||||
if exist "%PORT_FILE%" (
|
||||
del "%PORT_FILE%"
|
||||
echo [√] 已清理端口记录文件
|
||||
)
|
||||
)
|
||||
|
||||
REM 清理临时文件
|
||||
if exist "%TEMP%\mysql_port.txt" del "%TEMP%\mysql_port.txt"
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 清理完成
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 说明:
|
||||
echo - 此脚本只清理 NPQS9100 应用使用的 MySQL 端口
|
||||
echo - 不会影响您电脑上的其他 MySQL 服务
|
||||
echo.
|
||||
pause
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
color 0B
|
||||
title Reset MySQL Root Password
|
||||
cls
|
||||
echo ==========================================
|
||||
echo Reset MySQL Root Password
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo This script will reset root password and grant 127.0.0.1 access
|
||||
echo.
|
||||
echo IMPORTANT: Close any running MySQL windows first!
|
||||
echo.
|
||||
pause
|
||||
|
||||
set MYSQL_HOME=%cd%
|
||||
set password=njcnpqs
|
||||
|
||||
echo.
|
||||
echo [1] Stopping MySQL...
|
||||
taskkill /F /IM mysqld.exe >nul 2>&1
|
||||
timeout /t 2 >nul
|
||||
echo Done.
|
||||
|
||||
echo.
|
||||
echo [2] Creating init file...
|
||||
(
|
||||
echo ALTER USER IF EXISTS 'root'@'localhost' IDENTIFIED BY '%password%';
|
||||
echo CREATE USER IF NOT EXISTS 'root'@'127.0.0.1' IDENTIFIED BY '%password%';
|
||||
echo GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
|
||||
echo CREATE USER IF NOT EXISTS 'root'@'%%' IDENTIFIED BY '%password%';
|
||||
echo GRANT ALL PRIVILEGES ON *.* TO 'root'@'%%' WITH GRANT OPTION;
|
||||
echo FLUSH PRIVILEGES;
|
||||
) > "%MYSQL_HOME%\reset-init.sql"
|
||||
echo Done.
|
||||
|
||||
echo.
|
||||
echo [3] Starting MySQL with init-file...
|
||||
echo This will take about 30 seconds...
|
||||
echo.
|
||||
|
||||
cd /d "%MYSQL_HOME%"
|
||||
"%MYSQL_HOME%\bin\mysqld.exe" --defaults-file="%MYSQL_HOME%\my.ini" --init-file="%MYSQL_HOME%\reset-init.sql" --console
|
||||
|
||||
REM The above command runs in foreground and will exit when you press Ctrl+C
|
||||
|
||||
echo.
|
||||
echo MySQL has stopped.
|
||||
echo.
|
||||
if exist "%MYSQL_HOME%\reset-init.sql" del "%MYSQL_HOME%\reset-init.sql"
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo Password reset completed!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo Connection info:
|
||||
echo Host: 127.0.0.1
|
||||
echo Port: 3306
|
||||
echo User: root
|
||||
echo Password: %password%
|
||||
echo.
|
||||
echo Now you can run startup.bat to start MySQL normally
|
||||
echo.
|
||||
pause
|
||||
|
||||
Reference in New Issue
Block a user