Node系列 · 数据库:MySQL 安装
MySQL 是世界上最流行的开源关系型数据库。本章以 MySQL 8.0 为例,覆盖三个主流平台的安装、服务管理、客户端连接和默认编码配置------后续所有 SQL 示例都在这个环境上跑。
一、MySQL 特点
| 维度 | 说明 |
|---|---|
| 类型 | 关系型数据库(RDBMS) |
| 厂商 | 瑞典 MySQL AB → 已被 Oracle 收购 |
| 授权 | 社区版(GPL,免费) + 商业版 |
| 性能 | 轻量、快速、单表千万级无压力 |
| 适用 | Web 应用、中小型业务系统首选 |
二、下载
| 渠道 | 地址 |
|---|---|
| 官方 | dev.mysql.com/downloads |
| 国内镜像 | 腾讯软件中心:https://pc.qq.com/detail/3/detail_1303.html |
| 集成包 | phpStudy / XAMPP(适合本地开发) |
::: tip
生产环境不要用集成包 ------它们把 MySQL / Apache / PHP 揉在一起,不易升级、不利隔离。
:::
三、Windows 安装
3.1 下载 MSI 安装包
到官网下载 mysql-installer-community-8.0.xx.msi,双击运行。选择 Custom 自定义安装,至少勾选:
- MySQL Server
- MySQL Workbench(图形客户端)
- MySQL Shell(命令行客户端)
3.2 配置类型
安装过程中会让选择:
- Server Configuration Type :
- Development Computer(开发机,资源占用少)
- Server Computer(推荐)
- Dedicated Computer(专用数据库服务器)
- Authentication Method:选第一个(强密码)即可
- Root 密码:设一个并记住,丢了要重置
- Windows Service Name :默认
MySQL80
3.3 配置 my.ini 默认编码
MySQL 8.0 默认 utf8mb4(完整 UTF-8 支持 emoji),通常不需要改。如果发现中文乱码,检查:
text
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
C:\Program Files\MySQL\MySQL Server 8.0\my.ini
ini:my.ini
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
[client]
default-character-set=utf8mb4
修改后重启服务生效。
3.4 服务管理
bash
# 启动 / 停止 / 重启 MySQL80 服务
net stop mysql80
net start mysql80
# 或在「服务」管理面板里操作
services.msc
四、Linux 安装(Ubuntu/Debian)
bash
# 1. 下载官方 deb 包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb
# 2. 更新源 + 安装
sudo apt update
sudo apt install mysql-server
# 3. 服务管理(systemd)
sudo systemctl start mysql
sudo systemctl enable mysql # 开机自启
sudo systemctl status mysql # 查看状态
五、macOS 安装
bash
# 用 Homebrew
brew install mysql
# 启动
brew services start mysql
# 或临时前台启动
mysql.server start
六、客户端连接
6.1 命令行客户端
bash
# 连接本地 MySQL
mysql -u root -p
# 输入密码后进入交互式 shell
# 连接远程
mysql -h 192.168.1.100 -P 3306 -u root -p
# 指定数据库
mysql -u root -p mydb
6.2 连接成功后的验证
sql
-- 查看版本
SELECT VERSION();
-- 8.0.xx
-- 查看所有数据库
SHOW DATABASES;
-- 查看字符集
SHOW VARIABLES LIKE 'character_set_%';
-- 退出
EXIT;
6.3 图形客户端推荐
| 客户端 | 平台 | 特点 |
|---|---|---|
| MySQL Workbench | 全平台 | 官方出品,功能完整 |
| Navicat | 全平台 | 商业软件,体验最好 |
| DBeaver | 全平台 | 免费开源,跨数据库 |
| TablePlus | macOS / Windows | 轻量、设计感 |
| DataGrip | 全平台 | JetBrains 出品 |
七、常见安装问题
| 问题 | 解决 |
|---|---|
Access denied for user 'root' |
密码错;用 --skip-grant-tables 重置 |
安装后 mysql 命令找不到 |
没加到 PATH;Windows 重启终端,Linux/macOS 检查 /usr/local/mysql/bin |
| 3306 端口被占用 | `netstat -ano |
| 服务起不来 | 检查 my.ini 路径与权限;查看错误日志 data/<hostname>.err |
八、Node 项目连接 MySQL
安装好 MySQL 后,Node 项目最常用两个驱动:
bash
# 官方驱动
npm install mysql2
# ORM(数据驱动 & ORM 系列会展开)
npm install sequelize
javascript:db-connect.js
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: '127.0.0.1',
port: 3306,
user: 'root',
password: 'your-password',
database: 'myapp',
waitForConnections: true,
connectionLimit: 10,
});
// 使用
const [rows] = await pool.query('SELECT * FROM users WHERE id = ?', [1]);
console.log(rows);
九、小结
- MySQL 8.0 是当前主流版本;社区版免费、生产可用
- Windows 装 MSI,Linux 装官方 deb,macOS 用 Homebrew
- 关键配置:默认编码
utf8mb4、服务名MySQL80、root 密码必设 - Node 端最常用
mysql2(驱动)或Sequelize(ORM) - 安装完用
mysql -uroot -p验证能进交互式 shell 即代表成功