nineloong'sblog
首页归档照片墙音乐杂谈友链关于
封面
点击查看全图

MySQL-basic: 概述与 macOS 安装配置

2026/5/19
# MySQL-basic
# macOS
# Homebrew
# 数据库

MySQL 概述与 macOS 安装

本节内容

  • 版本基线统一为 MySQL Community Server 9.6.0。
  • 区分数据库、DBMS、SQL 的区别。
  • 记录 MySQL 客户端/服务端架构。
  • 记录 macOS 下安装、启动、停止、连接和排错命令。
  • 梳理 MySQL 中数据库、表、行、列、字段、记录之间的关系。

核心概念

数据库

数据库(Database),通常简称 DB。它不是某一个具体软件,而是"有组织地存储数据的仓库"。

数据库强调的是数据组织能力,例如:

  • 数据按表结构保存。
  • 字段有明确的数据类型。
  • 可以用条件快速查询。
  • 可以保证一定的数据一致性。
  • 多个用户或程序可以同时访问。

数据库还要考虑备份、恢复、权限、性能、并发和可靠性。

数据库管理系统

数据库管理系统(Database Management System),简称 DBMS。它是用于管理数据库的大型软件。

MySQL、Oracle、PostgreSQL、SQL Server、SQLite、MariaDB 都属于 DBMS。它们负责:

  • 创建数据库和表。
  • 插入、修改、删除、查询数据。
  • 控制用户权限。
  • 处理并发访问。
  • 维护事务一致性。
  • 管理磁盘上的数据文件、日志文件和内存缓存。

日常说「装了个数据库」,准确来说是装了一个 DBMS。

SQL

SQL(Structured Query Language),即结构化查询语言。它是操作关系型数据库的标准语言。

SQL 不是 MySQL 独有的语言。Oracle、PostgreSQL、SQL Server、SQLite 也都支持 SQL,只是不同数据库会有自己的扩展语法和细节差异。

在 MySQL 中,常见 SQL 可以分为:

分类 全称 作用
DDL Data Definition Language 定义数据库对象,例如数据库、表、字段
DML Data Manipulation Language 操作表中的数据,例如新增、修改、删除
DQL Data Query Language 查询表中的数据
DCL Data Control Language 管理用户和权限

后续 SQL 笔记会按这个分类继续整理。

关系型数据库

MySQL 是关系型数据库管理系统,英文常写作 RDBMS。

关系型数据库的基本组织方式是二维表:

id name age
1 Tom 19
2 Jerry 20

表中的每一行表示一条记录,每一列表示一个字段。字段有自己的名称和数据类型,例如 id 是整数,name 是字符串,age 是整数。

关系型数据库适合保存订单、账户、用户这类结构化数据。

MySQL 是什么

MySQL 是一个开源关系型数据库管理系统。早期由 MySQL AB 公司开发,后来 Sun 收购 MySQL AB,Oracle 又收购 Sun,所以现在 MySQL 属于 Oracle 旗下产品。

MySQL 常见版本线包括:

  • MySQL Community Server:社区版,免费使用。
  • MySQL Enterprise Edition:商业版,包含企业支持和额外企业特性。

本笔记固定使用:

MySQL Community Server 9.6.0

MySQL 的客户端/服务端架构

MySQL 由服务端和客户端两部分组成。

服务端通常是:

mysqld

mysqld 负责真正管理数据文件、内存、连接、事务、锁、日志和 SQL 执行。

客户端可以是:

mysql

也可以是 MySQL Workbench、DataGrip、Navicat、应用程序里的 JDBC/MySQL Connector 等。

连接关系可以理解为:

mysql 客户端  ->  mysqld 服务端  ->  数据文件与日志文件

所以在终端执行:

mysql -u root -p

所以 mysql -u root -p 做的事情是让客户端连接到 mysqld 服务端,不是直接操作数据文件。

macOS 安装方式

我这里使用 Homebrew 安装。

安装:

brew install mysql

启动服务:

brew services start mysql

停止服务:

brew services stop mysql

重启服务:

brew services restart mysql

查看服务状态:

brew services list

查看安装版本:

mysql --version

检查端口

MySQL 默认监听端口是 3306。

检查本机是否有进程监听 3306:

lsof -nP -iTCP:3306 -sTCP:LISTEN

如果看到 mysqld,说明 MySQL 服务端正在监听 TCP 连接。

也可以检查进程:

ps aux | grep mysqld

连接 MySQL

最常见的命令:

mysql -u root -p

含义:

参数 含义
mysql MySQL 命令行客户端
-u root 使用 root 用户连接
-p 提示输入密码

输入 -p 后不要直接在命令行写密码。推荐让客户端提示输入,即输入-p后直接回车,等待提示再输入:

mysql -u root -p

不推荐:

mysql -u root -pYourPassword

把密码直接放在命令行里可能被 shell 历史或系统进程列表记录,安全性不好。

指定主机和端口

连接本机默认端口:

mysql -h 127.0.0.1 -P 3306 -u root -p

参数含义:

参数 含义
-h MySQL 服务端所在主机
-P MySQL 服务端端口,大写 P
-u 用户名
-p 提示输入密码

localhost 和 127.0.0.1 在 macOS 上的区别:

  • localhost 通常优先走 Unix socket。
  • 127.0.0.1 走 TCP 连接。

遇到 socket 路径错误时,试试:

mysql -h 127.0.0.1 -P 3306 -u root -p

如果你明确要指定 socket:

mysql -u root -p --socket=/tmp/mysql.sock

实际 socket 路径取决于安装方式和配置文件。

连接成功后的基本检查

连接进入 MySQL 后,可以执行:

SELECT VERSION();

查看当前用户:

SELECT USER(), CURRENT_USER();

查看当前数据库:

SELECT DATABASE();

查看所有数据库:

SHOW DATABASES;

退出客户端:

EXIT;

或者:

QUIT;

初始化学习数据库

后续笔记统一使用 mysql_basic 作为学习数据库。

连接 MySQL 后执行:

CREATE DATABASE IF NOT EXISTS mysql_basic
  DEFAULT CHARACTER SET utf8mb4
  DEFAULT COLLATE utf8mb4_0900_ai_ci;

USE mysql_basic;

确认当前数据库:

SELECT DATABASE();

如果返回 mysql_basic,说明当前数据库切换成功。

数据模型

关系型数据库中,数据通常按这样的层级组织:

数据库管理系统 MySQL
  -> 数据库 database/schema
    -> 表 table
      -> 行 row/record
      -> 列 column/field

本章参考

  • MySQL Reference Manual: Installing MySQL on macOS
  • MySQL Reference Manual: Connecting to the MySQL Server Using Command Options
avatar

nineloong

一隅之地,深耕自我

RECOMMENDED

二分查找:从经典模板到应用题

2026/5/23

每日一题:检查数组是否经排序和轮转得到

2026/5/23

每日一题:统计特殊字母的数量 II

2026/5/27

Table of Contents