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

  • 系统数据库 提供数据库管理的基础。
  • 常见工具 为用户高效管理数据库和数据提供了丰富功能。
相关推荐
贝多芬也爱敲代码11 分钟前
如何减小ES和mysql的同步时间差
大数据·mysql·elasticsearch
安当加密1 小时前
MySQL数据库透明加密(TDE)解决方案:基于国密SM4的合规与性能优化实践
数据库·mysql·性能优化
007php0071 小时前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
JH30732 小时前
第七篇:Buffer Pool 与 InnoDB 其他组件的协作
java·数据库·mysql·oracle
板凳坐着晒太阳2 小时前
ClickHouse 配置优化与问题解决
数据库·clickhouse
数据库生产实战2 小时前
解析Oracle 19C中并行INSERT SELECT的工作原理
数据库·oracle
AAA修煤气灶刘哥3 小时前
服务器指标多到“洪水泛滥”?试试InfluxDB?
数据库·后端·面试
阿沁QWQ3 小时前
MySQL服务器配置与管理
服务器·数据库·mysql
程序新视界4 小时前
MySQL“索引失效”的隐形杀手:隐式类型转换,你了解多少?
数据库·mysql·dba
Logintern095 小时前
windows如何设置mongodb的副本集
数据库·windows·mongodb