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. 总结

  • 系统数据库 提供数据库管理的基础。
  • 常见工具 为用户高效管理数据库和数据提供了丰富功能。
相关推荐
姚远Oracle ACE19 分钟前
解读Oracle AWR报告:Global Cache and Enqueue Services - Workload Characteristics
数据库·oracle
流星白龙20 分钟前
【Qt】7.信号和槽_connect函数用法(2)
java·数据库·qt
Zzz 小生2 小时前
Claude Code学习笔记(四)-助你快速搭建首个Python项目
大数据·数据库·elasticsearch
nongcunqq6 小时前
abap 操作 excel
java·数据库·excel
rain bye bye6 小时前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
冻咸鱼7 小时前
MySQL的配置
mysql·配置
阿里云大数据AI技术8 小时前
云栖实录|MaxCompute全新升级:AI时代的原生数据仓库
大数据·数据库·云原生
不剪发的Tony老师8 小时前
Valentina Studio:一款跨平台的数据库管理工具
数据库·sql
weixin_307779139 小时前
在 Microsoft Azure 上部署 ClickHouse 数据仓库:托管服务与自行部署的全面指南
开发语言·数据库·数据仓库·云计算·azure
六元七角八分9 小时前
pom.xml
xml·数据库