• MySQL 8.0.x 全平台安装指南:Windows、CentOS、Ubuntu 详细步骤与问题解决
  • 2025-11-02 13:59:16
  • MySQL 8.0.x 全平台安装指南:Windows、CentOS、Ubuntu 详细步骤与问题解决摘要本文是一篇针对 MySQL 8.0.x 版本的全平台安装实战教程,涵盖 Windows(使用 Installer 工具)、CentOS 7、Ubuntu 22.04.3 LTS 三种主流操作系统。内容从安装前准备、软件下载、分步安装配置,到服务管理、密码设置、登录验证,再到卸载清理,全程提供详细操作指令、代码块与截图说明,同时包含版本选择、密码策略调整、防火墙配置等关键技术点解析。无论你是开发环境搭建的新手,还是需要跨平台部署数据库的工程师,都能通过本文快速完成 MySQL 安装与基础配置,避免常见踩坑点。

    1. 前言:安装前必看说明在开始 MySQL 安装前,需明确版本选择逻辑与前置检查项,避免因环境问题导致安装失败或后续使用异常。

    1.1 版本选择依据本文以 MySQL 8.0.x 版本为核心(如 8.0.34、8.0.39),选择该版本的原因如下:

    稳定性:8.0.x 系列为 MySQL 官方长期支持(LTS)版本,修复了早期版本的大量 bug,兼容主流开发框架(如 Spring Boot、Django)。新特性:支持窗口函数、JSON 增强、原子 DDL 等实用功能,满足现代应用开发需求。安全性:默认启用 validate_password 组件,强制密码复杂度,减少弱密码风险。 注意:避免选择 5.7 及以下版本(除非项目有历史兼容需求),5.7 系列将于 2023 年底停止官方支持,后续无安全更新。

    1.2 安装前置检查无论哪种操作系统,安装前需完成以下检查:

    关闭现有 MySQL 服务:若之前安装过 MySQL,需先停止服务(Windows 可通过“服务”面板,Linux 用 systemctl stop mysqld),避免端口冲突。清理残留文件:卸载旧版本后,需删除残留的配置文件(如 /etc/my.cnf(Linux)、C:\ProgramData\MySQL(Windows)),否则新安装会读取旧配置导致异常。确认权限:Linux 需使用 root 用户或 sudo 权限执行命令,Windows 建议以“管理员身份”运行 Installer,避免文件权限不足。2. Windows 系统下 MySQL 8.0.x 安装(使用 Installer)Windows 系统推荐使用官方 MySQL Installer 工具安装,该工具集成了服务器、客户端(Workbench)、文档等组件,支持一键配置,适合新手操作。

    2.1 下载 MySQL Installer访问 MySQL 官方下载页:MySQL Installer 下载地址版本选择: Select Version:选择 8.0.x 最新版本(如 8.0.39)。Select Operating System:选择 Microsoft Windows。下载文件:推荐下载离线完整包 mysql-installer-community-8.0.39.0.msi(约 300MB),避免在线安装时因网络问题中断。登录验证:下载时需登录 Oracle 账户(无账户可免费注册,或使用浏览器隐私模式跳过登录)。在这里插入图片描述图 2-1:MySQL Installer 下载页面,红框标注为离线完整包下载步骤

    2.2 运行 Installer 选择组件在这里插入图片描述双击下载的 msi 文件,若弹出“用户账户控制”提示,点击“是”。选择安装类型:默认进入“Custom”(自定义)模式,点击“Next”。过滤组件: 点击“Edit”按钮,设置过滤器: Category:选择“All Software”。Maturity:选择“Current GA”(稳定版本)。Architecture:选择“Any”选择核心组件: 展开 MySQL Servers → 勾选 MySQL Server 8.0.39 - X64(核心服务)。展开 Applications → 勾选 MySQL Workbench 8.0.38 - X64(可视化管理工具,用于后续操作数据库)。其他组件(如 MySQL Shell、Router)可暂不勾选,后续需用时可重新运行 Installer 补充安装。

    在这里插入图片描述在这里插入图片描述在这里插入图片描述添加组件:点击组件右侧的“→”箭头,将选中的组件移至“Products To Be Installed”列表,点击“Next”。2.3 自定义安装路径在这里插入图片描述点击“Advanced Options”(高级选项),设置安装路径: Install Directory(程序目录):建议修改为非系统盘(如 D:\Program Files\MySQL\MySQL Server 8.0),避免 C 盘空间不足。Data Directory(数据目录):保持默认(C:\ProgramData\MySQL\MySQL Server 8.0),若修改需记住路径,后续卸载时需手动清理。点击“OK”保存路径,再点击“Next”进入安装确认页。

    在这里插入图片描述确认安装:点击“Execute”开始安装,等待组件下载(离线包无需下载,直接解压安装),直至所有组件显示“Complete”,点击“Next”。在这里插入图片描述2.4 MySQL 服务器配置(核心步骤)安装完成后,进入 Product Configuration(产品配置)阶段,此步骤决定 MySQL 服务是否能正常运行,需逐项仔细配置。

    2.4.1 服务器类型与网络配置Config Type(配置类型):选择 Development Computer(开发机),该模式分配较少系统资源,适合本地开发使用;若用于生产环境,选择 Server Computer。Networking(网络配置): 勾选 TCP/IP(启用 TCP/IP 协议,支持远程连接)。Port:默认 3306(MySQL 默认端口,若需修改需记住新端口,后续登录需指定)。X Protocol Port:默认 33060(用于 X 协议连接,暂无需修改)。勾选 Open Windows Firewall ports for network access(开放防火墙端口,避免本地连接被拦截)。点击“Next”进入密码加密策略配置。2.4.2 密码加密策略选择在这里插入图片描述MySQL 8.0 提供两种加密方式,需根据客户端兼容性选择:

    Use Strong Password Encryption (RECOMMENDED)(推荐):使用 SHA256 加密,安全性高,需确保客户端(如 Workbench、JDBC 驱动)为 8.0 及以上版本。Use Legacy Authentication Method(兼容模式):使用 MySQL 5.x 传统加密,适合旧客户端(如 Navicat 11 及以下),安全性较低。 建议:若为新环境,优先选择“强密码加密”;若后续连接时报“加密方式不支持”,可重新运行 Installer 选择“Reconfigure”修改加密策略。

    点击“Next”进入密码设置页面。

    2.4.3 root 密码设置与用户管理在这里插入图片描述Root Account Password:设置 root 用户密码(如 MySQL@1234),需满足默认密码策略(至少 8 位,包含大小写字母、数字、特殊字符)。Repeat Password:重复输入密码,确保一致。MySQL User Accounts(可选):点击“Add User”创建普通用户(如 dev_user),分配 DB Admin 或 DB Designer 角色,适合多用户协作场景,新手可暂不创建。点击“Next”进入 Windows 服务配置。2.4.4 Windows 服务配置(自启动)在这里插入图片描述Configure MySQL Server as a Windows Service:勾选(将 MySQL 注册为 Windows 服务,支持通过服务面板管理)。Windows Service Name:默认 MySQL80(建议保持默认,便于识别)。Start the MySQL Server at System Startup:勾选(设置开机自启动,避免每次手动启动服务)。Run Windows Service as:选择 Standard System Account(默认系统账户,权限足够,无需自定义账户)。点击“Next”进入权限设置页面。

    2.4.5 数据目录权限设置在这里插入图片描述选择 Yes, grant full access to the user running the Windows Service and the administrators group only(默认选项,仅服务用户和管理员有数据目录权限,安全性高)。点击“Next”进入配置执行页面,点击“Execute”开始应用配置(包括写入配置文件、启动服务、更新防火墙规则)。等待配置完成,所有步骤显示“Complete”后,点击“Finish”。2.5 组件配置完成与验证在这里插入图片描述 后续组件配置:

    MySQL Router:无需配置,直接点击“Finish”。Samples and Examples:输入 root 密码,点击“Check”验证连接,再点击“Execute”安装示例数据库(可选,用于学习 SQL 操作)。 安装完成:点击“Finish”,勾选“Start MySQL Workbench after setup”(启动 Workbench)。

    在这里插入图片描述 登录验证:

    打开 MySQL Workbench,点击“Local instance MySQL80”。输入 root 密码,点击“OK”,若显示“Connected”,表示安装成功。

    在这里插入图片描述2.6 Windows 下 MySQL 卸载步骤若需卸载 MySQL,需通过 Installer 完整清理,避免残留文件影响后续安装:

    运行 MySQL Installer,选择“Remove”(卸载模式)。

    在这里插入图片描述 勾选需卸载的组件(如 MySQL Server 8.0.39、MySQL Workbench),点击“Next”。

    在这里插入图片描述 Remove the data directory:勾选(删除数据目录,若需保留数据可取消勾选),点击“Next”。

    在这里插入图片描述 点击“Execute”开始卸载,等待所有组件显示“Completed”,点击“Finish”。

    在这里插入图片描述 手动清理残留:删除安装目录(如 D:\Program Files\MySQL)和数据目录(如 C:\ProgramData\MySQL),重启电脑完成清理。

    在这里插入图片描述3. CentOS 7 系统下 MySQL 8.0.x 安装(Yum 仓库方式)CentOS 7 推荐使用 MySQL Yum 仓库 安装,相比源码编译更简单,支持自动更新依赖,适合生产环境快速部署。

    3.1 确认系统版本与 root 权限登录 CentOS 7 系统,切换至 root 用户(若当前为普通用户,执行 sudo su -,输入密码)。确认系统版本:执行以下命令,确保系统为 CentOS 7.x:代码语言:javascript代码运行次数:0运行复制# 查看系统版本

    cat /etc/redhat-release

    # 预期输出:CentOS Linux release 7.9.2009 (Core)3.2 添加 MySQL Yum 源MySQL 官方提供针对不同 CentOS 版本的 Yum 发布包,需下载对应版本。

    3.2.1 下载对应系统的 Yum 发布包在这里插入图片描述访问 MySQL Yum 仓库下载页:MySQL Yum Repository 下载地址选择 CentOS 7 对应的发布包:mysql80-community-release-el7-10.noarch.rpm(el7 表示 CentOS 7,10 为发布包版本)。在 CentOS 终端执行以下命令下载(或本地下载后通过 rz 工具上传):代码语言:javascript代码运行次数:0运行复制# 安装 rz 工具(支持拖拽上传文件)

    yum -y install lrzsz

    # 上传 rpm 包(执行后拖拽文件至终端,按 Enter 确认)

    rz

    # 查看上传的文件

    ll

    # 预期输出:-rw-r--r-- 1 root root 11472 Aug 25 01:12 mysql80-community-release-el7-10.noarch.rpm3.2.2 安装 Yum 发布包并验证安装发布包,将 MySQL Yum 源添加到系统 repo 目录:代码语言:javascript代码运行次数:0运行复制yum -y install mysql80-community-release-el7-10.noarch.rpm验证 Yum 源是否添加成功:代码语言:javascript代码运行次数:0运行复制# 查看启用的 MySQL repo

    yum repolist enabled | grep mysql.*-community预期输出(表示 3 个关键 repo 已启用):代码语言:javascript代码运行次数:0运行复制mysql-connectors-community/x86_64 MySQL Connectors Community 227

    mysql-tools-community/x86_64 MySQL Tools Community 100

    mysql80-community/x86_64 MySQL 8.0 Community Server 4263.3 选择 MySQL 发布系列(确认启用状态)查看所有 MySQL 发布系列的启用状态:代码语言:javascript代码运行次数:0运行复制yum repolist all | grep mysql关键输出(需确保以下 3 个 repo 为 enabled 状态):代码语言:javascript代码运行次数:0运行复制mysql-connectors-community/x86_64 MySQL Connectors Community enabled: 227

    mysql-tools-community/x86_64 MySQL Tools Community enabled: 100

    mysql80-community/x86_64 MySQL 8.0 Community Server enabled: 426若 mysql80-community 为 disabled,执行以下命令启用:代码语言:javascript代码运行次数:0运行复制# 启用 MySQL 8.0 系列

    yum-config-manager --enable mysql80-community

    # 禁用其他系列(如 5.7)

    yum-config-manager --disable mysql57-community3.4 安装 MySQL 服务器与依赖执行以下命令安装 MySQL 服务器及客户端依赖:

    代码语言:javascript代码运行次数:0运行复制yum install mysql-community-server -y安装过程中,系统会自动下载并安装依赖包(如 mysql-community-client、mysql-community-libs)。等待安装完成,若显示“Complete!”,表示安装成功。3.5 MySQL 服务管理(启动、状态、自启动)启动 MySQL 服务:代码语言:javascript代码运行次数:0运行复制systemctl start mysqld查看服务状态(确认是否运行):代码语言:javascript代码运行次数:0运行复制systemctl status mysqld预期输出(Active: active (running) 表示服务正常运行):代码语言:javascript代码运行次数:0运行复制● mysqld.service - MySQL Server

    Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)

    Active: active (running) since Tue 2023-08-29 00:39:04 PDT; 2min 6s ago

    Docs: man:mysqld(8)

    http://dev.mysql.com/doc/refman/en/using-systemd.html

    Process: 4080 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)

    Main PID: 4107 (mysqld)

    Status: "Server is operational"

    CGroup: /system.slice/mysqld.service

    └─4107 /usr/sbin/mysqld设置开机自启动(避免重启后服务失效):代码语言:javascript代码运行次数:0运行复制# 设置自启动

    systemctl enable mysqld

    # 验证自启动状态

    systemctl list-unit-files | grep mysqld

    # 预期输出:mysqld.service enabled3.6 首次登录与临时密码获取MySQL 8.0 首次安装后,会在错误日志中生成 root 用户的临时密码,需获取后登录并修改。

    查看临时密码:代码语言:javascript代码运行次数:0运行复制grep 'temporary password' /var/log/mysqld.log预期输出(IRDMJQ_.v566 为临时密码,每个人的不同):代码语言:javascript代码运行次数:0运行复制2023-08-25T08:32:10.905479Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IRDMJQ_.v566使用临时密码登录 MySQL:代码语言:javascript代码运行次数:0运行复制mysql -uroot -p

    # 输入临时密码(粘贴时注意不要包含空格),按 Enter 登录登录成功后,会显示 MySQL 命令行提示符 mysql>。3.7 密码策略调整与密码修改默认情况下,MySQL 启用 validate_password 组件,强制密码复杂度,若需设置简单密码(如开发环境),需先调整策略。

    3.7.1 查看当前密码策略代码语言:javascript代码运行次数:0运行复制-- 查看密码策略级别(0=LOW,1=MEDIUM,2=STRONG)

    show variables like 'validate_password.policy';

    -- 查看密码最小长度

    show variables like 'validate_password.length';预期输出:

    代码语言:javascript代码运行次数:0运行复制+--------------------------+--------+

    | Variable_name | Value |

    +--------------------------+--------+

    | validate_password.policy | MEDIUM |

    +--------------------------+--------+

    1 row in set (0.00 sec)

    +-------------------------+-------+

    | Variable_name | Value |

    +-------------------------+-------+

    | validate_password.length | 8 |

    +-------------------------+-------+

    1 row in set (0.00 sec)3.7.2 调整密码策略(开发环境)代码语言:javascript代码运行次数:0运行复制-- 设置策略为 LOW(仅校验长度)

    set global validate_password.policy=0;

    -- 设置密码最小长度为 4(系统限制不能小于 4)

    set global validate_password.length=4;

    -- 重新查看策略(需退出重登后生效)

    exit;

    mysql -uroot -p

    show variables like 'validate_password.policy';

    show variables like 'validate_password.length';3.7.3 修改 root 密码代码语言:javascript代码运行次数:0运行复制-- 修改 root 密码(如设置为 123456)

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    -- 刷新权限(确保修改生效)

    FLUSH PRIVILEGES;

    -- 退出后用新密码登录验证

    exit;

    mysql -uroot -p123456若登录成功,显示 mysql> 提示符,表示密码修改完成。

    4. Ubuntu 22.04.3 LTS 系统下 MySQL 8.0.x 安装(APT 源方式)Ubuntu 系统推荐使用 MySQL APT 源 安装,与系统包管理器兼容,支持自动解决依赖,安装流程比 CentOS 更简洁。

    4.1 切换 root 用户与安装工具登录 Ubuntu 系统,切换至 root 用户(普通用户需加 sudo):代码语言:javascript代码运行次数:0运行复制sudo su -

    # 输入当前普通用户密码,按 Enter 切换安装 lrzsz 工具(用于上传 APT 发布包):代码语言:javascript代码运行次数:0运行复制apt install lrzsz -y4.2 添加 MySQL APT 源4.2.1 下载 APT 发布包在这里插入图片描述访问 MySQL APT 源下载页:MySQL APT Repository 下载地址下载对应 Ubuntu 的发布包:mysql-apt-config_0.8.26-1_all.deb(兼容所有 Ubuntu 版本)。在 Ubuntu 终端上传 deb 包:代码语言:javascript代码运行次数:0运行复制# 执行 rz 后,拖拽 deb 文件至终端

    rz

    # 查看上传的文件

    ll

    # 预期输出:-rw-r--r-- 1 root root 18088 Aug 29 18:05 mysql-apt-config_0.8.26-1_all.deb4.2.2 安装 APT 发布包并更新源安装发布包,添加 MySQL APT 源到系统:代码语言:javascript代码运行次数:0运行复制dpkg -i mysql-apt-config_0.8.26-1_all.deb配置确认:弹出配置窗口,默认已选中 MySQL Server & Cluster (mysql-8.0),直接按方向键选择 并回车。更新 APT 源缓存(确保能获取到 MySQL 8.0 包):代码语言:javascript代码运行次数:0运行复制apt-get update -y若更新过程中提示“GPG 密钥错误”,执行以下命令导入官方密钥:代码语言:javascript代码运行次数:0运行复制apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29

    apt-get update -y4.3 安装 MySQL Server执行以下命令安装 MySQL 服务器:

    代码语言:javascript代码运行次数:0运行复制apt-get install mysql-server -y 安装过程中,弹出密码设置窗口:

    Enter root password:输入 root 密码(如 MySQL@1234)。Repeat password:重复输入密码。

    在这里插入图片描述 加密策略选择:弹出“Select default authentication plugin”窗口,选择 Use Strong Password Encryption (RECOMMENDED),按回车确认。

    在这里插入图片描述 等待安装完成,系统会自动启动 MySQL 服务。

    4.4 Ubuntu 下 MySQL 服务状态与自启动查看服务状态:代码语言:javascript代码运行次数:0运行复制systemctl status mysql预期输出(Active: active (running) 表示服务正常):代码语言:javascript代码运行次数:0运行复制● mysql.service - MySQL Community Server

    Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)

    Active: active (running) since Tue 2023-08-29 18:46:42 CST; 8min ago

    Docs: man:mysqld(8)

    http://dev.mysql.com/doc/refman/en/using-systemd.html

    Process: 5097 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)

    Main PID: 5097 (mysqld)

    Status: "Server is operational"

    Tasks: 37 (limit: 4542)

    Memory: 361.5M

    CPU: 2.581s

    CGroup: /system.slice/mysql.service

    └─5097 /usr/sbin/mysqld确认自启动:Ubuntu 安装后默认启用自启动,可通过以下命令验证:代码语言:javascript代码运行次数:0运行复制systemctl list-unit-files | grep mysql

    # 预期输出:mysql.service enabled4.5 Ubuntu 下 MySQL 登录验证使用 root 密码登录 MySQL:代码语言:javascript代码运行次数:0运行复制mysql -uroot -p

    # 输入安装时设置的密码,按 Enter 登录登录成功后,执行以下命令查看数据库列表:代码语言:javascript代码运行次数:0运行复制show databases;预期输出(显示默认数据库):代码语言:javascript代码运行次数:0运行复制+--------------------+

    | Database |

    +--------------------+

    | information_schema |

    | mysql |

    | performance_schema |

    | sys |

    +--------------------+

    4 rows in set (0.01 sec)表示 Ubuntu 下 MySQL 安装与登录成功。

    5. 全平台安装对比与常见问题解决5.1 三种系统安装步骤对比表步骤

    Windows(Installer)

    CentOS 7(Yum)

    Ubuntu 22.04(APT)

    1. 源配置

    无需手动配置,Installer 集成

    需下载并安装 Yum 发布包

    需下载并安装 APT 发布包

    2. 安装命令

    图形化点击“Execute”

    yum install mysql-community-server -y

    apt-get install mysql-server -y

    3. 服务启动

    自动启动,支持服务面板管理

    systemctl start mysqld

    自动启动,systemctl status mysql 验证

    4. 首次登录密码

    安装时手动设置

    从 /var/log/mysqld.log 获取临时密码

    安装时手动设置

    5. 密码策略调整

    Installer 图形化配置

    需执行 SQL 命令修改 validate_password 变量

    安装时选择加密策略,后续需 SQL 调整

    6. 卸载方式

    运行 Installer 选择“Remove”

    yum remove mysql-community-server -y + 删目录

    apt-get remove mysql-server -y + 删目录

    5.2 常见报错与解决方案报错 1:Windows 安装时“端口 3306 被占用”原因:其他程序(如 wampserver、旧 MySQL 服务)占用 3306 端口。解决方案: 打开“命令提示符”(管理员身份),执行 netstat -ano | findstr "3306",查看占用端口的进程 PID。打开“任务管理器”,找到对应 PID 的进程,结束进程。重新运行 Installer 继续安装。报错 2:CentOS 登录时“Access denied for user ‘root’@‘localhost’”原因:临时密码输入错误,或密码已过期。解决方案: 停止 MySQL 服务:systemctl stop mysqld。编辑配置文件:vi /etc/my.cnf,在 [mysqld] 下添加 skip-grant-tables(跳过权限验证)。重启服务:systemctl start mysqld。无密码登录:mysql -uroot,执行 ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';。删除 my.cnf 中的 skip-grant-tables,重启服务。报错 3:Ubuntu 远程连接时“Can’t connect to MySQL server on ‘IP’ (111)”原因:MySQL 绑定本地地址,未开放远程访问。解决方案: 登录 MySQL:mysql -uroot -p。授权 root 远程访问:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;。刷新权限:FLUSH PRIVILEGES;。开放 Ubuntu 防火墙 3306 端口:ufw allow 3306/tcp。6. 总结与扩展建议本文详细覆盖了 Windows、CentOS 7、Ubuntu 22.04 三种系统下 MySQL 8.0.x 的安装流程,核心要点包括:

    环境适配:根据操作系统选择对应的安装方式(Installer/Yum/APT),避免跨方式安装导致的兼容性问题。安全配置:优先启用强密码加密,设置复杂 root 密码,生产环境避免开放 root 远程访问(可创建普通用户并限制 IP)。服务管理:Linux 系统需熟练使用 systemctl 命令管理服务,Windows 可通过服务面板快速启停。扩展建议学习 MySQL 基础操作:安装完成后,可通过 MySQL Workbench 练习创建数据库、表、执行 SQL 语句(如 CREATE DATABASE test_db;、CREATE TABLE user (id INT PRIMARY KEY);)。配置远程连接:生产环境需开放 3306 端口(Linux 用 firewalld 或 ufw,Windows 用防火墙高级设置),并授权指定 IP 访问。备份与恢复:定期使用 mysqldump 命令备份数据库(如 mysqldump -uroot -p test_db > test_db_backup.sql),避免数据丢失。参考链接MySQL 官方文档:MySQL 8.0 Reference ManualMySQL Installer 下载:https://dev.mysql.com/downloads/installer/MySQL Yum 仓库:https://dev.mysql.com/downloads/repo/yum/MySQL APT 仓库:https://dev.mysql.com/downloads/repo/apt/