MySQL 简介与环境搭建
最后更新: 2026-01-22
作者: MySQL Team
页面目录
第一章:MySQL 简介与环境搭建
1.1 MySQL 概述
什么是 MySQL
MySQL 是最流行的开源关系型数据库管理系统之一,由瑞典 MySQL AB 公司开发,现属于 Oracle 公司。
核心特性:
| 特性 | 说明 |
|---|---|
| 开源免费 | GPL 协议,社区版完全免费 |
| 跨平台 | 支持 Linux、Windows、macOS |
| 关系型 | 支持 SQL 标准,ACID 特性 |
| 高性能 | 优化的查询处理,高并发支持 |
| 存储引擎 | InnoDB、MyISAM 等多种引擎 |
| 复制集群 | 主从复制、Group Replication |
| 事务支持 | 完整的 ACID 事务支持 |
MySQL 版本选择
MySQL 8.0.x ← 推荐生产环境使用
MySQL 5.7.x ← 经典稳定版本
MySQL 5.6.x ← 旧系统维护
1.2 安装 MySQL
YUM 安装(CentOS/RHEL)
# 添加 MySQL Yum 源
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
# 安装 MySQL 服务器
sudo yum install -y mysql-community-server
# 启动服务
sudo systemctl start mysqld
sudo systemctl enable mysqld
# 获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
# 安全初始化
mysql_secure_installation
APT 安装(Debian/Ubuntu)
# 下载 APT 配置包
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
# 安装 MySQL
sudo apt-get update
sudo apt-get install -y mysql-server
# 启动服务
sudo systemctl start mysql
sudo systemctl enable mysql
Docker 部署
# 拉取官方镜像
docker pull mysql:8.0
# 运行容器
docker run -d \
--name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=YourStrongPassword123! \
-v mysql_data:/var/lib/mysql \
mysql:8.0
# 连接数据库
docker exec -it mysql8 mysql -uroot -p
源码编译安装
# 安装依赖
yum install -y cmake make gcc gcc-c++ ncurses-devel openssl-devel
# 下载源码
wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.36.tar.gz
tar -xzf mysql-8.0.36.tar.gz
cd mysql-8.0.36
# 编译安装
cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci
make -j$(nproc)
make install
1.3 MySQL 配置
配置文件结构
# 配置文件位置
/etc/my.cnf # 主配置文件
/etc/my.cnf.d/ # 额外配置目录
~/.my.cnf # 用户配置
# 配置文件优先级(从高到低)
命令行参数 > ~/.my.cnf > /etc/my.cnf > /etc/my.cnf.d/*.cnf
基础配置示例
[mysqld]
# 基础设置
server_id = 1
port = 3306
basedir = /usr/local/mysql
datadir = /var/lib/mysql
socket = /var/lib/mysql/mysql.sock
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 连接设置
max_connections = 151
# 缓存设置
innodb_buffer_pool_size = 128M
key_buffer_size = 32M
# 日志设置
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
# InnoDB 设置
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 1
[client]
default-character-set = utf8mb4
port = 3306
配置参数说明
| 参数 | 默认值 | 说明 |
|---|---|---|
max_connections |
151 | 最大连接数 |
innodb_buffer_pool_size |
128M | InnoDB 缓冲池大小 |
key_buffer_size |
32M | MyISAM 索引缓存 |
sort_buffer_size |
256K | 排序缓冲区 |
max_allowed_packet |
64M | 最大数据包大小 |
1.4 启动与连接
服务管理命令
# 启动 MySQL
sudo systemctl start mysqld
# 停止 MySQL
sudo systemctl stop mysqld
# 重启 MySQL
sudo systemctl restart mysqld
# 查看状态
sudo systemctl status mysqld
客户端连接
# 基本连接
mysql -u root -p
# 指定主机和端口
mysql -h 192.168.1.100 -P 3306 -u root -p
# 执行 SQL 文件
mysql -u root -p < schema.sql
# 执行单个查询
mysql -u root -p -e "SELECT VERSION();"
常用命令
-- 查看数据库
SHOW DATABASES;
-- 选择数据库
USE mydb;
-- 查看表
SHOW TABLES;
-- 查看版本
SELECT VERSION();
-- 查看当前用户
SELECT USER();
-- 查看所有变量
SHOW VARIABLES;
1.5 常见问题
Q1: 忘记 root 密码怎么办?
# 1. 停止 MySQL 服务
sudo systemctl stop mysqld
# 2. 以跳过授权表模式启动
sudo mysqld_safe --skip-grant-tables &
# 3. 免密登录并重置密码
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
# 4. 重启服务
sudo systemctl restart mysqld
Q2: 端口被占用怎么办?
# 查看 3306 端口占用
netstat -tlnp | grep 3306
# 修改端口配置
# 在 my.cnf 中添加:port = 3307
Q3: Socket 文件找不到?
# 查看 socket 文件位置
mysql --help | grep socket
# 或在配置文件中指定
[mysqld]
socket = /var/lib/mysql/mysql.sock
[client]
socket = /var/lib/mysql/mysql.sock
1.6 本章小结
✅ MySQL 是一种功能强大的开源关系型数据库
✅ 支持多种安装方式:YUM、APT、Docker、源码编译
✅ 通过 my.cnf 配置文件管理数据库参数
✅ 使用 mysql 客户端工具连接和管理数据库
📖 下章预告:SQL 基础与数据类型