Windows Server 2019部署MySQL 8教程

Windows Server 2019部署MySQL 8教程

1. 前言

本教程旨在指导用户在Windows Server 2019操作系统上部署MySQL 8数据库。MySQL是世界上最流行的开源关系型数据库管理系统之一,广泛应用于各种规模的应用场景。

1.1 适用环境

  • Windows Server 2019 标准版/数据中心版
  • 至少2GB内存(建议4GB以上)
  • 至少10GB可用磁盘空间
  • 网络连接正常

1.2 MySQL 8特性

  • 性能提升:新的查询优化器、索引增强
  • 安全性增强:默认使用SHA-256密码认证、角色管理
  • 开发功能:窗口函数、JSON支持增强、通用表表达式
  • 高可用性:InnoDB集群、组复制改进
  • 管理工具:MySQL Workbench增强、性能模式

2. 系统环境准备

2.1 系统更新

  1. 打开服务器管理器
  2. 点击本地服务器
  3. 点击Windows Update 右侧的检查更新
  4. 安装所有可用更新,然后重启服务器

2.2 关闭或配置Windows Defender防火墙

  1. 打开服务器管理器
  2. 点击本地服务器
  3. 点击Windows Defender防火墙 右侧的启用禁用
  4. 如需启用防火墙,后续需要配置允许MySQL端口通过

3. MySQL 8安装

3.1 下载安装程序

  1. 访问MySQL官方下载页面:https://dev.mysql.com/downloads/mysql/
  2. 选择MySQL Community Server 8.0
  3. 选择Windows (x86, 64-bit), ZIP Archive
  4. 点击Download按钮
  5. 选择**No thanks, just start my download.**直接下载

3.2 解压安装包

  1. 将下载的ZIP文件解压到安装目录,建议路径:d:\Program Files\MySQL
  2. 解压后目录结构示例:d:\Program Files\MySQL\mysql-8.0.33-winx64
  3. 重命名目录为更简洁的名称(可选):d:\Program Files\MySQL\MySQL Server 8.0

3.3 配置MySQL环境变量

  1. 右键点击此电脑 ,选择属性
  2. 点击高级系统设置
  3. 点击环境变量
  4. 系统变量 中找到Path ,点击编辑
  5. 点击新建 ,添加MySQL的bin目录路径:d:\Program Files\MySQL\MySQL Server 8.0\bin
  6. 点击确定保存设置

3.4 创建配置文件

  1. 在MySQL安装目录下创建my.ini配置文件
  2. 编辑my.ini文件,添加以下内容:
ini 复制代码
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=d:\Program Files\MySQL\MySQL Server 8.0
# 设置mysql数据库的数据的存放目录
datadir=d:\Program Files\MySQL\MySQL Server 8.0\Data
# 允许最大连接数
max_connections=100
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用"mysql_native_password"插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4

3.5 初始化MySQL

  1. 管理员身份 打开命令提示符

  2. 切换到MySQL的bin目录:

    cmd 复制代码
    cd "d:\Program Files\MySQL\MySQL Server 8.0\bin"
  3. 执行初始化命令:

    cmd 复制代码
    mysqld --initialize --console
  4. 初始化完成后,记录输出中的临时密码(用于首次登录):

    复制代码
    [Server] A temporary password is generated for root@localhost: xxxxxxxx

3.6 安装MySQL服务

  1. 执行服务安装命令:

    cmd 复制代码
    mysqld --install MySQL80
  2. 安装成功会提示:Service successfully installed.

3.7 启动MySQL服务

  1. 执行启动命令:

    cmd 复制代码
    net start MySQL80
  2. 启动成功会提示:The MySQL80 service was started successfully.

4. MySQL基本配置

4.1 登录MySQL

  1. 使用临时密码登录MySQL:

    cmd 复制代码
    mysql -u root -p
  2. 输入初始化时记录的临时密码

4.2 修改root密码

  1. 登录成功后,执行修改密码命令:

    sql 复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourNewPassword123!';
  2. 刷新权限:

    sql 复制代码
    FLUSH PRIVILEGES;

4.3 创建新用户

  1. 创建新用户并设置密码:

    sql 复制代码
    CREATE USER 'myuser'@'%' IDENTIFIED BY 'MyPassword123!';
  2. 授予用户所有权限:

    sql 复制代码
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
  3. 刷新权限:

    sql 复制代码
    FLUSH PRIVILEGES;

4.4 创建数据库

  1. 创建数据库:

    sql 复制代码
    CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  2. 查看数据库:

    sql 复制代码
    SHOW DATABASES;

4.5 退出MySQL

sql 复制代码
EXIT;

5. 配置远程访问

5.1 配置MySQL允许远程连接

  1. 登录MySQL:

    cmd 复制代码
    mysql -u root -p
  2. 设置root用户允许远程连接:

    sql 复制代码
    UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
  3. 刷新权限:

    sql 复制代码
    FLUSH PRIVILEGES;
  4. 退出MySQL:

    sql 复制代码
    EXIT;

5.2 配置Windows防火墙

  1. 打开Windows Defender防火墙
  2. 点击高级设置
  3. 选择入站规则
  4. 点击新建规则...
  5. 规则类型 :选择端口 ,点击下一步
  6. 协议和端口 :选择TCP ,输入特定本地端口 为3306,点击下一步
  7. 操作 :选择允许连接 ,点击下一步
  8. 配置文件 :选择适用的网络配置文件,点击下一步
  9. 名称 :输入规则名称(如:MySQL 3306),点击完成

5.3 测试远程连接

  1. 在远程计算机上安装MySQL客户端或使用MySQL Workbench
  2. 连接到目标服务器:
    • Hostname: Windows Server 2019的IP地址
    • Port: 3306
    • Username: root或创建的新用户
    • Password: 对应的密码

6. 安装MySQL Workbench(可选)

6.1 下载MySQL Workbench

  1. 访问MySQL Workbench下载页面:https://dev.mysql.com/downloads/workbench/
  2. 选择Windows (x86, 64-bit)
  3. 点击Download按钮
  4. 选择**No thanks, just start my download.**直接下载

6.2 安装MySQL Workbench

  1. 双击运行下载的安装程序
  2. 按照安装向导完成安装

6.3 使用MySQL Workbench

  1. 打开MySQL Workbench
  2. 点击**+**号添加新连接
  3. 输入连接信息:
    • Connection Name: 连接名称(如:Local MySQL)
    • Hostname: localhost或127.0.0.1
    • Port: 3306
    • Username: root
    • Password: 点击**Store in Vault...**保存密码
  4. 点击Test Connection测试连接
  5. 点击OK保存连接

7. MySQL服务管理

7.1 启动/停止/重启MySQL服务

  1. 使用命令提示符(管理员身份):

    cmd 复制代码
    # 启动服务
    net start MySQL80
    
    # 停止服务
    net stop MySQL80
    
    # 重启服务
    net stop MySQL80 && net start MySQL80
  2. 使用服务管理工具:

    • 按下Win + R ,输入services.msc,点击确定
    • 找到MySQL80服务
    • 右键点击可选择启动停止重启等操作

7.2 设置MySQL服务开机自启

  1. 打开服务管理工具
  2. 找到MySQL80服务
  3. 右键点击,选择属性
  4. 启动类型 下拉菜单中选择自动
  5. 点击确定保存设置

8. 数据备份与恢复

8.1 使用mysqldump命令备份

  1. 打开命令提示符

  2. 执行备份命令:

    cmd 复制代码
    # 备份所有数据库
    mysqldump -u root -p --all-databases > C:\backup\mysql_all_backup.sql
    
    # 备份指定数据库
    mysqldump -u root -p mydatabase > C:\backup\mydatabase_backup.sql
    
    # 备份指定数据库的特定表
    mysqldump -u root -p mydatabase mytable > C:\backup\mydatabase_mytable_backup.sql

8.2 使用mysql命令恢复

  1. 确保目标数据库已创建(如果恢复单个数据库)

  2. 执行恢复命令:

    cmd 复制代码
    # 恢复所有数据库
    mysql -u root -p < C:\backup\mysql_all_backup.sql
    
    # 恢复指定数据库
    mysql -u root -p mydatabase < C:\backup\mydatabase_backup.sql

8.3 使用MySQL Workbench备份与恢复

8.3.1 备份数据库
  1. 打开MySQL Workbench
  2. 连接到MySQL服务器
  3. 点击Server 菜单,选择Data Export
  4. 选择要备份的数据库
  5. 选择备份方式(导出到转储文件或自我包含文件)
  6. 设置备份文件路径
  7. 点击Start Export开始备份
8.3.2 恢复数据库
  1. 打开MySQL Workbench
  2. 连接到MySQL服务器
  3. 点击Server 菜单,选择Data Import
  4. 选择导入源(从转储文件导入)
  5. 设置备份文件路径
  6. 选择目标数据库
  7. 点击Start Import开始恢复

8.4 自动备份脚本

  1. 创建PowerShell备份脚本mysql_backup.ps1

    powershell 复制代码
    # MySQL备份脚本
    
    # 配置参数
    $MYSQL_BIN = "d:\Program Files\MySQL\MySQL Server 8.0\bin"
    $BACKUP_DIR = "d:\backup"
    $DB_USER = "root"
    $DB_PASS = "YourPassword"
    $DATE = Get-Date -Format "yyyyMMdd_HHmmss"
    
    # 创建备份目录
    if (-not (Test-Path $BACKUP_DIR)) {
        New-Item -ItemType Directory -Path $BACKUP_DIR | Out-Null
    }
    
    # 备份所有数据库
    $BACKUP_FILE = "$BACKUP_DIR\mysql_all_backup_$DATE.sql"
    & "$MYSQL_BIN\mysqldump.exe" -u $DB_USER -p$DB_PASS --all-databases > $BACKUP_FILE
    
    # 删除7天前的备份
    Get-ChildItem -Path $BACKUP_DIR -Filter "*.sql" | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)} | Remove-Item
    
    Write-Host "MySQL备份完成:$BACKUP_FILE"
  2. 创建Windows任务计划程序:

    • 打开任务计划程序
    • 点击创建基本任务...
    • 输入任务名称(如:MySQL自动备份)
    • 设置触发器(如:每天凌晨2点)
    • 选择启动程序作为操作
    • 浏览选择powershell.exe
    • 添加参数 中输入:-ExecutionPolicy Bypass -File "C:\scripts\mysql_backup.ps1"
    • 完成任务创建

9. MySQL性能优化

9.1 调整内存配置

  1. 打开my.ini配置文件
  2. 修改以下内存相关参数:
ini 复制代码
[mysqld]
# 缓冲池大小(建议为系统内存的50-70%)
innodb_buffer_pool_size=2G

# 缓冲池实例数量(建议与CPU核心数相同)
innodb_buffer_pool_instances=4

# 日志缓冲区大小
innodb_log_buffer_size=16M

# 每个连接使用的缓冲区大小
sort_buffer_size=4M
read_buffer_size=4M
read_rnd_buffer_size=8M
join_buffer_size=4M

9.2 调整连接配置

ini 复制代码
[mysqld]
# 最大连接数
max_connections=200

# 连接超时时间(秒)
wait_timeout=28800
interactive_timeout=28800

9.3 调整InnoDB配置

ini 复制代码
[mysqld]
# 日志文件大小
innodb_log_file_size=512M

# 日志文件数量
innodb_log_files_in_group=2

# 检查点完成目标
innodb_checkpoint_completion_target=0.9

# 并发线程数
innodb_thread_concurrency=16

9.4 重启MySQL服务使配置生效

cmd 复制代码
net stop MySQL80 && net start MySQL80

10. 常见问题与故障排除

10.1 MySQL服务无法启动

  1. 检查my.ini配置文件是否存在语法错误

  2. 检查数据目录权限是否正确

  3. 查看MySQL错误日志:d:\Program Files\MySQL\MySQL Server 8.0\Data\hostname.err

  4. 尝试重新初始化MySQL:

    cmd 复制代码
    mysqld --remove MySQL80
    rmdir /s /q "d:\Program Files\MySQL\MySQL Server 8.0\Data"
    mysqld --initialize --console
    mysqld --install MySQL80
    net start MySQL80

10.2 忘记root密码

  1. 停止MySQL服务:

    cmd 复制代码
    net stop MySQL80
  2. 以安全模式启动MySQL:

    cmd 复制代码
    mysqld --console --skip-grant-tables --shared-memory
  3. 重新打开一个命令提示符,登录MySQL:

    cmd 复制代码
    mysql -u root
  4. 修改root密码:

    sql 复制代码
    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
  5. 关闭安全模式的MySQL进程,重新启动服务:

    cmd 复制代码
    net start MySQL80

10.3 无法远程连接MySQL

  1. 检查MySQL服务是否正在运行

  2. 检查MySQL配置是否允许远程连接

  3. 检查Windows防火墙是否允许3306端口通过

  4. 检查网络连接是否正常

  5. 尝试使用telnet测试端口连通性:

    cmd 复制代码
    telnet 192.168.1.100 3306

10.4 数据库连接过多

  1. 检查当前连接数:

    sql 复制代码
    SHOW PROCESSLIST;
  2. 终止长时间运行的查询:

    sql 复制代码
    KILL <process_id>;
  3. 考虑增加max_connections参数

11. 总结

本教程详细介绍了在Windows Server 2019操作系统上部署MySQL 8数据库的完整过程,包括:

  1. 系统环境准备和更新
  2. MySQL 8的下载和安装(ZIP方式)
  3. MySQL环境变量配置
  4. 配置文件创建和修改
  5. 数据库初始化和服务安装
  6. 基本的数据库管理操作
  7. 远程访问配置
  8. MySQL Workbench的安装和使用
  9. 数据备份与恢复方法
  10. 服务管理和性能优化
  11. 常见问题与故障排除

通过本教程,用户可以在Windows Server 2019环境下成功部署和管理MySQL 8数据库,满足各种应用场景的需求。MySQL作为一款成熟的开源数据库,在Windows Server 2019环境下同样能够提供稳定可靠的服务。

12. 参考资料

相关推荐
纪伊路上盛名在1 小时前
记1次BioPython Entrez模块Elink的debug
前端·数据库·python·debug·工具开发
程序员水自流1 小时前
MySQL数据库自带系统数据库功能介绍
java·数据库·mysql·oracle
旧梦吟2 小时前
脚本网页 三人四字棋
前端·数据库·算法·css3·html5
小光学长2 小时前
基于ssm的考研复习平台w0ws1848(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
-大头.2 小时前
数据库高可用架构终极指南
数据库·架构
Elastic 中国社区官方博客2 小时前
Elasticsearch:构建一个 AI 驱动的电子邮件钓鱼检测
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
德育处主任Pro2 小时前
在亚马逊云上解决RDS、MariaDB 与 Aurora MySQL复制延迟实战指南
数据库·mysql·mariadb
l1t2 小时前
解决PostgreSQL中找不到uniq函数的错误
数据库·postgresql
墨白曦煜2 小时前
深入剖析 Redis 客户端:Sentinel 模式下的“寻址”与“感知”艺术
数据库·redis·sentinel