Windows版本
1.下载mysql
mysql启动
解压mysql:目录不要使用中文
初始化,创建my.ini
bash
mysqld --initialize-insecure --user=mysql --console- 也可以在程序目录下手动创建
my.ini
ini
[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=INNODB
basedir="F:/data/mysql-8.0.35-winx64/"
datadir="F:/data/mysql-8.0.35-winx64/data"
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
log_bin_trust_function_creators=1- 启动:进入
mysql的bin目录
bash
mysqld ––consolemysql使用
- 初次访问:进入
mysql的bin目录 - 第一次访问无须密码
bat
mysql -u root- 修改密码
- 方法一:使用navicat设置密码
- 方法二:使用sql语句修改,密码为:finemap@cn
bat
ALTER USER `root`@`localhost` IDENTIFIED BY finemap@cn;- 访问
- 设置密码后访问:进入mysql的bin目录
bat
mysql -u root -p
Enter password: # 输入密码:finemap@cn2.mysql集成
2.1.配置
- 初始化程序只执行一遍即可,集成时提前设置
- 密码只设置一遍即可,集成时提前设置
my.ini中存储了数据存储路径,如果程序修改位置,需要重新设置my.ini中存储端口信息,应该交由系统设置- 配置及脚本:
mysql.conf+ini.bat
mysql.conf:自定义配置文件
- 配置文件,创建
conf文件夹,添加mysql.conf配置文件
properties
#首次解压默认配置,该文件不可删除
#用户名,密码(修改不生效,请使用mysql命令自行修改)
user=root
password=finemap@cn
#端口(单独启动:可修改后重启生效)(server.bat启动会修改该端口)
port=3306
name=mysqld.exeini.bat:数据库配置脚本
- 在根路径下创建:
ini.bat,生成my.ini文件,用于修改数据存储路径
bat
@echo off
set MYSQL_DIR=%~dp0
set "MY_DIR=%MYSQL_DIR:\=/%"
if exist %MYSQL_DIR%my.ini (
del %MYSQL_DIR%my.ini
)
set port=3306
if exist %MYSQL_DIR%conf\mysql.conf (
for /f "tokens=1,2 delims==" %%i in (%MYSQL_DIR%conf\mysql.conf) do (
set %%i=%%j
)
)
echo [mysqld]>>%MYSQL_DIR%my.ini
echo port=%port%>>%MYSQL_DIR%my.ini
echo character-set-server=utf8>>%MYSQL_DIR%my.ini
echo default-storage-engine=INNODB>>%MYSQL_DIR%my.ini
echo basedir="%MY_DIR%">>%MYSQL_DIR%my.ini
echo datadir="%MY_DIR%data">>%MYSQL_DIR%my.ini
echo sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION>>%MYSQL_DIR%my.ini
echo log_bin_trust_function_creators=1 >>%MYSQL_DIR%my.ini2.2.脚本文件
- 在
bin文件夹,并创建脚本文件:startup.bat、shutdown.bat、restart.bat、progress.bat、status.bat
startup.bat:mysql启动程序
- 未做端口监听
bat
@echo off
title "mysql 8.0.35"
setlocal
rem 设置全局环境
set "BIN_DIR=%~dp0"
cd %BIN_DIR%
cd ..
set "MYSQL_HOME=%cd%"
cd "%BIN_DIR%"
call %MYSQL_HOME%\ini.bat
echo mysql 8.0.35正在运行中...
mysqld ––console
endlocal- 监听mysql.conf中端口是否占用(推荐)
bat
@echo off
title "mysql 8.0.35"
setlocal enabledelayedexpansion
rem 设置全局环境
set "BIN_DIR=%~dp0"
cd %BIN_DIR%
cd ..
set "MYSQL_HOME=%cd%"
cd "%BIN_DIR%"
call %MYSQL_HOME%\ini.bat
rem 设置配置环境
for /f "tokens=1,2 delims==" %%i in (%MYSQL_HOME%\conf\mysql.conf) do (
set %%i=%%j
)
set "process_name=%name%"
set "process_port=%port%"
REM 使用 netstat 命令查找端口对应的 PID
for /f "tokens=5" %%a in ('netstat -ano ^| findstr /R "\<0.0.0.0:%process_port%\>"') do (
set "pid=%%a"
REM 使用 tasklist 命令查找 PID 对应的程序名
for /f "tokens=1,*" %%b in ('tasklist /fi "pid eq !pid!" ^| find /i "!pid!"') do (
set "run_process_name=%%b"
echo !run_process_name! | find /i "!process_name!" > nul
if errorlevel 1 (
echo %process_name%启动失败:%process_port% 端口被其他应用程序占用,程序为:!run_process_name!.
REM 跳出内部循环
goto :break
) else (
echo %process_name%启动失败:程序运行中.
REM 跳出内部循环
goto :break
)
)
)
echo mysql 8.0.35正在运行中...
%process_name% --console 2>&1
:break
endlocalshutdown.bat:mysql关闭程序
- 未做进程监听
bat
@echo off
setlocal enabledelayedexpansion
set "process_name=mysqld.exe"
rem 使用 tasklist 命令查找包含 process_name 的进程
for /f "tokens=2*" %%a in ('tasklist /fi "imagename eq !process_name!" /nh') do (
set "pid=%%a"
echo Terminating process with PID !pid!...
REM 使用 taskkill 终止进程
taskkill /f /pid !pid!
)
endlocal- 监听mysql.conf中进程是否占用(推荐)
bat
@echo off
setlocal enabledelayedexpansion
rem 设置全局环境
set "BIN_DIR=%~dp0"
cd %BIN_DIR%
cd ..
set "MYSQL_HOME=%cd%"
cd "%BIN_DIR%"
for /f "tokens=1,2 delims==" %%i in (%MYSQL_HOME%\conf\mysql.conf) do (
set %%i=%%j
)
set "process_name=%name%"
rem 使用 tasklist 命令查找包含 process_name 的进程
for /f "tokens=2*" %%a in ('tasklist /fi "imagename eq !process_name!" /nh') do (
set "pid=%%a"
REM 使用 taskkill 终止进程
taskkill /f /pid !pid!
)
endlocalprogress.bat:mysql进程检查程序
- mysql进程检查程序
bat
@echo off
title "mysql 8.0.35"
rem 设置全局环境
set "BIN_DIR=%~dp0"
cd %BIN_DIR%
cd ..
set "MYSQL_HOME=%cd%"
cd "%BIN_DIR%"
set status=0
rem 设置配置环境
for /f "tokens=1,2 delims==" %%i in (%MYSQL_HOME%\conf\mysql.conf) do (
set %%i=%%j
)
set "process_name=%name%"
set "process_port=%port%"
for /f "tokens=5" %%a in ('netstat -ano ^| findstr /R "\<0.0.0.0:%process_port%\>"') do (
for /f "tokens=1" %%b in ('tasklist /nh /fi "pid eq %%a"') do (
if NOT "%%b"=="%process_name%" (
rem 端口一样,程序名不一样:-1
set status=-1
goto :break
) else (
rem 端口一样,程序名一样:1
set status=1
goto :break
)
)
)
:break
echo %status%
endlocalstatus.bat:mysql运行状态程序
- 是否启动完成,用户名和密码来源于
mysql.conf
bat
@echo off
title "mysql 8.0.35"
rem 设置全局环境
set "BIN_DIR=%~dp0"
cd %BIN_DIR%
cd ..
set "MYSQL_HOME=%cd%"
cd "%BIN_DIR%"
rem 设置配置环境
for /f "tokens=1,2 delims==" %%i in (%MYSQL_HOME%\conf\mysql.conf) do (
set %%i=%%j
)
set "mysql_user=%user%"
set "mysql_password=%password%"
"%BIN_DIR%\mysql" -u%mysql_user% -p%mysql_password% -e "exit" >nul 2>&1
if %errorlevel% equ 0 (
echo 1
) else (
echo 0
)3.添加声明文件和Logo
3.1.添加声明文件
根节点创建manifest.json
json
{
"name": "mysql",
"nickname": "数据库",
"version": "8.0.35",
"filename": "mysql-8.0.35-winx64",
"type": "lib",
"source": "other",
"system": "windows",
"author": "北京凡图科技有限责任公司",
"description": "Mysql数据库程序",
"createTime": "2024-07-11 00:00:00",
"isRunning": true,
"logo": "/logo.png",
"property": {
"isSystem": true,
"isStartup": false,
"isShutdown": false,
"isRestart": false
},
"progress": "bin\\progress.bat",
"startup": "bin\\startup.bat",
"shutdown": "bin\\shutdown.bat",
"status": "bin\\status.bat",
"data": {},
"url": []
}3.2.添加logo
创建resources文件夹,添加logo.png图片
4.删除日志文件
4.1.二进制日志
查询二进制日志存储位置
sql
show variables like '%log_bin%';- 这些日志记录了所有对数据库的更改(如INSERT, UPDATE, DELETE语句),用于复制和恢复。
4.2.慢查询日志
查询慢查询日志存储位置
sql
show variables like 'slow_query_log%';- 这些日志记录了执行时间超过指定阈值的SQL查询
4.3.一般查询日志
查询一般查询日志存储位置
sql
show variables like 'general_log%';- 记录了服务器接收到的每一个查询或是命令
4.4.中继日志
查询中继日志存储位置
sql
show variables like 'relay_log%';- 仅存在于设置了主从复制的从服务器上,用于保存从主服务器接收到的更新。
4.5.错误日志
错误日志
- 通常命名为
hostname.err
- 记录MySQL服务器启动、运行期间遇到的问题以及停止时的信息。
4.6.临时文件
临时文件
- 通常命名为
#innodb_temp文件夹 - 在数据库操作完成后应该被自动删除