尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

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

发布时间:2026/9/24 19:34:41

资讯中心
01
ARTICLE

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

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 的完整安装、初始化、常见排错和基础优化已经一条龙走完。这套流程我前后在不同服务器上跑过好几遍踩坑点就是上面提到的那些照着走基本能一路顺风。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。