<返回目录     Powered by claud/xia兄

第1课: MySQL基础入门

什么是数据库?为什么需要MySQL?

数据库是按照一定的数据模型组织、存储和管理数据的系统。在计算机应用中,数据是核心资产,而数据库就是管理这些资产的专业工具。

数据库的本质:

数据库不仅仅是数据的集合,更是一个完整的数据管理系统,它提供了:

数据库的演进历程:
为什么选择MySQL?

在众多数据库系统中,MySQL脱颖而出的原因:

MySQL的定位和特点

MySQL是世界上最流行的开源关系型数据库管理系统(RDBMS),具有以下特点:

MySQL的应用场景

MySQL安装与配置

安装前的准备工作

在安装MySQL之前,需要考虑以下因素:

详细安装步骤

Windows系统安装:
  1. 访问MySQL官网(https://dev.mysql.com/downloads/installer/)下载MySQL Installer
  2. 运行安装程序,选择安装类型:
    • Developer Default: 适合开发人员,包含所有开发工具
    • Server Only: 只安装MySQL服务器
    • Client Only: 只安装客户端工具
    • Full: 完整安装所有组件
    • Custom: 自定义安装组件
  3. 选择需要安装的组件,推荐包含:
    • MySQL Server
    • MySQL Workbench(图形化管理工具)
    • MySQL Shell(交互式SQL工具)
    • MySQL Router(高可用性组件)
    • MySQL Documentation(官方文档)
  4. 配置MySQL服务器:
    • 配置类型: 选择Development Machine(开发机器)、Server Machine(服务器机器)或Dedicated Server(专用服务器)
    • 端口: 默认3306,如无冲突建议保持默认
    • 认证方式: 选择使用强密码加密(推荐)或传统认证方式
    • root密码: 设置强密码,包含大小写字母、数字和特殊字符
    • 用户创建: 可选择创建额外的用户账户
  5. 配置Windows服务:
    • 服务名称: 默认MySQL80
    • 启动类型: 选择Manual(手动)或Automatic(自动)
    • 权限: 选择使用标准系统账户或自定义账户
  6. 完成安装,验证服务是否正常启动
macOS系统安装:

方法1:使用Homebrew安装(推荐)

# 更新Homebrew
brew update

# 安装MySQL
brew install mysql

# 启动MySQL服务
brew services start mysql

# 查看服务状态
brew services list

# 安全配置(首次运行)
mysql_secure_installation

方法2:使用DMG安装包

  1. 从MySQL官网下载DMG安装包
  2. 运行安装程序,按照提示完成安装
  3. 通过系统偏好设置启动和配置MySQL
Linux (Ubuntu)系统安装:

方法1:使用APT包管理器(推荐)

# 更新包管理器
sudo apt update

# 安装MySQL服务器
sudo apt install mysql-server

# 启动服务
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 查看服务状态
sudo systemctl status mysql

# 安全配置
sudo mysql_secure_installation

方法2:使用MySQL官方仓库

# 下载MySQL APT配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb

# 安装配置包
sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb

# 更新包列表
sudo apt update

# 安装MySQL服务器
sudo apt install mysql-server

# 安全配置
sudo mysql_secure_installation

安装后的验证

安装完成后,通过以下命令验证MySQL是否正常运行:

# 检查MySQL服务状态
sudo systemctl status mysql  # Linux/macOS
# 或通过服务管理器查看Windows服务状态

# 尝试连接MySQL
mysql -u root -p

# 在MySQL中执行基本命令
SELECT VERSION();
SHOW DATABASES;

启动MySQL服务

# Windows
net start mysql

# macOS
brew services start mysql

# Linux
sudo systemctl start mysql

连接MySQL

使用命令行客户端连接:

mysql -u root -p

输入密码后即可进入MySQL命令行界面。

MySQL客户端工具详解

命令行客户端(CLI)

MySQL自带的命令行客户端是最基础也是最强大的工具:

# 基本连接语法
mysql -h 主机名 -u 用户名 -p 密码 -P 端口号

# 常用参数说明
-h: 指定主机地址(默认localhost)
-u: 指定用户名(默认root)
-p: 提示输入密码
-P: 指定端口号(默认3306)
-D: 指定要连接的数据库

图形化界面工具

MySQL Workbench(推荐)
Navicat Premium
phpMyAdmin
DBeaver

MySQL架构与原理

MySQL的整体架构

MySQL的三层架构:
  1. 客户端层:
    • 负责与用户交互,接收SQL语句
    • 包括命令行客户端、图形化工具、应用程序等
    • 与服务器层通过网络协议(TCP/IP、Socket等)通信
  2. 服务器层:
    • 核心服务层,负责SQL语句的解析、优化和执行
    • 包括连接管理、查询缓存、解析器、优化器、执行器等
    • 实现了SQL标准中的大部分功能
  3. 存储引擎层:
    • 负责数据的存储和检索
    • 支持多种存储引擎,如InnoDB、MyISAM、Memory等
    • 每种存储引擎都有其特定的优化和适用场景

MySQL架构图

MySQL架构图

MySQL的核心组件

连接管理器: 查询缓存: 解析器: 优化器: 执行器:

存储引擎对比

存储引擎 事务支持 行锁 外键支持 适用场景
InnoDB 支持 支持 支持 OLTP应用、高并发场景
MyISAM 不支持 不支持 不支持 OLAP应用、只读场景
Memory 不支持 表锁 不支持 临时表、缓存
Archive 不支持 行锁 不支持 归档数据、日志存储

MySQL基本命令详解

SQL语言基础

SQL(Structured Query Language)是用于管理关系型数据库的标准语言,分为以下几类:

常用系统命令

系统信息查询:
-- 查看MySQL版本信息
SELECT VERSION();

-- 查看当前数据库用户
SELECT USER();

-- 查看当前连接的数据库
SELECT DATABASE();

-- 查看服务器状态
SHOW STATUS;

-- 查看系统变量
SHOW VARIABLES;
时间和日期函数:
-- 获取当前日期时间
SELECT NOW();

-- 获取当前日期
SELECT CURDATE();

-- 获取当前时间
SELECT CURTIME();

-- 获取时间戳
SELECT UNIX_TIMESTAMP();
数据库管理命令:
-- 显示所有数据库
SHOW DATABASES;

-- 显示当前数据库中的所有表
SHOW TABLES;

-- 显示表的创建语句
SHOW CREATE TABLE 表名;

-- 显示表结构
DESCRIBE 表名;
或
DESC 表名;

连接和会话管理

-- 退出MySQL连接
EXIT;
或
QUIT;
或
\q

-- 显示当前连接信息
SHOW PROCESSLIST;

-- 终止指定连接
KILL 连接ID;

-- 刷新权限
FLUSH PRIVILEGES;
实践练习:MySQL环境搭建与基础操作

第一部分:环境搭建

  1. 安装MySQL: 根据你的操作系统选择合适的安装方式,完成MySQL的安装
  2. 配置安全: 运行安全配置脚本,设置root密码,移除匿名用户
  3. 验证安装: 确保MySQL服务正常运行,能够成功连接

第二部分:基础操作

  1. 连接测试: 使用命令行客户端连接到MySQL服务器
  2. 系统信息查询:
    • 执行 SELECT VERSION(); 查看MySQL版本
    • 执行 SELECT USER(); 查看当前用户
    • 执行 SELECT NOW(); 查看当前时间
  3. 数据库探索:
    • 执行 SHOW DATABASES; 查看所有数据库
    • 尝试连接不同的系统数据库,查看其内容

第三部分:进阶挑战

  1. 工具安装: 安装MySQL Workbench或其他图形化工具
  2. 连接测试: 使用图形化工具连接到MySQL服务器
  3. 性能监控: 查看MySQL服务器的运行状态和性能指标
  4. 配置优化: 了解MySQL的配置文件位置和基本配置参数
学习要点:
  • 理解MySQL的安装过程和配置要求
  • 掌握命令行和图形化工具的使用方法
  • 熟悉基本的系统信息查询命令
  • 了解MySQL的安全配置和性能监控

常见问题与解决方案

问题1:连接被拒绝

原因: 用户名/密码错误、权限不足、网络问题

解决方案: 检查用户名密码、确认用户权限、检查网络连接

问题2:服务无法启动

原因: 端口被占用、配置文件错误、权限问题

解决方案: 检查端口占用、验证配置文件、检查文件权限

问题3:忘记root密码

解决方案:

  1. 停止MySQL服务
  2. 使用--skip-grant-tables参数启动
  3. 重置root密码
  4. 重启MySQL服务

问题4:端口3306被占用

原因: 其他MySQL实例或应用占用了3306端口

解决方案:

问题5:字符集和编码问题

原因: 数据库、表或连接使用了不同的字符集,导致乱码

解决方案:

问题6:权限错误

原因: 用户缺少相应的操作权限

解决方案:

问题7:内存不足

原因: MySQL配置的内存使用超过系统可用内存

解决方案:

问题8:防火墙阻止连接

原因: 系统防火墙或网络防火墙阻止了MySQL端口

解决方案:

问题9:数据导入导出问题

原因: 文件权限、字符集不匹配、SQL语法错误

解决方案:

问题10:性能问题

原因: 缺少索引、查询语句优化不足、配置不合理

解决方案:

问题11:版本兼容性问题

原因: 不同MySQL版本的语法或功能差异

解决方案:

问题12:临时表空间不足

原因: 复杂查询生成的临时表超过了配置的临时表空间大小

解决方案: