首页/新闻资讯/正文详情

MySQL 9.1.0安装教程:Windows与Linux全流程保姆级指南

发布时间:2026/9/24 19:34:44 来源:云帆数科 栏目:资讯中心
MySQL 9.1.0安装教程:Windows与Linux全流程保姆级指南
1. 写在安装之前为什么9.1.0值得你重新折腾一遍MySQL 9.1.0 是 Oracle 在创新版Innovation Release序列里的重要一版也是从 8.x 迈向新版本号体系之后普通开发者最容易接触到的“第一个大版本跳跃”。很多人一看到版本号从 8.0 跳到 9.1第一反应是“又改了个寂寞”但实际装完用上之后你会发现这一版在密码认证、clone 插件、MySQL Shell 语义、以及部分 SQL 模式的默认行为上都有肉眼可见的变化。这篇教程面向的是三类人刚接触 MySQL 不久想从零装一个最新版练手的新手已经在用 8.0但想评估 9.x 兼容性的开发或 DBA想要一份“照着敲就能跑通”的保姆级步骤不想在百度/Google 之间反复横跳的人。我会用 Windows 和 LinuxCentOS / Ubuntu 都有涉及两条主线来写因为这两类系统在安装思路上差异很大而且网上大量教程都只说一半导致很多人卡在 service 起不来、socket 连不上、root 密码重置这些环节。这篇不会再让你踩同样的坑。2. 下载前必须确认的三件事版本、平台、安装方式2.1 先分清“创新版”和“长期支持版”MySQL 从 8.0 之后采用了双版本线Innovation Release创新版和LTS长期支持版。9.1.0 属于创新版特点是功能更新快、会引入新特性但对应的维护周期短适合开发测试环境如果是生产环境求稳继续用 8.0.x 或者等 9.x 的 LTS 版本更保险。你在官网会看到类似MySQL Community Server 9.1.0的下载入口同时旁边还挂着8.0.40之类的 LTS 版本。不要选错。这篇教程的目标就是 9.1.0下载时认准这个版本号即可。2.2 确认操作系统和位数MySQL 官方安装包对系统的区分非常严格。Windows 下分.msi和.zip两种Linux 下分glibc2.28类通用包、rpm包、deb包。建议先执行uname -mLinux或查看系统属性Windows确认是 x86_64 还是 ARM 架构。以最常见的 x86_64 为例系统推荐安装包说明Windows 10/11mysql-9.1.0-winx64.zip 或 .msi.msi 适合交互式安装.zip 适合免安装CentOS 7/8, Rocky Linuxmysql-9.1.0-el7-x86_64.tar.gz 或 rpm bundleel7 兼容性好el8/el9 也能用Ubuntu 22.04/24.04mysql-9.1.0-linux-glibc2.28-x86_64.tar.xz 或 apt 源若用官方 tar 包需手动初始化Docker 场景mysql:9.1.0 镜像一条命令拉起适合快速体验2.3 想清楚用“源码包/二进制包”还是“包管理器”很多人一上来就apt install mysql-server结果装出来的是发行版仓库里的老版本根本不是 9.1.0。如果你一定要用包管理器建议先添加 MySQL 官方 apt/yum 源再安装这样才可能拿到 9.1.0。教程后面会给出具体命令。3. Windows 下安装 MySQL 9.1.0从 ZIP 包到命令行启动3.1 为什么我推荐 ZIP 包而不是 MSIMSI 安装器虽然点点点就行但它有一个隐藏问题默认安装路径经常带空格比如C:\Program Files\MySQL后续写配置文件、配环境变量、跑一些自动化脚本时容易踩坑。ZIP 免安装版反而更干净你把它解压到某个纯英文目录手动写一个my.ini再初始化数据目录就能完全掌控整个实例。这里我用D:\mysql-9.1.0-winx64作为示例目录。3.2 解压并配置 my.ini解压完成后在根目录新建一个文本文件重命名为my.ini。下面这份配置是经过实测的直接用就行[mysqld] # 端口号默认3306如果被占用可以改成3307 port3306 # 安装目录改成你自己的实际路径注意用双斜杠或反斜杠 basedirD:/mysql-9.1.0-winx64 # 数据目录存放数据库文件 datadirD:/mysql-9.1.0-winx64/data # 允许最大连接数 max_connections200 # 字符集设置 character-set-serverutf8mb4 collation-serverutf8mb4_0900_ai_ci # 默认存储引擎 default-storage-engineINNODB # 跳过MySQL8.0默认的caching_sha2_password这边可选 # default_authentication_pluginmysql_native_password [client] port3306 default-character-setutf8mb4注意basedir和datadir不能写错否则初始化必然报错MySQL 9.x 依然支持utf8mb4_0900_ai_ci作为默认排序规则不用刻意改成utf8mb4_general_cidefault_authentication_plugin参数我注释掉了因为 9.x 里mysql_native_password插件已被标记为废弃不建议再设置不然密码认证方式会退回老协议。3.3 初始化数据目录用管理员身份打开 CMD进入 MySQL 的bin目录执行cd D:\mysql-9.1.0-winx64\bin mysqld --initialize-insecure --console这里我用的是--initialize-insecure含义是初始化数据目录并且 root 账号初始密码为空。如果用--initialize系统会随机生成一个临时密码打印在控制台里记不住的话后续还得靠跳过授权表重置非常麻烦。初始化完成后你会在D:\mysql-9.1.0-winx64下看到data文件夹说明数据目录已生成。3.4 安装 Windows 服务并启动继续在管理员 CMD 中执行mysqld --install MySQL91 net start MySQL91--install后面跟的是服务显示名称我用MySQL91来区分 8.0 的服务。执行成功后服务会出现在 Windows 服务列表里并且开机自启。如果net start报错优先查看data目录下的.err日志文件里面会有明确的错误原因。大部分情况是my.ini路径写错或者端口被占用。3.5 使用 root 登录并修改密码初始化时我们用了空密码现在需要用 root 登录后再设置密码mysql -uroot -p -- 提示输入密码时直接回车 ALTER USER rootlocalhost IDENTIFIED BY 你的新密码; FLUSH PRIVILEGES;到这里Windows 下的安装已经完成。4. Linux 下安装 MySQL 9.1.0通用二进制包全流程Linux 上的坑比 Windows 多得多尤其是依赖库和目录权限。如果是 CentOS 7/8 或兼容环境我更推荐直接用 MySQL 官方提供的 Yum 源Ubuntu 用户则可以用 Apt 源当然也可以手动解压通用二进制包。这里先讲 Yum/Apt 源方案再补充手动 tar 包的路径。4.1 CentOS / Rocky Linux 使用官方 Yum 源首先安装 MySQL 官方仓库配置包。以 CentOS 7 为例rpm -Uvh https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm注意官方仓库名是mysql84-community但仓库内部已经包含了 9.x 的 RPM。安装完仓库配置后执行yum install mysql-community-server -y如果仓库里默认启用的是 8.4 LTS你可以手动禁用 8.4 子仓库、启用 9.1 子仓库yum install yum-utils -y yum-config-manager --disable mysql84-community yum-config-manager --enable mysql-9.1-community yum install mysql-community-server -y安装完成后启动服务systemctl start mysqld systemctl enable mysqld4.2 Ubuntu 使用官方 Apt 源Ubuntu 的方法稍微迂回一点。先下载并安装仓库配置包wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb dpkg -i mysql-apt-config_0.8.33-1_all.deb安装过程中会弹出选择界面把 MySQL Server Cluster 的版本选成mysql-9.1然后一路 OK。再执行apt update apt install mysql-server -yUbuntu 装完默认启动的是mysql.service直接systemctl status mysql就能看到。4.3 通用二进制包安装tar.gz如果你不想污染系统的包管理器或者需要定制目录结构通用二进制包是最灵活的方案。groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /usr/local tar -xvf mysql-9.1.0-linux-glibc2.28-x86_64.tar.xz mv mysql-9.1.0-linux-glibc2.28-x86_64 mysql-9.1.0 ln -s mysql-9.1.0 mysql创建数据目录并修改权限mkdir -p /usr/local/mysql-data chown -R mysql:mysql /usr/local/mysql /usr/local/mysql-data初始化cd /usr/local/mysql/bin ./mysqld --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql-data这里注意如果不加--usermysqlmysqld 会拒绝以 root 身份初始化。初始化完成后用--daemonize参数后台启动./mysqld --daemonize --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql-data4.4 设置 systemd 服务如果你希望用systemctl管理可以手动创建服务文件/etc/systemd/system/mysqld91.service[Unit] DescriptionMySQL 9.1.0 Afternetwork.target [Service] Typesimple Usermysql Groupmysql ExecStart/usr/local/mysql/bin/mysqld --basedir/usr/local/mysql --datadir/usr/local/mysql-data Restarton-failure LimitNOFILE65535 [Install] WantedBymulti-user.target然后执行systemctl daemon-reload systemctl start mysqld91 systemctl enable mysqld914.5 Linux 下首次登录的临时密码如果使用了--initialize带随机密码执行下面命令从日志中提取临时密码grep temporary password /var/log/mysqld.log然后登录并改密mysql -uroot -p ALTER USER rootlocalhost IDENTIFIED BY 新密码;5. 安装完成后必须做的检查服务、端口、密码策略5.1 检查服务进程和端口监听systemctl status mysqld ss -lntp | grep 3306Windows 下用netstat -ano | findstr 33065.2 检查插件与默认认证方式MySQL 9.x 默认认证插件是caching_sha2_password登录后可以用下面的 SQL 查看SHOW VARIABLES LIKE default_authentication_plugin; SELECT user, host, plugin FROM mysql.user;如果你用的是比较老的客户端比如 8.0 之前的驱动或 Navicat 旧版连接时可能报Authentication plugin caching_sha2_password cannot be loaded。解决办法有两个升级客户端驱动到支持 caching_sha2_password 的新版本将该用户的认证方式改回 mysql_native_password不推荐但兼容老项目ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 密码;5.3 修改默认密码策略9.1.0 默认密码策略为STRONG要求密码包含大小写字母、数字和特殊字符且长度至少 8 位。如果只是本地开发太复杂的密码纯粹给自己找麻烦SET GLOBAL validate_password.policy LOW; SET GLOBAL validate_password.length 4;注意这些是全局动态变量重启后失效。想永久生效需要写进my.ini或/etc/my.cnf[mysqld] validate_password.policyLOW validate_password.length46. 高频报错排查从 2002 到 1045 到安装失败6.1 ERROR 2002 (HY000): Cant connect to local MySQL server through socket这是 Linux 平台最经典的问题很多人刚装完 9.1.0 就卡在这里。原因通常是 MySQL 服务没启动或者客户端连接时走的 socket 文件路径和服务端不一致。先确认服务到底起没起systemctl status mysqld91如果服务是 active (running)但还是报 socket 错误那就要检查 socket 文件路径。默认一般位于/tmp/mysql.sock或/var/run/mysqld/mysqld.sock。通过命令行指定主机和 socket 重试mysql -uroot -p --socket/tmp/mysql.sock还有一种可能是目录/var/run/mysqld不存在mysqld 无法创建 socket 文件。手动创建并授权mkdir -p /var/run/mysqld chown mysql:mysql /var/run/mysqld6.2 ERROR 1045 (28000): Access denied for user rootlocalhost这个报错的意思是认证失败密码错误或 root 账号不允许从当前来源登录。常见场景是刚安装完不知道初始密码或者改了密码忘了。如果记得密码但不想用可以用以下步骤重置停止 MySQL 服务以跳过授权表方式启动mysqld --skip-grant-tables --skip-networking 直接空密码登录mysql -uroot -p修改密码FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 新密码;退出并重启正常服务。注意9.x 里--skip-grant-tables模式默认也会禁用远程连接这是保护机制。6.3 Windows 下 datadir 初始化失败Windows 下mysqld --initialize-insecure如果报Failed to create data directory十有八九是my.ini里datadir的目录不存在或没有读写权限。先手动创建对应文件夹再赋予当前用户完全控制权限然后重跑。6.4 服务无法启动The service already exists重复执行mysqld --install会提示服务已存在。可以先删除mysqld --remove MySQL91再重新安装。6.5 MySQL 启动后自动退出 / 崩溃Linux 下用通用二进制包启动时最常见的是缺少libaio依赖yum install libaio -y # 或 apt install libaio1 -yCentOS 7 上还容易缺ncurses-compat-libs一并提醒。7. 安装完顺手做的三件优化初始化账号、字符集、远程访问7.1 创建普通用户而不是固守 root刚装完 MySQL 的人很喜欢一直用 root 干活后面项目上线时再改权限会非常痛苦。建议装完顺手建一个业务账号CREATE USER app_userlocalhost IDENTIFIED BY App123456; GRANT ALL PRIVILEGES ON app_db.* TO app_userlocalhost; FLUSH PRIVILEGES;7.2 字符集统一 utf8mb4MySQL 8.0 默认已经是 utf8mb4但很多老项目导进来的库还是 latin1最终导致中文乱码。安装完建议检查SHOW VARIABLES LIKE character_set_server; SHOW VARIABLES LIKE collation_server;如果不是 utf8mb4再在配置文件里强制指定character-set-serverutf8mb4 collation-serverutf8mb4_0900_ai_ci7.3 开放远程连接注意安全需要远程连 MySQL 时先看 root 用户是否允许远程访问SELECT user, host FROM mysql.user WHERE userroot;默认 root 的 host 是localhost不支持远程。可以创建专用远程账号CREATE USER remote_user% IDENTIFIED BY Remote123456; GRANT ALL PRIVILEGES ON *.* TO remote_user% WITH GRANT OPTION; FLUSH PRIVILEGES;同时确保 Linux 防火墙放行 3306firewall-cmd --permanent --add-port3306/tcp firewall-cmd --reload到这里MySQL 9.1.0 的完整安装、初始化、常见排错和基础优化已经一条龙走完。这套流程我前后在不同服务器上跑过好几遍踩坑点就是上面提到的那些照着走基本能一路顺风。

相关推荐

净利润暴增529%背后:拆解工厂智能物流集成商的V型反转与真实含金量
净利润暴增529%背后:拆解工厂智能物流集成商的V型反转与真实含金量

朋友圈被一条财报数据刷了屏:净利润同比暴增529%。乍一看以为是哪家互联网大厂,结果点进去是一家做工厂智能物流的集成商。这个行业平时很低调,名字扔到街上没几个人认识,但就是这样的公司,在过去一年里走了一个标准的… · 2026/9/24 19:34:44

智慧旅游平台架构设计与核心功能实战解析
智慧旅游平台架构设计与核心功能实战解析

1. 智慧旅游到底在解决旅游行业的什么真问题先说个背景。做了几年智慧城市相关项目之后,我接到了一个智慧旅游平台的项目。第一次和甲方开会时,对方文旅局的负责人讲了半小时需求,总结下来就一句话:游客觉得行程难规划、排队难忍受… · 2026/9/24 19:34:37

工业AI搜索获客:从关键词到决策节点的范式升级
工业AI搜索获客:从关键词到决策节点的范式升级

1. 这不是“SEO公司推荐”,而是工业装备企业获客能力的底层重构最近三个月,我连续跑了七家年营收5亿以上的高端设备制造商——从精密数控机床厂到半导体封装设备供应商,发现一个扎心的事实:他们花在百度竞价上的钱,平均… · 2026/9/24 19:34:37

数据库慢SQL优化实战:10个典型案例深度剖析
数据库慢SQL优化实战:10个典型案例深度剖析

大部分后端开发第一次背上线上事故,往往就栽在一条慢SQL上。我印象最深的一次,业务高峰期数据库CPU直接被打满,最后定位到一条跑了将近12秒的明细查询,当时整张订单表几百万数据,就因为它没走索引,把库拖到… · 2026/9/24 20:09:35

非洲税务合规需求爆发,全球网络+区域专精如何破局?
非洲税务合规需求爆发,全球网络+区域专精如何破局?

开门见山说。这则合作消息在专业服务圈里不算那种刷屏级别的新闻,但如果你长期关注全球税务咨询行业的布局动向,就会意识到它背后传递的信号比表面看起来要重得多。Andersen Global这个品牌,老审计、老税务咨询的人都不陌生;而Luc… · 2026/9/24 20:09:35

红外与可见光图像融合实战:从预处理到模型部署
红外与可见光图像融合实战:从预处理到模型部署

简介:本资源是一份面向高校计算机视觉方向课程设计与期末大作业的深度学习实践项目,聚焦红外与可见光图像融合这一多模态图像处理典型任务,适合具备Python基础与PyTorch/TensorFlow入门经验的学习者快速上手。压缩包共3个Python源文件&#x… · 2026/9/24 20:09:35

deque与priority_queue深度拆解:底层原理、适配器本质与C++面试实战
deque与priority_queue深度拆解:底层原理、适配器本质与C++面试实战

你有没有发现,C面试八股里有个特别有意思的组合——deque和priority_queue。这俩名字都带“queue”,但一个属于容器,一个属于容器适配器,底层逻辑、适用场景几乎完全不一样。把这两个东西放在一起聊,不是因为它们长得像… · 2026/9/24 20:09:35

手机扫码接管终端:Ternimal让AI Agent远程监控更轻量
手机扫码接管终端:Ternimal让AI Agent远程监控更轻量

不知道你有没有过这种经历:人在地铁上、在饭局上、或者在床上已经躺平了,但脑子里突然闪过一个念头——服务器上那个跑了好几个小时的数据处理任务,到底跑完没有?训练脚本是不是在中途就报错退出了?那个AI Agent任务日… · 2026/9/24 20:09:35

Flet TextSpan 详解:用纯 Python 构建富文本、超链接与交互式文本片段
Flet TextSpan 详解:用纯 Python 构建富文本、超链接与交互式文本片段

前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 TextSpan 是 Flet 中用于在 Text 控件内… · 2026/9/24 20:09:28

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码