Skip to content

MySQL 入门

本章将介绍MySQL数据库的基本概念、安装配置方法,以及如何开始使用MySQL。

数据库基础概念

什么是数据库

sql
-- 数据库(Database)是存储数据的仓库
-- 数据库管理系统(DBMS)是管理数据库的软件
-- MySQL是一种关系型数据库管理系统(RDBMS)

/*
 * 关系型数据库的特点:
 * 1. 数据以表格形式存储
 * 2. 表与表之间可以建立关系
 * 3. 使用SQL语言操作数据
 * 4. 支持事务处理
 * 5. 数据完整性强
 */

关系型数据库结构

sql
/*
 * 数据库结构层次:
 * 
 * 数据库服务器(MySQL Server)
 * └── 数据库(Database)
 *     └── 表(Table)
 *         └── 行/记录(Row/Record)
 *             └── 列/字段(Column/Field)
 * 
 * 示例:
 * 学生表(students)
 * +----+--------+------+-------+
 * | id | name   | age  | score |
 * +----+--------+------+-------+
 * |  1 | 张三   |   20 |  95.5 |
 * |  2 | 李四   |   21 |  88.0 |
 * +----+--------+------+-------+
 * 
 * 每一行是一条学生记录
 * 每一列是学生的一个属性(字段)
 */

SQL语言分类

sql
/*
 * SQL语言分为四大类:
 * 
 * 1. DDL(数据定义语言)
 *    - CREATE:创建数据库对象
 *    - ALTER:修改数据库对象
 *    - DROP:删除数据库对象
 *    - TRUNCATE:清空表数据
 * 
 * 2. DML(数据操作语言)
 *    - INSERT:插入数据
 *    - UPDATE:更新数据
 *    - DELETE:删除数据
 * 
 * 3. DQL(数据查询语言)
 *    - SELECT:查询数据
 * 
 * 4. DCL(数据控制语言)
 *    - GRANT:授予权限
 *    - REVOKE:撤销权限
 */

MySQL安装

Windows安装

sql
/*
 * Windows安装MySQL步骤:
 * 
 * 1. 下载MySQL安装包
 *    访问官网:https://dev.mysql.com/downloads/mysql/
 *    选择Windows版本下载
 * 
 * 2. 运行安装程序
 *    - 选择"Developer Default"或"Server only"
 *    - 配置MySQL服务器
 *    - 设置root密码
 * 
 * 3. 配置环境变量
 *    将MySQL的bin目录添加到PATH
 *    例如:C:\Program Files\MySQL\MySQL Server 8.0\bin
 * 
 * 4. 验证安装
 *    打开命令行,输入:
 *    mysql --version
 *    或
 *    mysql -u root -p
 */

Linux安装

sql
/*
 * Ubuntu/Debian安装:
 * 
 * # 更新包列表
 * sudo apt update
 * 
 * # 安装MySQL服务器
 * sudo apt install mysql-server
 * 
 * # 启动MySQL服务
 * sudo systemctl start mysql
 * 
 * # 设置开机自启
 * sudo systemctl enable mysql
 * 
 * # 运行安全脚本
 * sudo mysql_secure_installation
 * 
 * 
 * CentOS/RHEL安装:
 * 
 * # 添加MySQL仓库
 * sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
 * 
 * # 安装MySQL服务器
 * sudo yum install mysql-server
 * 
 * # 启动MySQL服务
 * sudo systemctl start mysqld
 * 
 * # 获取临时密码
 * sudo grep 'temporary password' /var/log/mysqld.log
 * 
 * # 登录并修改密码
 * mysql -u root -p
 */

macOS安装

sql
/*
 * macOS安装MySQL:
 * 
 * 方法一:使用Homebrew(推荐)
 * 
 * # 安装MySQL
 * brew install mysql
 * 
 * # 启动MySQL服务
 * brew services start mysql
 * 
 * # 运行安全配置
 * mysql_secure_installation
 * 
 * 
 * 方法二:下载DMG安装包
 * 
 * 1. 访问官网下载macOS版本
 * 2. 双击DMG文件安装
 * 3. 在系统偏好设置中配置MySQL
 */

连接MySQL

命令行连接

sql
-- 基本连接命令
-- mysql -h 主机名 -P 端口号 -u 用户名 -p

-- 连接本地MySQL服务器
-- mysql -u root -p
-- 输入密码后回车

-- 连接远程MySQL服务器
-- mysql -h 192.168.1.100 -P 3306 -u root -p

-- 指定数据库连接
-- mysql -u root -p mydb

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

-- 连接成功后显示
-- mysql> 表示可以输入SQL语句了

基本命令

sql
-- 查看MySQL版本
SELECT VERSION();

-- 查看当前日期时间
SELECT NOW();

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

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

-- 查看所有数据库
SHOW DATABASES;

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

-- 查看系统变量
SHOW VARIABLES;

-- 查看支持的字符集
SHOW CHARACTER SET;

-- 查看支持的校对规则
SHOW COLLATION;

-- 退出MySQL
-- exit 或 quit

MySQL配置

配置文件

sql
/*
 * MySQL配置文件位置:
 * 
 * Windows:my.ini(通常在MySQL安装目录下)
 * Linux:/etc/mysql/my.cnf 或 /etc/my.cnf
 * macOS:/usr/local/etc/my.cnf
 * 
 * 常用配置项:
 */

/*
 * [mysqld] 服务器配置
 * 
 * # 端口号
 * port = 3306
 * 
 * # 数据目录
 * datadir = /var/lib/mysql
 * 
 * # 字符集
 * character-set-server = utf8mb4
 * 
 * # 排序规则
 * collation-server = utf8mb4_unicode_ci
 * 
 * # 最大连接数
 * max_connections = 200
 * 
 * # 存储引擎
 * default-storage-engine = InnoDB
 * 
 * # 慢查询日志
 * slow_query_log = 1
 * slow_query_log_file = /var/log/mysql/slow.log
 * long_query_time = 2
 */

/*
 * [client] 客户端配置
 * 
 * # 默认字符集
 * default-character-set = utf8mb4
 * 
 * # 端口号
 * port = 3306
 */

字符集配置

sql
-- 查看当前字符集设置
SHOW VARIABLES LIKE 'character%';

/*
 * 输出示例:
 * character_set_client     | utf8mb4
 * character_set_connection | utf8mb4
 * character_set_database   | utf8mb4
 * character_set_results    | utf8mb4
 * character_set_server     | utf8mb4
 */

-- 查看校对规则
SHOW VARIABLES LIKE 'collation%';

/*
 * 输出示例:
 * collation_connection | utf8mb4_unicode_ci
 * collation_database   | utf8mb4_unicode_ci
 * collation_server     | utf8mb4_unicode_ci
 */

-- 设置字符集(临时)
SET NAMES utf8mb4;

-- 设置服务器字符集
SET character_set_server = utf8mb4;

存储引擎

sql
-- 查看支持的存储引擎
SHOW ENGINES;

/*
 * 主要存储引擎:
 * 
 * 1. InnoDB(默认)
 *    - 支持事务(ACID)
 *    - 支持行级锁
 *    - 支持外键
 *    - 支持崩溃恢复
 *    - 适合高并发场景
 * 
 * 2. MyISAM
 *    - 不支持事务
 *    - 只支持表级锁
 *    - 查询速度快
 *    - 适合读多写少场景
 * 
 * 3. Memory
 *    - 数据存储在内存中
 *    - 速度快但数据易丢失
 *    - 适合临时表
 * 
 * 4. Archive
 *    - 压缩存储
 *    - 只支持INSERT和SELECT
 *    - 适合日志归档
 */

-- 查看默认存储引擎
SHOW VARIABLES LIKE 'default_storage_engine';

-- 查看表的存储引擎
SHOW TABLE STATUS LIKE '表名';

-- 修改表的存储引擎
-- ALTER TABLE 表名 ENGINE = InnoDB;

本章小结

本章学习了:

  • 数据库概念:关系型数据库的结构和特点
  • SQL语言分类:DDL、DML、DQL、DCL
  • MySQL安装:Windows、Linux、macOS安装方法
  • 连接MySQL:命令行连接和基本命令
  • MySQL配置:配置文件和字符集设置
  • 存储引擎:InnoDB、MyISAM等引擎特点

下一章,我们将学习数据库操作,了解如何创建和管理数据库。