一键安装mysql8.0.46(附脚本)

双击一个文件,就自动安装完成,安装后默认密码为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 . . .
相关推荐
abc123456sdggfd5 小时前
C#怎么使用gRPC双向流_C#如何实现高效RPC调用【进阶】
jvm·数据库·python
qq_414256576 小时前
Redis如何解决哨兵通知延迟问题_优化客户端连接池动态刷新拓扑的订阅监听机制
jvm·数据库·python
m0_676544386 小时前
MySQL如何配置不同级别的事务锁_调整innodb_locks_unsafe_for_binlog
jvm·数据库·python
dFObBIMmai6 小时前
mysql索引区分度不足如何解决_mysql多列索引组合优化
jvm·数据库·python
神明9316 小时前
SQL处理JOIN查询中数据倾斜的问题_散列连接键或增加缓存
jvm·数据库·python
m0_591364736 小时前
c++ 实时傅里叶变换stft c++如何进行音频的频谱分析
jvm·数据库·python
2401_832365526 小时前
MySQL无法修改数据表结构_检查磁盘空间与元数据锁
jvm·数据库·python
l1t6 小时前
类似 X-13ARIMA-SEATS 功能的 JDemetra+ 安装和使用
java·数据库·r语言
X56616 小时前
c++ aot编程 c++如何使用oneapi进行跨平台并行编程
jvm·数据库·python