MySQL 9.7.1 LTS 安装教程 - Windows 11 或window 10

1、简介

MySQL 是全球最流行的开源关系型数据库管理系统,广泛应用于 Web 开发、数据分析、企业级应用等场景,是开发者必备的基础工具之一。它具有高性能、高可靠性、易用性强的特点,被 Facebook、Twitter、YouTube 等顶级互联网公司广泛使用。MySQL 社区版完全免费开源,遵循 GPL 协议

2、版本指南

MySQL 自 2023 年起分为两条主线:LTS(长期支持版) 和 Innovation(创新版) 。

版本线生命周期适用场景
LTS 长期支持版5 年标准支持 + 3 年扩展支持(共 8 年)生产环境首选,稳定性优先
Innovation 创新版仅约 3-6 个月,快速迭代体验新特性,不建议生产使用

3、版本比较

变化类型具体内容影响
mysql_native_password 彻底移除mysql_native_password 认证插件已从 9.7 中完全移除,无法通过 INSTALL PLUGIN 重新安装,因为共享对象文件不再暴露服务器所需的符号所有客户端必须支持 caching_sha2_password,旧版客户端必须升级
社区版功能增强多项原本仅限企业版的功能被下放至社区版,包括:Replication Applier Metrics、Group Replication Flow Control Statistics、Group Replication Resource Manager、Group Replication Primary Election 等社区版高可用和可观测性显著提升
OpenTelemetry 支持新增 OpenTelemetry/OTLP 遥测支持,增强可观测性便于集成现有监控体系
Hypergraph Optimizer引入 Hypergraph 查询优化器复杂查询性能提升
JSON Duality ViewsSQL 与 JSON 数据模型的统一视图灵活的数据访问方式
动态数据掩码(企业版)在查询时根据用户或角色自动对敏感数据进行掩码处理,无需修改应用程序增强数据安全与合规能力

4、AI向量检索

AI / 向量检索 / 新特性尝鲜:MySQL 9.x 系列新增了 VECTOR 数据类型和向量检索支持(自 9.0 起引入),适合 AI 应用场景

5、环境准备

MySQL 9.7.0 依赖 Visual C++ 2019/2022(17版本也可以) 可再发行组件。如果系统中缺少该组件,安装初始化时会报 vcruntime140_1.dll 缺失的错误

 从 Microsoft 官方下载 VC_redist.x64.exe 安装

2、检查 3306 端口是否被占用

netstat -ano | findstr :3306

6、安装步骤

6.1、下载 MySQL 9.7.0 安装包

官方地址:https://dev.mysql.com/downloads/mysql/

● 文件名格式:mysql-9.7.0-winx64.zip

● 文件大小:约 324 MB

6.2 、无需注册直接下载

6.3 解压安装包

下载的 ZIP 压缩包解压到一个纯英文、不含空格的目录,例如 D:\MySQL\mysql-9.7.0-winx64

ZIP 包解压后没有 data 目录和 my.ini 配置文件,这两项需要在后续步骤中手动创建

解压后的目录结构如下:

目录/文件说明
bin/MySQL 可执行文件(如 mysql.exe、mysqld.exe)
docs/官方文档
include/头文件
lib/库文件
share/错误消息、字符集等支持文件
README官方说明文件

6.4、打开环境变量设置

右键点击桌面上的”此电脑“→选择”属性“→点击”高级系统设置“→在弹出的”系统属性”窗口中,点击”环境变量“。

新建 MYSQL_HOME 系统变量

在”系统变量“区域点击”新建“,填写:

● 变量名:MYSQL_HOME

● 变量值:MySQL 解压根目录路径,例如 D:\MySQL\mysql-9.7.1-winx64

点击”确定“保存。

将 bin 目录添加到 Path 变量

在”系统变量“列表中找到 Path 变量,选中后点击”编辑“→点击”新建“→输入 %MYSQL_HOME%\bin→点击”确定“保存所有更改

6.4、创建配置文件 my.ini

新建 my.ini 文件

在 MySQL 解压根目录(如 D:\MySQL\mysql-9.7.0-winx64)下,新建一个文本文档,重命名为 my.ini

文件扩展名必须是 .ini 而不是 .txt。建议在资源管理器中开启”文件扩展名”显示(点击”查看”→”显示”→”文件扩展名”),避免重命名后仍是 .txt 格式。

编写 my.ini 配置内容

[mysqld]
# 设置 3306 端口
port=23307
# 设置 mysql 的安装目录 ----------是你的文件路径-------------
basedir=../
# 设置 mysql 数据库的数据的存放目录 ---------是你的文件路径 data 文件夹自行创建
datadir=../data
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集(utf8mb4 是完整 UTF-8,支持 Emoji)
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 开启慢查询日志(便于排查性能问题)
slow_query_log=1
long_query_time=2
# 错误日志
log_error=mysql-error.log

#已经移除“mysql_native_password”插件认证
#mysql_native_password
#mysql_native_password=ON
#default_authentication_plugin=mysql_native_password
#mysql --default-auth=mysql_native_password


mysqlx_bind_address = ::
mysqlx_port = 33060

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

[client]
# 设置 mysql 客户端连接服务端时默认使用的端口
port=23307
#default-auth=mysql_native_password
#default-character-set=utf8mb4
6.5、初始化数据目录

管理员身份

● --initialize:初始化数据目录,生成 data 文件夹,并为 root 账户生成一个临时随机密码

● --console:将初始化日志输出到控制台

cd /d D:\MySQL\mysql-9.7.1-winx64\bin
mysqld --initialize --console

保存临时密码

执行后,控制台会输出类似以下内容:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: xxxxx

7、安装并启动 Windows 服务

7.1、注册 Windows 服务

管理员 CMD 中执行

mysqld --install MySQL970 --defaults-file="D:\MySQL\mysql-9.7.1-winx64\my.ini"

● MySQL970:自定义的服务名称(便于区分版本)

● --defaults-file:指定配置文件的绝对路径

7.2、启动服务
net start MySQL970

看到 MySQL970 服务正在启动 . MySQL970 服务已经启动成功。 提示,说明服务启动成功。

💡  服务管理命令
​ ● 停止服务: net stop MySQL970
​ ● 重启服务: net stop MySQL970 && net start MySQL970
​ ● 卸载服务: mysqld --remove MySQL970
7.3、登录并修改 root 密码

1:使用临时密码登录,输入前面生成的临时密码

mysql -u root -p

2:修改 root 密码

登录成功后,在 mysql> 提示符下执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;

3:退出并重新登录验证

exit;
mysql -u root -p
# 输入新密码

看到 mysql> 提示符,说明一切正常。

7.4、配置远程连接(可选,仅开发环境)

MySQL 默认只允许本地连接。如需允许远程连接(如通过 Navicat 从另一台电脑连接),可执行以下操作

生产环境绝对不能按上述方式设置,应创建专用用户并仅授予必要的 IP 访问权限,如 CREATE USER 'appuser'@'192.168.1.%' IDENTIFIED BY 'password';

-- 切换到 mysql 数据库
USE mysql;

-- 查看当前 root 用户的主机配置
-- localhost 表示仅允许通过本机访问,% 则表示允许所有IP进行连接
SELECT Host, User FROM user;

-- 将 root 用户的主机修改为 %(允许任意 IP 连接)
UPDATE user SET Host = '%' WHERE User = 'root';

-- 刷新权限
FLUSH PRIVILEGES;

8、安装后验证清单

8.1、终端验证三连

打开新 CMD 窗口(不以管理员身份运行也可),依次执行:

mysql --version   # 应显示:mysql  Ver 9.7.0 for Win64 on x86_64 (MySQL Community Server - GPL)
mysql -u root -p  # 能正常登录
8.2 、服务状态验证

按 Win + R,输入 services.msc,在服务列表中找到 MySQL970,确认状态为 “正在运行”,启动类型可根据需要设置为”自动”或”手动”。

8.3、端口监听验证

在 CMD 中执行:

netstat -ano | findstr :23307

应显示端口 23307 正在监听,且状态为 LISTENING

8.4 4创建测试表验证
-- 创建测试数据库
CREATE DATABASE testdb;

-- 切换到测试数据库
USE testdb;

-- 创建测试表
CREATE TABLE test (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- 插入测试数据
INSERT INTO test (name) VALUES ('Hello MySQL 9.7.0');

-- 查询验证
SELECT * FROM test;

若正常显示插入的数据,说明数据库功能正常

9、基础配置与优化

9.1、服务管理
操作命令
启动服务net start MySQL970
停止服务net stop MySQL970
重启服务net stop MySQL970 && net start MySQL970
查看服务状态sc query MySQL970
卸载服务mysqld --remove MySQL970
💡  开机自启设置:在  services.msc 中找到  MySQL970,右键”属性”,将启动类型设为”自动”。
9.2、创建专用用户(最佳实践)

安装完成后,强烈不建议使用 root 账户进行日常开发,应创建专门的数据库用户:

-- 登录 MySQL
mysql -u root -p

-- 创建数据库
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建用户(仅允许本地连接)
CREATE USER 'appuser'@'localhost' IDENTIFIED BY '强密码';

-- 授予权限
GRANT ALL PRIVILEGES ON myapp.* TO 'appuser'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

-- 退出当前窗口
exit;

-- 使用新建用户登录
mysql -u appuser -p

-- 查看测试数据库是否存在
show databases;

允许远程连接(开发环境),将 'appuser'@'localhost' 改为 'appuser'@'%' 即可

9.3 常用性能参数调优

以下参数可在 my.ini 的 [mysqld] 段中调整

配置项建议值说明
max_connections200-500最大连接数,根据业务需求调整
innodb_buffer_pool_size物理内存的 50%-70%InnoDB 缓存池大小,最重要的性能参数
slow_query_log1开启慢查询日志
long_query_time2慢查询阈值(秒)
log_error指定日志文件路径错误日志位置
innodb_log_file_size512M-2GInnoDB 重做日志文件大小
innodb_flush_log_at_trx_commit2(性能优先)/ 1(安全优先)事务日志刷新策略
tmp_table_size64M-256M内存临时表最大大小
max_heap_table_size64M-256M内存表最大大小
9.4 客户端认证兼容(MySQL 9.7必须 )

MySQL 9.7 彻底移除了 mysql_native_password 认证插件,所有用户必须使用 caching_sha2_password 认证方式

无法通过 default_authentication_plugin=mysql_native_password 配置回退到旧认证方式
● 无法通过 INSTALL PLUGIN 重新安装 mysql_native_password 插件
● 所有连接 MySQL 9.7 的客户端必须支持 caching_sha2_password

方案1:升级客户端版本

将 Navicat、SQLyog、DBeaver 等客户端工具升级到最新版本,这些新版本已原生支持 caching_sha2_password 认证插件

方案2:确认用户使用正确的认证方式

-- 查看当前用户的认证插件
SELECT USER, HOST, PLUGIN FROM mysql.user;

-- 确保用户使用的是 caching_sha2_password
-- 如果从旧版本迁移过来的用户仍使用 mysql_native_password,需要修改:
ALTER USER 'username'@'host' IDENTIFIED WITH caching_sha2_password BY 'password';
FLUSH PRIVILEGES;

方案3:应用程序驱动升级

如果使用 Java、Python 等编程语言连接 MySQL 9.7:

● Java(JDBC) :升级 MySQL Connector/J 到 8.2.0 及以上版本,该版本原生支持 caching_sha2_password

● Python:升级 mysql-connector-python 到最新版本,或使用 pymysql 的最新版本

● PHP:确保 PHP 7.4+ 并升级 mysqli 扩展

9.5  OpenTelemetry 监控集成(MySQL 9.7 新特性)

MySQL 9.7 社区版新增了 OpenTelemetry/OTLP 遥测支持,可将 MySQL 的性能指标导出到 Prometheus、Jaeger 等监控系统。如有兴趣使用此功能,可参考 MySQL 9.7 官方参考手册中的 OpenTelemetry 相关章节

10、常见问题

Q1:mysql 不是内部或外部命令,也不是可运行的程序

● 原因:环境变量未配置或未生效。

● 解决:检查 MYSQL_HOME 和 Path 环境变量是否正确配置,关闭当前 CMD 窗口,重新打开一个新窗口再试。

Q2:vcruntime140_1.dll 缺失

● 原因:系统缺少 Visual C++ 2019⁄2022 可再发行组件。

● 解决:从 Microsoft 官方下载 VC_redist.x64.exe 安装,安装后重启电脑。

Q3:初始化报 Data directory has files

● 原因data 目录非空或已存在。

● 解决:删除 data 目录(如果存在),重新执行 mysqld --initialize --console

Q4:3306 端口被占用

● 原因:其他 MySQL 实例或应用(如 XAMPP、MariaDB)占用了 3306 端口。

● 解决

  • 方法一:停止占用端口的程序
  • 方法二:修改 my.ini 中的 port = 3307 改为其他端口,然后重新初始化并安装服务。

Q5:net start MySQL970 启动失败,服务无法启动

● 原因:配置文件 my.ini 路径错误、basedir/datadir 路径错误、或路径中包含中文/空格。

● 解决:检查 my.ini 文件是否存在于 MySQL 根目录,确认 basedir 和 datadir 路径与实际情况一致,确认路径中使用正斜杠 / 而非单反斜杠 \,检查错误日志:在 data 目录下找到 .err 文件,查看具体错误信息。

Q6:初始化时生成的临时密码丢失

● 原因:未及时保存临时密码,或日志被覆盖。

● 解决

  • 方法一:删除 data 目录,重新执行 mysqld --initialize --console,会生成新密码
  • 方法二:使用 --initialize-insecure 初始化(生成空密码),登录后修改密码

Q7:Access denied for user 'root'@'localhost'

● 原因:密码错误,或 CMD 未以管理员身份运行。

● 解决:确认输入的密码正确,尝试以管理员身份打开 CMD 再试,如果忘记密码,参考 7.2 节 Q6 重置密码。

Q8:Client does not support authentication protocol(2058 错误)

● 原因:MySQL 9.7 彻底移除了 mysql_native_password 插件,仅支持 caching_sha2_password 认证方式。旧版客户端不兼容。

● 解决

  • 方法一(推荐) :升级客户端工具到最新版本。Navicat Premium 16+、DBeaver 23+、DataGrip 2024+ 等均原生支持 caching_sha2_password
  • 方法二:升级编程语言的数据库驱动(如 MySQL Connector/J 8.2+、mysql-connector-python 最新版)
⚠️  注意:MySQL 9.7 无法通过修改配置或安装插件的方式恢复  mysql_native_password 支持

Q9:远程无法连接 MySQL

● 原因:用户 host 限制为 localhost,或防火墙未开放端口,或 my.ini 中 bind-address 未设置。

● 解决:执行 UPDATE mysql.user SET Host = '%' WHERE User = 'root'; FLUSH PRIVILEGES;(仅开发环境),在 Windows 防火墙中添加入站规则,开放 3306 端口,确保 my.ini 中没有 bind-address = 127.0.0.1(或注释掉该行)。

Q10:MySQL 服务意外停止或无法启动

● 原因:配置文件错误、数据目录损坏、端口冲突或权限不足。

● 解决:检查 my.ini 配置是否有语法错误,查看错误日志(data 目录下的 .err 文件),检查 3306 端口是否被占用,确保安装目录和数据目录具有完全控制权限。

Q11:中文插入或查询显示乱码

● 原因:字符集未设置为 utf8mb4

● 解决:在 my.ini 中确认 character-set-server = utf8mb4 和 default-character-set = utf8mb4,重启服务后对已有数据库执行 ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Q12:忘记 root 密码

● 解决:停止 MySQL 服务:net stop MySQL970,以管理员身份打开 CMD,进入 bin 目录,执行 mysqld --skip-grant-tables,新开一个 CMD 窗口,执行 mysql -u root 无密码登录,执行 FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';,关闭所有窗口,重启 MySQL 服务

Q13:从 MySQL 8.4 升级到 9.7 后,应用连接报认证错误

● 原因:MySQL 9.7 不再支持 mysql_native_password 认证。如果之前在 8.4 中使用 mysql_native_password 创建的用户,升级后即使密码正确也无法通过旧认证方式连接。

● 解决:在升级前,先将所有用户的认证方式从 mysql_native_password 迁移到 caching_sha2_password,同步升级所有客户端驱动和工具到支持 caching_sha2_password 的版本

ALTER USER 'username'@'host' IDENTIFIED WITH caching_sha2_password BY 'password';

11、常用 SQL 命令速查

操作SQL 语句
查看 MySQL 版本SELECT VERSION();
查看所有数据库SHOW DATABASES;
切换数据库USE database_name;
查看所有表SHOW TABLES;
查看表结构DESC table_name;
创建数据库CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
删除数据库DROP DATABASE dbname;
创建用户CREATE USER 'username'@'host' IDENTIFIED BY 'password';
授予权限GRANT ALL PRIVILEGES ON dbname.* TO 'username'@'host';
查看用户SELECT User, Host FROM mysql.user;
修改密码ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
刷新权限FLUSH PRIVILEGES;
导出数据库mysqldump -u root -p dbname > backup.sql
导入数据库mysql -u root -p dbname < backup.sql
查看用户认证插件SELECT User, Host, Plugin FROM mysql.user;

目录速查

路径说明
D:\MySQL\mysql-9.7.0-winx64MySQL 安装根目录
D:\MySQL\mysql-9.7.0-winx64\bin可执行文件目录
D:\MySQL\mysql-9.7.0-winx64\data数据文件目录(初始化后生成)
D:\MySQL\mysql-9.7.0-winx64\my.iniMySQL 配置文件(需手动创建)

参考

一张 120GB 的 MySQL 表,没删一行数据,瘦到了 84GB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值