【第4天】每天一个MySQL知识点,百日打怪升级

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
云数据库 PolarDB MySQL 版,列存表分析加速 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: 本系列由10年经验DBA精心打造,系统梳理MySQL客户端常用命令:从连接参数(-u/-p/-h/-P/字符集)、快捷指令(\s/\q/\G)、数据库/表操作(SHOW/CREATE/DROP/DESC),到状态监控(PROCESSLIST/STATUS/VARIABLES)与实战排障技巧,兼顾面试考点与生产避坑,助你快速上手、底气十足。

MySQL常用命令


大家好,我是一名拥有10年以上经验的DBA老兵。

做这个系列,源于一个朴素的愿望:把踩过的坑、总结的经验系统化输出,希望能帮到刚入行或想进阶的兄弟们。

让我们开始今天的第4天内容。


背景引入

💡 说白了:MySQL命令就两种——一种是 SHOW, SELECT(让你知道数据库现在啥样),一种是 DML, DDL(让你去改数据)。前者保平安,后者干活用。

很多同学会写SQL,但拿起MySQL客户端就蒙——不知道指定什么参数、怎么查看状态、怎么切换数据库。

今天的目标:掌握MySQL客户端常用命令,面试和工作都能底气十足!


核心概念

一、连接与基础命令

# 连接MySQL(最常用)
mysql -u root -p
mysql -h 127.0.0.1 -P 3306 -u root -p

# 指定字符集连接
mysql -u root -p --default-character-set=utf8mb4

# 连接后切换数据库
USE database_name;

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

面试必问

  • MySQL连接参数有哪些?
  • 如何指定端口和字符集?

📝 面试解答

Q: MySQL连接参数有哪些?

  • -u:用户名
  • -p:密码(直接在-p后面写密码是不安全的,建议-p回车后输入)
  • -h:主机地址,默认127.0.0.1
  • -P:端口号,大写P,默认3306
  • --default-character-set:指定字符集,避免中文乱码
  • -e:直接执行SQL后退出,适合脚本
  • -S:指定socket文件(仅限管理员)

Q: 如何指定端口和字符集?

  • -P 3306 指定端口(大写P)
  • --default-character-set=utf8mb4 指定字符集

二、客户端快捷命令

-- 简写命令(客户端内使用)
\c          -- 中止当前输入
\q          -- 退出客户端(quit)
\s          -- 查看状态信息(status)
\g          -- 发送命令(等同于回车)
\G          -- 发送命令并垂直显示结果
source file -- 执行SQL文件
\. file     -- 同source
-- 退出客户端
EXIT;
-- 或
QUIT;
-- 或
\q
-- 查看版本和状态
STATUS;
-- 或
\s

-- 结果示例:
mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id:          5
Current database:      test
Current user:          root@localhost
SSL:                   Not in use
Using delimiter:       ;
Server version:        8.0.28 MySQL Community Server - GPL
Protocol version:      10
Connection:           Localhost via UNIX socket
UNIX socket:          /var/lib/mysql/mysql.sock

💡 说白了:面试官问你有没有用过 \s 命令,你说没用过,那就尴尬了——这可是查看MySQL状态最常用的快捷命令。


三、数据库操作命令

-- 查看数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE db_name DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- 删除数据库(生产环境千万别手抖!)
DROP DATABASE db_name;

-- 查看当前数据库的表
SHOW TABLES;

-- 查看表结构
DESC table_name;
-- 或
DESCRIBE table_name;
-- 或
SHOW CREATE TABLE table_name\G

四、表操作命令

-- 查看表状态
SHOW TABLE STATUS LIKE 'table_name';

-- 查看索引
SHOW INDEX FROM table_name;

-- 查看创建表语句
SHOW CREATE TABLE table_name;

-- 查看表的字段信息
SHOW COLUMNS FROM table_name;
-- 或
DESCRIBE table_name;

💡 说白了:SHOW CREATE TABLE 是排查问题的神器——有时候建表语句和预期不一样,有没有索引,一SHOW就知道。


五、状态查看命令

-- 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';
SHOW STATUS LIKE 'Threads_running';

-- 查看最大连接数
SHOW VARIABLES LIKE 'max_connections';

-- 查看缓存命中率(重要!)
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
-- 计算:Innodb_buffer_pool_read_requests / (Innodb_buffer_pool_read_requests + Innodb_buffer_pool_reads)

-- 查看慢查询数量
SHOW GLOBAL STATUS LIKE 'Slow_queries';

-- 查看查询缓存状态(MySQL 8.0已移除,仅供参考)
SHOW VARIABLES LIKE 'query_cache%';
-- 查看 InnoDB 状态(排查锁问题经常用到)
SHOW ENGINE INNODB STATUS;

-- 查看当前正在执行的进程
SHOW PROCESSLIST;
-- 或
SHOW FULL PROCESSLIST;

💡 SHOW PROCESSLIST 是排查"某个SQL怎么这么慢"的第一招——直接看当前在跑什么。


六、变量查看命令

-- 查看所有变量
SHOW VARIABLES;

-- 查看特定变量
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'max_connections';

-- 模糊匹配
SHOW VARIABLES LIKE 'timeout%';
SHOW VARIABLES LIKE '%log%';

实战案例

场景一:快速排查连接数问题

-- 查看当前连接数
SHOW STATUS LIKE 'Threads_connected';

-- 查看正在运行的连接数
SHOW STATUS LIKE 'Threads_running';

-- 查看最大连接数
SHOW VARIABLES LIKE 'max_connections';

-- 如果发现连接数快满了,再查看具体是谁在连接
SHOW PROCESSLIST;

场景二:查看慢查询配置

-- 查看慢查询是否开启
SHOW VARIABLES LIKE 'slow_query_log';

-- 查看慢查询时间阈值
SHOW VARIABLES LIKE 'long_query_time';

-- 查看慢查询日志文件路径
SHOW VARIABLES LIKE 'slow_query_log_file';

场景三:查看字符集配置

-- 查看所有字符集相关变量
SHOW VARIABLES LIKE 'character%';

-- 结果示例:
+--------------------------+-----------------------------+
| Variable_name            | Value                       |
+--------------------------+-----------------------------+
| character_set_client     | utf8mb4                     |
| character_set_connection | utf8mb4                     |
| character_set_database   | utf8mb4                     |
| character_set_filesystem | binary                      |
| character_set_results    | utf8mb4                     |
| character_set_server     | utf8mb4                     |
+--------------------------+-----------------------------+

避坑指南

⚠️ 真实踩过的坑:

  1. 连接时不指定字符集,中文乱码

    • 一定要加 --default-character-set=utf8mb4
    • 或者登录后执行 SET NAMES utf8mb4;
  2. 在生产环境执行 DROP DATABASE

    • 手动删除时务必先 USE 确认当前库
    • 建议先 DROP DATABASE IF EXISTS db_name; 避免报错
  3. SHOW PROCESSLIST 不显示完整SQL

    • 需要用 SHOW FULL PROCESSLIST 能看更全的输出
  4. 字符集配置看错变量

    • character_set_server 是服务端默认字符集
    • character_set_database 是当前数据库的字符集,不一样!

思考题

🤔 互动时间:

  1. SHOW PROCESSLISTSHOW FULL PROCESSLIST 有什么区别?
  2. 如何快速查看MySQL的当前状态(连接数、版本、字符集)?

总结

🎯 面试考点

  • MySQL连接参数:-u/-p/-h/-P/--default-character-set
  • 客户端快捷命令:\s、\G、\q、source
  • 状态查看命令:SHOW PROCESSLIST、SHOW STATUS、SHOW VARIABLES
  • 常用SHOW命令:SHOW DATABASES/TABLES/INDEX/CREATE TABLE
  • 字符集配置:SET NAMES utf8mb4

💡 AI实战建议:让自己的AI助手记住故障排查命令流,每次遇到问题时自动执行:

# 1. 先看整体状态
SHOW GLOBAL STATUS LIKE 'Threads_connected';  -- 当前连接数
SHOW GLOBAL STATUS LIKE 'Threads_running';    -- 正在跑的连接
SHOW GLOBAL STATUS LIKE 'Slow_queries';       -- 慢查询数量

# 2. 看谁在连接
SHOW FULL PROCESSLIST;  -- 所有在执行的SQL

# 3. 看具体问题
SHOW VARIABLES LIKE 'long_query_time';        -- 慢查询阈值
SHOW ENGINE INNODB STATUS;                     -- InnoDB状态(锁问题)

# 4. 查表结构确认索引
SHOW CREATE TABLE table_name\G                 -- 确认是否用到索引

然后把这些结果发给AI,让它帮你分析:"MySQL现在这个状态,帮我分析可能的原因。"


下期预告:索引基础:B+树详解 —— 面试必问!

全本合集《每天一个MySQL知识点,百日打怪升级》,您的关注是我每日更新的动力


有问题欢迎评论区交流,明天见!

相关文章
|
1月前
|
人工智能 运维 机器人
保姆级图文教程|阿里云轻量服务器部署OpenClaw、Discord集成与千问Qwen3.6-Plus全配置指南
本文完整覆盖从**轻量服务器实例创建、端口放行、OpenClaw初始化、Discord深度集成、大模型API配置、技能扩展、运维排错**的全流程,所有步骤均为2026年4月最新实践,配合详细的避坑指南与运维命令,可解决新手部署中90%以上的问题。遵循**“选对海外地域、放通核心端口、准确配置凭证、及时重启服务、使用专用小号”**五大核心原则,即可实现OpenClaw 7×24小时稳定运行,通过Discord随时随地与专属AI助理交互,高效完成社群管理、内容创作、代码编写、信息查询等各类任务,快速落地AI智能化应用场景,让AI真正成为个人与团队的高效生产力工具。
469 4
|
1月前
|
机器学习/深度学习 搜索推荐 算法
拆解推荐系统:候选生成、过滤、排序、多样性的分层设计
推荐系统是端到端流水线,非单一算法:涵盖候选生成、过滤、特征工程、多目标排序、多样性调控与反馈闭环。强调关注点分离,以保障质量、速度与行为可控。动手前须明确定义Item、用户行为及成功指标。
305 12
拆解推荐系统:候选生成、过滤、排序、多样性的分层设计
|
16天前
|
编解码 人工智能 API
HappyHorse(快乐小马)介绍指南:150亿参数量、Transformer单流架构,生成视频定价最低0.9元/秒
HappyHorse(快乐小马)是阿里ATH创新事业部研发的原生多模态AI视频生成大模型,2026年4月登顶全球Video Arena双榜。采用40层单流Transformer架构,首创音画联合生成技术,15B参数,支持1080P/3–15秒视频生成,单H100卡38秒出片,中文理解与人物一致性突出,已通过阿里云百炼、官网及千问App开放灰度测试。
1079 7
|
1月前
|
人工智能 运维 监控
OpenClaw 10大自动化场景实战|阿里云轻量服务器部署+零基础避坑指南
2026年,OpenClaw已成为普通人拥有“AI员工”的最低门槛工具——无需编程基础,通过简单配置即可落地10大自动化场景,让效率提升3倍以上。本文完整覆盖**新手零基础阿里云轻量服务器部署OpenClaw(Clawdbot)简单步骤及避坑指南**,从部署、配置到场景落地,全程提供可直接复制的代码与指引,确保用户快速上手。
298 8
|
13天前
|
人工智能 运维 安全
我对AI智能体平台架构设计经验
软件架构师罗小东,深耕AI智能体平台架构设计与工程落地。本文系统阐述AIP五层架构(应用层、平台层、支撑层、运营层、运维层),聚焦分层边界、能力抽象、运行约束与可信保障,强调“可控性、可扩展性、可维护性”的务实平衡,为AI工程化提供可复用的实践范式。(239字)
我对AI智能体平台架构设计经验
|
10天前
|
人工智能 机器人 调度
[理论篇-10]AI 工作流(AI Workflow)—— 让 AI 像流水线一样干活 ⚠️ 已逐步被多 Agent 架构替代
用最直白的话讲清楚什么是 AI 工作流、它和"扔给 AI 一个 Prompt"有什么本质区别、为什么 2025 年之后所有真正能落地的 AI 产品几乎都长成"工作流"的样子——不管你是开发者、产品经理、运营、还是只想自己搭一个 AI 助手的普通用户,这一篇读完都能看懂背后在发生什么。
386 2
|
7天前
|
物联网 测试技术
SenseNova U1开源:原生统一多模态理解与生成,8B参数达到同量级SOTA
商汤日日新开源SenseNova U1 Lite系列(8B参数),基于自研NEO-unify架构,原生统一多模态理解、推理与生成,摒弃VE/VAE,重构统一表征空间。性能达同量级开源SOTA,部分指标比肩大型闭源模型,并支持8步LoRA加速推理。
166 2
|
18天前
|
SQL 人工智能 运维
DataWorks Data Agent:一句话搞定数据开发,让周期从天级到分钟级
DataWorks Data Agent 是阿里云推出的AI原生数据开发智能体,覆盖集成、开发、运维、治理、分析全链路。它深度适配业务逻辑与开发规范,支持自然语言一键生成可信SQL及全流程交付。淘宝闪购实测:指标开发从6–8小时缩短至5–10分钟,真正实现“一句话交付”。