本文是一篇针对 MySQL 8.0.x 版本的全平台安装实战教程,涵盖 Windows(使用 Installer 工具)、CentOS 7、Ubuntu 22.04.3 LTS 三种主流操作系统。内容从安装前准备、软件下载、分步安装配置,到服务管理、密码设置、登录验证,再到卸载清理,全程提供详细操作指令、代码块与截图说明,同时包含版本选择、密码策略调整、防火墙配置等关键技术点解析。无论你是开发环境搭建的新手,还是需要跨平台部署数据库的工程师,都能通过本文快速完成 MySQL 安装与基础配置,避免常见踩坑点。
在开始 MySQL 安装前,需明确版本选择逻辑与前置检查项,避免因环境问题导致安装失败或后续使用异常。
本文以 MySQL 8.0.x 版本为核心(如 8.0.34、8.0.39),选择该版本的原因如下:
validate_password 组件,强制密码复杂度,减少弱密码风险。注意:避免选择 5.7 及以下版本(除非项目有历史兼容需求),5.7 系列将于 2023 年底停止官方支持,后续无安全更新。
无论哪种操作系统,安装前需完成以下检查:
systemctl stop mysqld),避免端口冲突。/etc/my.cnf(Linux)、C:\ProgramData\MySQL(Windows)),否则新安装会读取旧配置导致异常。root 用户或 sudo 权限执行命令,Windows 建议以“管理员身份”运行 Installer,避免文件权限不足。Windows 系统推荐使用官方 MySQL Installer 工具安装,该工具集成了服务器、客户端(Workbench)、文档等组件,支持一键配置,适合新手操作。
Microsoft Windows。mysql-installer-community-8.0.39.0.msi(约 300MB),避免在线安装时因网络问题中断。
图 2-1:MySQL Installer 下载页面,红框标注为离线完整包下载步骤

msi 文件,若弹出“用户账户控制”提示,点击“是”。



D:\Program Files\MySQL\MySQL Server 8.0),避免 C 盘空间不足。C:\ProgramData\MySQL\MySQL Server 8.0),若修改需记住路径,后续卸载时需手动清理。

安装完成后,进入 Product Configuration(产品配置)阶段,此步骤决定 MySQL 服务是否能正常运行,需逐项仔细配置。
Development Computer(开发机),该模式分配较少系统资源,适合本地开发使用;若用于生产环境,选择 Server Computer。TCP/IP(启用 TCP/IP 协议,支持远程连接)。Open Windows Firewall ports for network access(开放防火墙端口,避免本地连接被拦截)。
MySQL 8.0 提供两种加密方式,需根据客户端兼容性选择:
建议:若为新环境,优先选择“强密码加密”;若后续连接时报“加密方式不支持”,可重新运行 Installer 选择“Reconfigure”修改加密策略。
点击“Next”进入密码设置页面。

MySQL@1234),需满足默认密码策略(至少 8 位,包含大小写字母、数字、特殊字符)。dev_user),分配 DB Admin 或 DB Designer 角色,适合多用户协作场景,新手可暂不创建。
MySQL80(建议保持默认,便于识别)。Standard System Account(默认系统账户,权限足够,无需自定义账户)。点击“Next”进入权限设置页面。

Yes, grant full access to the user running the Windows Service and the administrators group only(默认选项,仅服务用户和管理员有数据目录权限,安全性高)。


若需卸载 MySQL,需通过 Installer 完整清理,避免残留文件影响后续安装:

MySQL Server 8.0.39、MySQL Workbench),点击“Next”。



D:\Program Files\MySQL)和数据目录(如 C:\ProgramData\MySQL),重启电脑完成清理。

CentOS 7 推荐使用 MySQL Yum 仓库 安装,相比源码编译更简单,支持自动更新依赖,适合生产环境快速部署。
sudo su -,输入密码)。# 查看系统版本
cat /etc/redhat-release
# 预期输出:CentOS Linux release 7.9.2009 (Core)MySQL 官方提供针对不同 CentOS 版本的 Yum 发布包,需下载对应版本。

mysql80-community-release-el7-10.noarch.rpm(el7 表示 CentOS 7,10 为发布包版本)。rz 工具上传):# 安装 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.rpmyum -y install mysql80-community-release-el7-10.noarch.rpm# 查看启用的 MySQL repo
yum repolist enabled | grep mysql.*-communitymysql-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 426yum repolist all | grep mysqlenabled 状态):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: 426mysql80-community 为 disabled,执行以下命令启用:# 启用 MySQL 8.0 系列
yum-config-manager --enable mysql80-community
# 禁用其他系列(如 5.7)
yum-config-manager --disable mysql57-community执行以下命令安装 MySQL 服务器及客户端依赖:
yum install mysql-community-server -ymysql-community-client、mysql-community-libs)。systemctl start mysqldsystemctl status mysqldActive: active (running) 表示服务正常运行):● 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# 设置自启动
systemctl enable mysqld
# 验证自启动状态
systemctl list-unit-files | grep mysqld
# 预期输出:mysqld.service enabledMySQL 8.0 首次安装后,会在错误日志中生成 root 用户的临时密码,需获取后登录并修改。
grep 'temporary password' /var/log/mysqld.logIRDMJQ_.v566 为临时密码,每个人的不同):2023-08-25T08:32:10.905479Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: IRDMJQ_.v566mysql -uroot -p
# 输入临时密码(粘贴时注意不要包含空格),按 Enter 登录mysql>。默认情况下,MySQL 启用 validate_password 组件,强制密码复杂度,若需设置简单密码(如开发环境),需先调整策略。
-- 查看密码策略级别(0=LOW,1=MEDIUM,2=STRONG)
show variables like 'validate_password.policy';
-- 查看密码最小长度
show variables like 'validate_password.length';预期输出:
+--------------------------+--------+
| 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)-- 设置策略为 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';-- 修改 root 密码(如设置为 123456)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 刷新权限(确保修改生效)
FLUSH PRIVILEGES;
-- 退出后用新密码登录验证
exit;
mysql -uroot -p123456若登录成功,显示 mysql> 提示符,表示密码修改完成。
Ubuntu 系统推荐使用 MySQL APT 源 安装,与系统包管理器兼容,支持自动解决依赖,安装流程比 CentOS 更简洁。
sudo):sudo su -
# 输入当前普通用户密码,按 Enter 切换lrzsz 工具(用于上传 APT 发布包):apt install lrzsz -y
mysql-apt-config_0.8.26-1_all.deb(兼容所有 Ubuntu 版本)。# 执行 rz 后,拖拽 deb 文件至终端
rz
# 查看上传的文件
ll
# 预期输出:-rw-r--r-- 1 root root 18088 Aug 29 18:05 mysql-apt-config_0.8.26-1_all.debdpkg -i mysql-apt-config_0.8.26-1_all.debMySQL Server & Cluster (mysql-8.0),直接按方向键选择 <OK> 并回车。apt-get update -yapt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29
apt-get update -y执行以下命令安装 MySQL 服务器:
apt-get install mysql-server -yMySQL@1234)。
Use Strong Password Encryption (RECOMMENDED),按回车确认。

systemctl status mysqlActive: active (running) 表示服务正常):● 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/mysqldsystemctl list-unit-files | grep mysql
# 预期输出:mysql.service enabledmysql -uroot -p
# 输入安装时设置的密码,按 Enter 登录show databases;+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)表示 Ubuntu 下 MySQL 安装与登录成功。
步骤 | 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 + 删目录 |
netstat -ano | findstr "3306",查看占用端口的进程 PID。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,重启服务。mysql -uroot -p。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;。FLUSH PRIVILEGES;。ufw allow 3306/tcp。本文详细覆盖了 Windows、CentOS 7、Ubuntu 22.04 三种系统下 MySQL 8.0.x 的安装流程,核心要点包括:
systemctl 命令管理服务,Windows 可通过服务面板快速启停。CREATE DATABASE test_db;、CREATE TABLE user (id INT PRIMARY KEY);)。firewalld 或 ufw,Windows 用防火墙高级设置),并授权指定 IP 访问。mysqldump 命令备份数据库(如 mysqldump -uroot -p test_db > test_db_backup.sql),避免数据丢失。