1. 引言
MySQL 是目前最流行的开源关系型数据库之一,广泛应用于 Web 开发、数据分析、企业应用等场景。无论是搭建个人博客、开发企业系统,还是学习数据库原理,MySQL 都是绕不开的基础技能。
本教程将从零开始,带你完成 MySQL 的下载、安装、基础配置与验证,覆盖 Windows 和 Linux 两大主流平台,并补充常见问题的排查思路。即使你从未接触过数据库,也能跟着一步步跑通。
2. 安装前的准备
在开始安装之前,建议先确认以下几点:
- 操作系统:确认你的系统是 Windows、macOS 还是 Linux,不同平台的安装方式差异较大。
- 硬件要求:MySQL 对硬件要求不高,2GB 内存、10GB 磁盘即可满足学习和中小型项目需求。
- 权限准备 :Windows 下需要管理员权限,Linux 下建议使用
sudo或 root 用户执行安装命令。 - 端口占用:MySQL 默认监听 3306 端口,安装前可检查该端口是否被占用。
检查端口是否被占用的命令:
bash
# Windows
netstat -ano | findstr 3306
# Linux / macOS
lsof -i :3306
如果 3306 端口已被占用,可以在后续配置中修改端口号。
3. Windows 平台安装
3.1 下载安装包
访问 MySQL 官方下载页面,或者通过网盘下载,如果闲麻烦可以直接下载安装包,傻瓜式安装。
百度网盘下载:https://pan.baidu.com/s/1-aw1Z-UQ3T4yEwHEnJHrgw?pwd=tkev
夸克网盘下载:https://pan.quark.cn/s/54c1daac1d55?pwd=i7Tp
选择与系统匹配的版本,例如 mysql-8.0.xx-winx64.zip。
3.2 解压与初始化
将压缩包解压到指定目录,例如 D:\mysql。解压后目录结构如下:
D:\mysql
├── bin
├── docs
├── include
├── lib
└── share
接下来初始化数据目录。以管理员身份打开命令提示符,进入 bin 目录执行:
bash
cd D:\mysql\bin
mysqld --initialize-insecure
--initialize-insecure 会生成一个无密码的 root 用户,方便首次登录后自行设置密码。如果希望生成随机密码,可使用 mysqld --initialize,密码会记录在数据目录的 *.err 日志文件中。
3.3 安装为 Windows 服务
为了方便启动和开机自启,将 MySQL 注册为 Windows 服务:
bash
mysqld --install MySQL
启动服务:
bash
net start MySQL
3.4 登录并设置密码
使用 root 用户登录(初始无密码):
bash
mysql -u root
登录成功后,设置 root 密码:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
退出:
sql
EXIT;
4. Linux 平台安装
Linux 下推荐使用系统包管理器安装,简单且便于维护。以下以 Ubuntu / Debian 和 CentOS / RHEL 为例。
4.1 Ubuntu / Debian
更新软件源并安装:
bash
sudo apt update
sudo apt install mysql-server
安装完成后,服务会自动启动。检查状态:
bash
sudo systemctl status mysql
4.2 CentOS / RHEL
bash
sudo yum install mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
CentOS 7 及以上版本默认使用 MariaDB 作为替代,如需安装官方 MySQL,可先添加官方 YUM 源:
bash
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install mysql-community-server
4.3 安全初始化
Linux 安装完成后,建议运行安全初始化脚本:
bash
sudo mysql_secure_installation
该脚本会引导你完成以下设置:
- 设置 root 密码
- 移除匿名用户
- 禁止 root 远程登录
- 删除测试数据库
- 刷新权限表
5. 基础配置
5.1 配置文件位置
MySQL 的配置文件名为 my.cnf(Linux / macOS)或 my.ini(Windows),常见位置:
| 平台 | 路径 |
|---|---|
| Windows | D:\mysql\my.ini |
| Ubuntu / Debian | /etc/mysql/mysql.conf.d/mysqld.cnf |
| CentOS | /etc/my.cnf |
5.2 常用配置项
以下是一份常用的基础配置示例:
ini
[mysqld]
# 监听端口
port = 3306
# 数据目录
datadir = /var/lib/mysql
# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 最大连接数
max_connections = 200
# 默认存储引擎
default-storage-engine = InnoDB
# 时区
default-time-zone = '+08:00'
修改配置后,需要重启 MySQL 服务才能生效:
bash
# Windows
net stop MySQL
net start MySQL
# Linux
sudo systemctl restart mysql
5.3 字符集说明
推荐使用 utf8mb4 字符集,它完整支持 Unicode,包括 emoji 表情和生僻字。utf8 只是 utf8mb4 的子集,无法存储四字节字符,新项目建议直接使用 utf8mb4。
6. 验证安装
安装配置完成后,通过以下步骤验证 MySQL 是否正常工作。
6.1 检查服务状态
bash
# Windows
net start | findstr MySQL
# Linux
sudo systemctl status mysql
6.2 登录测试
bash
mysql -u root -p
输入密码后,看到 mysql> 提示符即表示登录成功。
6.3 查看版本与基本操作
sql
-- 查看版本
SELECT VERSION();
-- 查看当前用户
SELECT CURRENT_USER();
-- 查看所有数据库
SHOW DATABASES;
输出示例:
+-----------+
| VERSION() |
+-----------+
| 8.0.36 |
+-----------+
1 row in set (0.00 sec)
7. 常见问题排查
7.1 无法启动服务
- 检查数据目录是否已初始化,未初始化时执行
mysqld --initialize-insecure。 - 查看错误日志,Windows 下位于数据目录的
*.err文件,Linux 下可通过journalctl -u mysql查看。 - 确认 3306 端口未被占用。
7.2 忘记 root 密码
以跳过权限表方式启动 MySQL:
bash
# 先停止服务,再以跳过授权表方式启动
mysqld --skip-grant-tables
然后登录并重置密码:
sql
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
重置后正常重启服务即可。
7.3 中文乱码
确认客户端、服务端、数据库三处字符集均为 utf8mb4:
sql
SHOW VARIABLES LIKE 'character_set%';
如不一致,在配置文件中统一设置并重启服务。
8. 总结
本文从零开始,介绍了 MySQL 在 Windows 和 Linux 两大平台上的安装、初始化、基础配置与验证方法,并整理了常见问题的排查思路。核心要点如下:
- Windows 推荐使用 ZIP 包 + 服务注册方式安装,Linux 推荐使用系统包管理器。
- 安装后务必执行安全初始化,设置 root 密码并移除匿名用户。
- 字符集统一使用
utf8mb4,避免中文和 emoji 乱码。 - 修改配置文件后需重启服务才能生效。
MySQL 的安装只是第一步,后续建议继续学习用户与权限管理、SQL 基础、索引优化等内容,逐步构建完整的数据库知识体系。
