关注

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

双击一个文件,就自动安装完成,安装后默认密码为root,可以直接使用,非常方便。

工具下载地址:http://www.zrscsoft.com/sitepic/12178.html

直接上脚本:

@echo off
chcp 65001 >nul
title MySQL 8.4.9 一键安装工具
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.4.9 一键安装工具
echo ========================================
echo.

:: 检查是否已安装MySQL
sc query MySQL8.4.9 >nul 2>&1
if %errorlevel% EQU 0 (
    echo [错误] MySQL8.4.9服务已存在!
    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.4.9
set MYSQL_ZIP=mysql-8.4.9-winx64.zip
set INSTALL_DIR=%BAT_DIR%\mysql-8.4.9-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.4.9-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
if errorlevel 1 (
    echo [错误] 初始化失败!
    pause
    exit
)

echo [6/8] 安装MySQL服务...
mysqld --install MySQL8.4.9
if errorlevel 1 (
    echo [错误] 服务安装失败!
    pause
    exit
)

echo [7/8] 启动MySQL服务...
net start MySQL8.4.9
if errorlevel 1 (
    echo [错误] 服务启动失败!
    goto cleanup
)

echo [8/8] 设置root密码...
mysql -u root --skip-password -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;"

echo.
echo ========================================
echo     MySQL 8.4.9 安装完成!
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

运行效果如下:

D:\p\1>title MySQL 8.4.9 一键安装工具

D:\p\1>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.4.9 一键安装工具
   MySQL 8.4.9 一键安装工具

D:\p\1>echo ========================================
========================================

D:\p\1>echo.


D:\p\1>sc query MySQL8.4.9  1>nul 2>&1

D:\p\1>if 1060 EQU 0 (
echo [错误] MySQL8.4.9服务已存在!
 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.4.9

D:\p\1>set MYSQL_ZIP=mysql-8.4.9-winx64.zip

D:\p\1>set INSTALL_DIR=D:\p\1\mysql-8.4.9-winx64

D:\p\1>set DATA_DIR=D:\p\1\mysql-8.4.9-winx64\data

D:\p\1>set CONFIG_FILE=D:\p\1\mysql-8.4.9-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.4.9-winx64.zip" (
echo [错误] 未找到 mysql-8.4.9-winx64.zip
 echo 请将此批处理文件放在MySQL ZIP文件同级目录
 pause
 exit
)

D:\p\1>echo [1/8] 正在解压MySQL文件...
[1/8] 正在解压MySQL文件...

D:\p\1>tar -xf "mysql-8.4.9-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.4.9-winx64" (
echo 删除旧安装目录...
 echo rmdir /s /q "D:\p\1\mysql-8.4.9-winx64"  2>nul
)

D:\p\1>xcopy "D:\p\1\mysql_install\mysql-8.4.9-winx64\*" "D:\p\1\mysql-8.4.9-winx64\" /E /I /Y /Q
296 File(s) copied

D:\p\1>echo [3/8] 正在创建数据和日志目录...
[3/8] 正在创建数据和日志目录...

D:\p\1>if not exist "D:\p\1\mysql-8.4.9-winx64\data" mkdir "D:\p\1\mysql-8.4.9-winx64\data"

D:\p\1>if not exist "D:\p\1\mysql-8.4.9-winx64\logs" mkdir "D:\p\1\mysql-8.4.9-winx64\logs"

D:\p\1>if not exist "D:\p\1\mysql-8.4.9-winx64\tmp" mkdir "D:\p\1\mysql-8.4.9-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.4.9-winx64"
 echo datadir="D:\\p\\1\\mysql-8.4.9-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.4.9-winx64\\logs\\error.log"
 echo slow_query_log=1
 echo slow_query_log_file="D:\\p\\1\\mysql-8.4.9-winx64\\logs\\slow_query.log"
 echo long_query_time=2
 echo log-bin="D:\\p\\1\\mysql-8.4.9-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.4.9-winx64\my.ini"

D:\p\1>echo [5/8] 初始化MySQL数据库...
[5/8] 初始化MySQL数据库...

D:\p\1>cd /d "D:\p\1\mysql-8.4.9-winx64\bin"

D:\p\1\mysql-8.4.9-winx64\bin>mysqld --initialize-insecure --console
2026-05-01T03:52:33.082371Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2026-05-01T03:52:33.111573Z 0 [Warning] [MY-011070] [Server] 'binlog_format' is deprecated and will be removed in a future release.
2026-05-01T03:52:33.112147Z 0 [System] [MY-013169] [Server] D:\p\1\mysql-8.4.9-winx64\bin\mysqld.exe (mysqld 8.4.9) initializing of server in progress as process 10948
2026-05-01T03:52:36.928033Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2026-05-01T03:53:48.332234Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2026-05-01T03:55:03.751807Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2026-05-01T03:55:32.281870Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.

D:\p\1\mysql-8.4.9-winx64\bin>if errorlevel 1 (
echo [错误] 初始化失败!
 pause
 exit
)

D:\p\1\mysql-8.4.9-winx64\bin>echo [6/8] 安装MySQL服务...
[6/8] 安装MySQL服务...

D:\p\1\mysql-8.4.9-winx64\bin>mysqld --install MySQL8.4.9
Service successfully installed.

D:\p\1\mysql-8.4.9-winx64\bin>if errorlevel 1 (
echo [错误] 服务安装失败!
 pause
 exit
)

D:\p\1\mysql-8.4.9-winx64\bin>echo [7/8] 启动MySQL服务...
[7/8] 启动MySQL服务...

D:\p\1\mysql-8.4.9-winx64\bin>net start MySQL8.4.9
The MySQL8.4.9 service is starting........
The MySQL8.4.9 service was started successfully.


D:\p\1\mysql-8.4.9-winx64\bin>if errorlevel 1 (
echo [错误] 服务启动失败!
 goto cleanup
)

D:\p\1\mysql-8.4.9-winx64\bin>echo [8/8] 设置root密码...
[8/8] 设置root密码...

D:\p\1\mysql-8.4.9-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.
ERROR 1524 (HY000) at line 1: Plugin 'mysql_native_password' is not loaded

D:\p\1\mysql-8.4.9-winx64\bin>echo.


D:\p\1\mysql-8.4.9-winx64\bin>echo ========================================
========================================

D:\p\1\mysql-8.4.9-winx64\bin>echo     MySQL 8.4.9 安装完成!
    MySQL 8.4.9 安装完成!

D:\p\1\mysql-8.4.9-winx64\bin>echo ========================================
========================================

D:\p\1\mysql-8.4.9-winx64\bin>echo 安装目录: D:\p\1\mysql-8.4.9-winx64
安装目录: D:\p\1\mysql-8.4.9-winx64

D:\p\1\mysql-8.4.9-winx64\bin>echo 数据目录: D:\p\1\mysql-8.4.9-winx64\data
数据目录: D:\p\1\mysql-8.4.9-winx64\data

D:\p\1\mysql-8.4.9-winx64\bin>echo 配置文件: D:\p\1\mysql-8.4.9-winx64\my.ini
配置文件: D:\p\1\mysql-8.4.9-winx64\my.ini

D:\p\1\mysql-8.4.9-winx64\bin>echo.


D:\p\1\mysql-8.4.9-winx64\bin>echo 连接信息:
连接信息:

D:\p\1\mysql-8.4.9-winx64\bin>echo 用户名: root
用户名: root

D:\p\1\mysql-8.4.9-winx64\bin>echo 密码: root
密码: root

D:\p\1\mysql-8.4.9-winx64\bin>echo 端口: 3306
端口: 3306

D:\p\1\mysql-8.4.9-winx64\bin>echo.


D:\p\1\mysql-8.4.9-winx64\bin>echo 请及时修改root密码!
请及时修改root密码!

D:\p\1\mysql-8.4.9-winx64\bin>令: mysqladmin -u root -p password 新密码
The system cannot find the drive specified.

D:\p\1\mysql-8.4.9-winx64\bin>echo ========================================
========================================

D:\p\1\mysql-8.4.9-winx64\bin>echo.


D:\p\1\mysql-8.4.9-winx64\bin>if exist "D:\p\1\mysql_install" (rmdir /s /q "D:\p\1\mysql_install" )

D:\p\1\mysql-8.4.9-winx64\bin>setx PATH "D:\p\1\mysql-8.4.9-winx64\bin;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;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;" /m  1>nul

D:\p\1\mysql-8.4.9-winx64\bin>echo MySQL已添加到系统PATH,重启终端后生效
MySQL已添加到系统PATH,重启终端后生效

D:\p\1\mysql-8.4.9-winx64\bin>echo.


D:\p\1\mysql-8.4.9-winx64\bin>pause
Press any key to continue . . .

安装完成的效果如下:

卸载mysql8.4.9脚本如下:

@echo off
chcp 65001 >nul
echo   停止服务...
net stop MySQL8.4.9 >nul 2>&1
timeout /t 1 /nobreak >nul
echo   删除服务...
sc delete MySQL8.4.9 >nul
echo   清理注册表...
reg delete "HKLM\SYSTEM\CurrentControlSet\Services\MySQL8.4.9" /f 2>nul
echo.

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/jlq_diligence/article/details/160684425

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--