1.下载mysql的免安装压缩包
官网:https://downloads.mysql.com/archives/community/
2.解压并新增批处理脚本
@echo off
chcp 65001
setlocal enabledelayedexpansionecho MySQL版本为8.0.34REM 使用set /p命令获取用户输入的端口号
set /p "port=请输入端口号(不要使用已启用的端口): "set /p "abc=请输入服务名(示例:MySQL_3306): "REM 使用set /p命令获取用户输入的新密码
set /p "newPwd=请输入新密码,(示例:Mysql@2023): "REM 获取当前批处理文件的所属路径
for %%i in ("%~dp0") do set "currentDir=%%~fi"
rem echo 当前批处理文件的所属路径:%currentDir%rem 新增并写入my.ini
(
echo [mysqld]
echo # mysql根目录,配置解压后的地址
echo basedir = %currentDir%
echo # 数据文件存放目录
echo datadir = %currentDir%data
echo #错误日志存放位置
echo log-error = %currentDir%logs
echo # 端口,默认3306
echo port = %port%
echo.
echo # 允许最大连接数
echo max_connections=100
echo # 允许连接失败的次数
echo max_connect_errors=50
echo.
echo #开启二进制日志功能
echo #log-bin=mall-mysql-bin
echo #设置使用的二进制日志格式(mixed,statement,row)
echo #binlog_format=row
echo.
echo # 全文索引检索指定 n-gram 分词的令牌大小
echo #ngram_token_size=1
echo.
echo # 设置InnoDB缓冲池大小
echo innodb_buffer_pool_size = 128M
echo.
echo # 服务端使用的字符集默认为utf8mb4
echo character_set_server=utf8mb4
echo.
echo # 设置默认存储引擎
echo default-storage-engine=INNODB
echo.
echo # 设置SQL模式
echo sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
echo.
echo [mysql]
echo # 设置默认字符集
echo default-character-set=utf8mb4
echo.
echo [client]
echo # 设置默认字符集
echo default-character-set=utf8mb4
) > %currentDir%my.iniREM 初始化 MySQL
set "installCommand=%currentDir%bin\mysqld.exe --defaults-file=%currentDir%my.ini --initialize --console"
echo "(1/3)初始化 MySQL成功,等待服务注册,这可能需要一些时间..."
REM 关闭文件句柄,以确保 temp.txt 可以被正常访问
%installCommand% >%currentDir%temp.txt 2>&1REM 获取临时密码
rem 使用 findstr 命令查找包含 "root@localhost" 的行并输出到控制台
set "tempPwd="
set "tempFile=%currentDir%temp.txt"
for /f "tokens=15 delims=: " %%a in ('findstr "root@localhost" "%tempFile%"') do (set "tempPwd=%%a"
)
echo 临时密码: "%tempPwd%"REM 注册 MySQL 服务
set "installCommand=%currentDir%bin\mysqld.exe install %abc% --defaults-file=%currentDir%my.ini"
REM 尝试注册服务,如果服务已存在,则忽略错误
%installCommand% 2>nulecho "(2/3) %abc% 注册完成并启动中... "
REM 启动 MySQL服务
set "startCommand=net start %abc% "
%startCommand% REM 执行 MySQL 修改密码和刷新权限
set "mysqlCommand=%currentDir%bin\mysql.exe"
REM 设置 MySQL 服务器的连接参数
set "mysqlParams=-uroot -P%port% --connect-expired-password -p%tempPwd%"
REM 设置 SQL 语句
set "sqlParams=ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '%newPwd%'; FLUSH PRIVILEGES;"
REM 使用 MySQL 客户端执行 SQL 语句
REM echo %mysqlCommand% %mysqlParams% -e "%sqlParams%"
%mysqlCommand% %mysqlParams% -e "%sqlParams%"rem 删除临时文件del %tempFile%echo "(3/3)安装完成! 可关闭此窗口"endlocalpause
3. 右键以管理员身份运行
执行完成后生成data目录和配置文件my.ini
服务中mysql服务已经启动
navicat连接