双击一个文件,就自动安装完成,安装后默认密码为root,可以直接使用,非常方便。
工具下载地址:http://www.zrscsoft.com/sitepic/12177.html
直接上脚本:
@echo off
chcp 65001 >nul
title MySQL 8.0.46 一键安装工具
rem color 0A
:: 以管理员权限运行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %errorlevel% neq 0 (
echo 请求管理员权限...
goto UACPrompt
) else (
goto gotAdmin
)
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" (
del "%temp%\getadmin.vbs"
)
echo ========================================
echo MySQL 8.0.46 一键安装工具
echo ========================================
echo.
:: 检查是否已安装MySQL
sc query MySQL8.0.46 >nul 2>&1
if %errorlevel% EQU 0 (
echo [错误] MySQL8.0.46服务已存在!
echo 请先卸载现有MySQL服务
pause
exit
)
:: 获取批处理文件所在目录
set "BAT_DIR=%~dp0"
echo 批处理文件目录: %BAT_DIR%
:: 去掉末尾的反斜杠(如果需要)
set "BAT_DIR=%BAT_DIR:~0,-1%"
echo 处理后的目录: %BAT_DIR%
:: 设置变量
set MYSQL_VERSION=8.0.46
set MYSQL_ZIP=mysql-8.0.46-winx64.zip
set INSTALL_DIR=%BAT_DIR%\mysql-8.0.46-winx64
set DATA_DIR=%INSTALL_DIR%\data
set CONFIG_FILE=%INSTALL_DIR%\my.ini
set TEMP_DIR=%BAT_DIR%\mysql_install
:: 清理临时目录
if exist "%TEMP_DIR%" (
rmdir /s /q "%TEMP_DIR%"
)
mkdir "%TEMP_DIR%"
:: 检查ZIP文件是否存在
if not exist "%MYSQL_ZIP%" (
echo [错误] 未找到 %MYSQL_ZIP%
echo 请将此批处理文件放在MySQL ZIP文件同级目录
pause
exit
)
echo [1/8] 正在解压MySQL文件...
:: 使用系统自带的tar解压(Win10 1709+支持)
tar -xf "%MYSQL_ZIP%" -C "%TEMP_DIR%" 2>nul
if errorlevel 1 (
echo [错误] 解压失败,请确保系统支持tar命令
echo 或者使用WinRAR/7-Zip手动解压
pause
exit
)
echo [2/8] 正在复制文件到安装目录...
if exist "%INSTALL_DIR%" (
echo 删除旧安装目录...
echo rmdir /s /q "%INSTALL_DIR%" 2>nul
)
xcopy "%TEMP_DIR%\mysql-8.0.46-winx64\*" "%INSTALL_DIR%\" /E /I /Y /Q
echo [3/8] 正在创建数据和日志目录...
if not exist "%DATA_DIR%" mkdir "%DATA_DIR%"
if not exist "%INSTALL_DIR%\logs" mkdir "%INSTALL_DIR%\logs"
if not exist "%INSTALL_DIR%\tmp" mkdir "%INSTALL_DIR%\tmp"
echo [4/8] 正在创建配置文件...
(
echo [mysqld]
echo port=3306
echo basedir="%INSTALL_DIR:\=\\%"
echo datadir="%DATA_DIR:\=\\%"
echo character-set-server=utf8mb4
echo default-storage-engine=INNODB
echo sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
echo max_connections=200
echo max_connect_errors=10
echo table_open_cache=2000
echo tmp_table_size=64M
echo max_heap_table_size=64M
echo thread_cache_size=10
echo myisam_max_sort_file_size=100G
echo myisam_sort_buffer_size=68M
echo key_buffer_size=16M
echo read_buffer_size=64K
echo read_rnd_buffer_size=256K
echo sort_buffer_size=256K
echo innodb_flush_log_at_trx_commit=1
echo innodb_log_buffer_size=8M
echo innodb_buffer_pool_size=128M
echo innodb_log_file_size=48M
echo innodb_thread_concurrency=8
echo log-error="%INSTALL_DIR:\=\\%\\logs\\error.log"
echo slow_query_log=1
echo slow_query_log_file="%INSTALL_DIR:\=\\%\\logs\\slow_query.log"
echo long_query_time=2
echo log-bin="%INSTALL_DIR:\=\\%\\logs\\mysql-bin"
echo binlog_format=ROW
echo server-id=1
echo.
echo [mysql]
echo default-character-set=utf8mb4
echo.
echo [client]
echo port=3306
echo default-character-set=utf8mb4
) > "%CONFIG_FILE%"
echo [5/8] 初始化MySQL数据库...
cd /d "%INSTALL_DIR%\bin"
mysqld --initialize-insecure --console
echo 5秒后继续执行
timeout /t 5 /nobreak
echo [6/8] 安装MySQL服务...
mysqld --install MySQL8.0.46
echo 5秒后继续执行
timeout /t 5 /nobreak
echo [7/8] 启动MySQL服务...
net start MySQL8.0.46
echo 5秒后继续执行
timeout /t 5 /nobreak
echo [8/8] 设置root密码...
mysql -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;"
echo 5秒后继续执行
timeout /t 5 /nobreak
echo.
echo ========================================
echo MySQL 8.0.46 安装完成!
echo ========================================
echo 安装目录: %INSTALL_DIR%
echo 数据目录: %DATA_DIR%
echo 配置文件: %CONFIG_FILE%
echo.
echo 连接信息:
echo 用户名: root
echo 密码: root
echo 端口: 3306
echo.
echo 请及时修改root密码!
echo 修改命令: mysqladmin -u root -p password 新密码
echo ========================================
echo.
:cleanup
:: 清理临时文件
if exist "%TEMP_DIR%" (
rmdir /s /q "%TEMP_DIR%"
)
:: 添加到系统PATH
setx PATH "%INSTALL_DIR%\bin;%PATH%" /m >nul
echo MySQL已添加到系统PATH,重启终端后生效
echo.
pause
exit
:error_exit
echo 安装过程中出现错误
pause
exit /b 1
执行效果如下:
bash
D:\p\1>title MySQL 8.0.46 一键安装工具
D:\p\1>rem color 0A
D:\p\1>"C:\Windows\system32\cacls.exe" "C:\Windows\system32\config\system" 1>nul 2>&1
D:\p\1>if 0 NEQ 0 (
echo 请求管理员权限...
goto UACPrompt
) else (goto gotAdmin )
D:\p\1>if exist "C:\Users\ADMINI~1\AppData\Local\Temp\getadmin.vbs" (del "C:\Users\ADMINI~1\AppData\Local\Temp\getadmin.vbs" )
D:\p\1>echo ========================================
========================================
D:\p\1>echo MySQL 8.0.46 一键安装工具
MySQL 8.0.46 一键安装工具
D:\p\1>echo ========================================
========================================
D:\p\1>echo.
D:\p\1>sc query MySQL8.0.46 1>nul 2>&1
D:\p\1>if 1060 EQU 0 (
echo [错误] MySQL8.0.46服务已存在!
echo 请先卸载现有MySQL服务
pause
exit
)
D:\p\1>set "BAT_DIR=D:\p\1\"
D:\p\1>echo 批处理文件目录: D:\p\1\
批处理文件目录: D:\p\1\
D:\p\1>set "BAT_DIR=D:\p\1"
D:\p\1>echo 处理后的目录: D:\p\1
处理后的目录: D:\p\1
D:\p\1>set MYSQL_VERSION=8.0.46
D:\p\1>set MYSQL_ZIP=mysql-8.0.46-winx64.zip
D:\p\1>set INSTALL_DIR=D:\p\1\mysql-8.0.46-winx64
D:\p\1>set DATA_DIR=D:\p\1\mysql-8.0.46-winx64\data
D:\p\1>set CONFIG_FILE=D:\p\1\mysql-8.0.46-winx64\my.ini
D:\p\1>set TEMP_DIR=D:\p\1\mysql_install
D:\p\1>if exist "D:\p\1\mysql_install" (rmdir /s /q "D:\p\1\mysql_install" )
D:\p\1>mkdir "D:\p\1\mysql_install"
D:\p\1>if not exist "mysql-8.0.46-winx64.zip" (
echo [错误] 未找到 mysql-8.0.46-winx64.zip
echo 请将此批处理文件放在MySQL ZIP文件同级目录
pause
exit
)
D:\p\1>echo [1/8] 正在解压MySQL文件...
[1/8] 正在解压MySQL文件...
D:\p\1>tar -xf "mysql-8.0.46-winx64.zip" -C "D:\p\1\mysql_install" 2>nul
D:\p\1>if errorlevel 1 (
echo [错误] 解压失败,请确保系统支持tar命令
echo 或者使用WinRAR/7-Zip手动解压
pause
exit
)
D:\p\1>echo [2/8] 正在复制文件到安装目录...
[2/8] 正在复制文件到安装目录...
D:\p\1>if exist "D:\p\1\mysql-8.0.46-winx64" (
echo 删除旧安装目录...
echo rmdir /s /q "D:\p\1\mysql-8.0.46-winx64" 2>nul
)
D:\p\1>xcopy "D:\p\1\mysql_install\mysql-8.0.46-winx64\*" "D:\p\1\mysql-8.0.46-winx64\" /E /I /Y /Q
302 File(s) copied
D:\p\1>echo [3/8] 正在创建数据和日志目录...
[3/8] 正在创建数据和日志目录...
D:\p\1>if not exist "D:\p\1\mysql-8.0.46-winx64\data" mkdir "D:\p\1\mysql-8.0.46-winx64\data"
D:\p\1>if not exist "D:\p\1\mysql-8.0.46-winx64\logs" mkdir "D:\p\1\mysql-8.0.46-winx64\logs"
D:\p\1>if not exist "D:\p\1\mysql-8.0.46-winx64\tmp" mkdir "D:\p\1\mysql-8.0.46-winx64\tmp"
D:\p\1>echo [4/8] 正在创建配置文件...
[4/8] 正在创建配置文件...
D:\p\1>(
echo [mysqld]
echo port=3306
echo basedir="D:\\p\\1\\mysql-8.0.46-winx64"
echo datadir="D:\\p\\1\\mysql-8.0.46-winx64\\data"
echo character-set-server=utf8mb4
echo default-storage-engine=INNODB
echo sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
echo max_connections=200
echo max_connect_errors=10
echo table_open_cache=2000
echo tmp_table_size=64M
echo max_heap_table_size=64M
echo thread_cache_size=10
echo myisam_max_sort_file_size=100G
echo myisam_sort_buffer_size=68M
echo key_buffer_size=16M
echo read_buffer_size=64K
echo read_rnd_buffer_size=256K
echo sort_buffer_size=256K
echo innodb_flush_log_at_trx_commit=1
echo innodb_log_buffer_size=8M
echo innodb_buffer_pool_size=128M
echo innodb_log_file_size=48M
echo innodb_thread_concurrency=8
echo log-error="D:\\p\\1\\mysql-8.0.46-winx64\\logs\\error.log"
echo slow_query_log=1
echo slow_query_log_file="D:\\p\\1\\mysql-8.0.46-winx64\\logs\\slow_query.log"
echo long_query_time=2
echo log-bin="D:\\p\\1\\mysql-8.0.46-winx64\\logs\\mysql-bin"
echo binlog_format=ROW
echo server-id=1
echo.
echo [mysql]
echo default-character-set=utf8mb4
echo.
echo [client]
echo port=3306
echo default-character-set=utf8mb4
) 1>"D:\p\1\mysql-8.0.46-winx64\my.ini"
D:\p\1>echo [5/8] 初始化MySQL数据库...
[5/8] 初始化MySQL数据库...
D:\p\1>cd /d "D:\p\1\mysql-8.0.46-winx64\bin"
D:\p\1\mysql-8.0.46-winx64\bin>mysqld --initialize-insecure --console
2026-05-01T02:48:04.452815Z 0 [Warning] [MY-011070] [Server] 'binlog_format' is deprecated and will be removed in a future release.
2026-05-01T02:48:04.453357Z 0 [System] [MY-013169] [Server] D:\p\1\mysql-8.0.46-winx64\bin\mysqld.exe (mysqld 8.0.46) initializing of server in progress as process 8432
2026-05-01T02:48:06.548921Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-05-01T02:48:40.856838Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2026-05-01T02:49:05.905465Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
D:\p\1\mysql-8.0.46-winx64\bin>echo 5秒后继续执行
5秒后继续执行
D:\p\1\mysql-8.0.46-winx64\bin>timeout /t 5 /nobreak
Waiting for 0 seconds, press CTRL+C to quit ...
D:\p\1\mysql-8.0.46-winx64\bin>echo [6/8] 安装MySQL服务...
[6/8] 安装MySQL服务...
D:\p\1\mysql-8.0.46-winx64\bin>mysqld --install MySQL8.0.46
Service successfully installed.
D:\p\1\mysql-8.0.46-winx64\bin>echo 5秒后继续执行
5秒后继续执行
D:\p\1\mysql-8.0.46-winx64\bin>timeout /t 5 /nobreak
Waiting for 0 seconds, press CTRL+C to quit ...
D:\p\1\mysql-8.0.46-winx64\bin>echo [7/8] 启动MySQL服务...
[7/8] 启动MySQL服务...
D:\p\1\mysql-8.0.46-winx64\bin>net start MySQL8.0.46
The MySQL8.0.46 service is starting......
The MySQL8.0.46 service was started successfully.
D:\p\1\mysql-8.0.46-winx64\bin>echo 5秒后继续执行
5秒后继续执行
D:\p\1\mysql-8.0.46-winx64\bin>timeout /t 5 /nobreak
Waiting for 0 seconds, press CTRL+C to quit ...
D:\p\1\mysql-8.0.46-winx64\bin>echo [8/8] 设置root密码...
[8/8] 设置root密码...
D:\p\1\mysql-8.0.46-winx64\bin>mysql -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;"
mysql: [Warning] Using a password on the command line interface can be insecure.
D:\p\1\mysql-8.0.46-winx64\bin>echo 5秒后继续执行
5秒后继续执行
D:\p\1\mysql-8.0.46-winx64\bin>timeout /t 5 /nobreak
Waiting for 0 seconds, press CTRL+C to quit ...
D:\p\1\mysql-8.0.46-winx64\bin>echo.
D:\p\1\mysql-8.0.46-winx64\bin>echo ========================================
========================================
D:\p\1\mysql-8.0.46-winx64\bin>echo MySQL 8.0.46 安装完成!
MySQL 8.0.46 安装完成!
D:\p\1\mysql-8.0.46-winx64\bin>echo ========================================
========================================
D:\p\1\mysql-8.0.46-winx64\bin>echo 安装目录: D:\p\1\mysql-8.0.46-winx64
安装目录: D:\p\1\mysql-8.0.46-winx64
D:\p\1\mysql-8.0.46-winx64\bin>echo 数据目录: D:\p\1\mysql-8.0.46-winx64\data
数据目录: D:\p\1\mysql-8.0.46-winx64\data
D:\p\1\mysql-8.0.46-winx64\bin>echo 配置文件: D:\p\1\mysql-8.0.46-winx64\my.ini
配置文件: D:\p\1\mysql-8.0.46-winx64\my.ini
D:\p\1\mysql-8.0.46-winx64\bin>echo.
D:\p\1\mysql-8.0.46-winx64\bin>echo 连接信息:
连接信息:
D:\p\1\mysql-8.0.46-winx64\bin>echo 用户名: root
用户名: root
D:\p\1\mysql-8.0.46-winx64\bin>echo 密码: root
密码: root
D:\p\1\mysql-8.0.46-winx64\bin>echo 端口: 3306
端口: 3306
D:\p\1\mysql-8.0.46-winx64\bin>echo.
D:\p\1\mysql-8.0.46-winx64\bin>echo 请及时修改root密码!
请及时修改root密码!
D:\p\1\mysql-8.0.46-winx64\bin>令: mysqladmin -u root -p password 新密码
The system cannot find the drive specified.
D:\p\1\mysql-8.0.46-winx64\bin>echo ========================================
========================================
D:\p\1\mysql-8.0.46-winx64\bin>echo.
D:\p\1\mysql-8.0.46-winx64\bin>if exist "D:\p\1\mysql_install" (rmdir /s /q "D:\p\1\mysql_install" )
D:\p\1\mysql-8.0.46-winx64\bin>setx PATH "D:\p\1\mysql-8.0.46-winx64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;" /m 1>nul
D:\p\1\mysql-8.0.46-winx64\bin>echo MySQL已添加到系统PATH,重启终端后生效
MySQL已添加到系统PATH,重启终端后生效
D:\p\1\mysql-8.0.46-winx64\bin>echo.
D:\p\1\mysql-8.0.46-winx64\bin>pause
Press any key to continue . . .