7. MySQL 管理:系统数据库与常见工具

本文详述 MySQL 的系统数据库功能及常见工具的简单用法,并提供具体指令解析。


1. 系统数据库

MySQL 默认提供四个系统数据库,每个数据库都有特定的功能。下表总结了它们的作用:

数据库名 作用
mysql 存储数据库用户、权限、角色等管理信息。如 user 表记录用户信息,db 表定义数据库的访问权限。
information_schema 提供数据库元数据的只读视图,如表、列、权限、统计信息等。
performance_schema 提供性能监控和诊断信息,包括 SQL 执行延迟、IO 操作统计等,便于优化数据库性能。
sys 基于 performance_schema 提供的视图,简化性能数据查询,更适合运维人员使用。

2. 常见工具

2.1 mysql 工具

作用

提供 MySQL 客户端交互环境,支持运行 SQL 查询、管理数据库和用户权限。

常用指令
命令 描述
mysql -u <user> -p 登录 MySQL 数据库。
SHOW DATABASES; 查看所有数据库。
USE <database>; 切换到指定数据库。
SHOW TABLES; 查看当前数据库的所有表。
SELECT * FROM <table>; 查询指定表的数据。

2.2 mysqldump 工具

作用

用于备份数据库或表数据。

语法
sql 复制代码
mysqldump [options] db_name [tables]
mysqldump [options] --database/-B db1 [db2 db3...]
mysqldump [options] --all-databases/-A
连接选项
选项 描述
-u, --user=name 指定用户名。
-p, --password[=name] 指定密码。
-h, --host=name 指定服务器 IP 或域名。
-P, --port=# 指定连接端口。
输出选项
选项 描述
--add-drop-database 在每个数据库创建语句前添加 DROP DATABASE 语句。
--add-drop-table 在每个表创建语句前添加 DROP TABLE 语句,默认开启。禁用可用 --skip-add-drop-table
-n, --no-create-db 不包含数据库的创建语句。
-t, --no-create-info 不包含数据表的创建语句。
-d, --no-data 只备份表结构,不包含数据。
-T, --tab=name 自动生成两个文件:一个 .sql 文件用于创建表结构,一个 .txt 文件保存数据内容。
案例
sql 复制代码
# 备份单个数据库
mysqldump -u root -p test > test_backup.sql

# 备份多个数据库
mysqldump -u root -p --databases test db1 db2 > multiple_backup.sql

# 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql

# 只备份 test 数据库的表结构
mysqldump -u root -p -d test > test_structure.sql

2.3 mysqladmin 工具

作用

管理 MySQL 服务,执行管理任务如查看服务器状态、重启服务等。

常用指令
命令 描述
mysqladmin -u <user> -p status 查看服务器状态,包括线程数、查询数等信息。
mysqladmin shutdown 关闭 MySQL 服务。
mysqladmin processlist 查看当前执行的查询。
案例
sql 复制代码
# 查看服务器状态
mysqladmin -u root -p status

# 关闭 MySQL 服务
mysqladmin -u root -p shutdown

2.4 mysqlbinlog 工具

作用

解析和查看二进制日志,常用于故障恢复和主从同步。

常用指令
命令 描述
mysqlbinlog <binlog_file> 查看二进制日志内容。
mysqlbinlog --start-datetime="..." 从指定时间开始解析日志内容。
mysqlbinlog --start-position=... 从指定位置解析日志内容。
案例
sql 复制代码
# 查看指定二进制日志内容
mysqlbinlog mysql-bin.000001

# 从指定时间解析日志
mysqlbinlog --start-datetime="2024-01-01 10:00:00" mysql-bin.000001

2.5 mysqlshow 工具

作用

显示数据库、表及列等元数据。

常用指令
命令 描述
mysqlshow 显示所有数据库。
mysqlshow <database> 显示指定数据库中的表。
mysqlshow <database> <table> 显示指定表的列信息。
案例
sql 复制代码
# 显示所有数据库
mysqlshow

# 显示 test 数据库的所有表
mysqlshow test

# 显示 students 表的结构
mysqlshow test students

2.6 mysqlimport 和 source

mysqlimport 工具

作用:快速导入数据文件到 MySQL 数据表。

案例

sql 复制代码
# 导入 students.csv 到 test 数据库的 students 表
mysqlimport --local -u root -p test students.csv
source 命令

作用:在 MySQL 客户端执行 SQL 文件。

案例

sql 复制代码
# 加载备份文件
source /path/to/backup.sql;

3. 总结

  • 系统数据库 提供数据库管理的基础。
  • 常见工具 为用户高效管理数据库和数据提供了丰富功能。
相关推荐
java_logo几秒前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司7 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒10 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手10 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学10 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh12 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户713335851562413 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z1234567898613 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD13 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo13 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程