MySQL - 4 - mysqldump/mysqladmin/mysqlshow讲解

大家好,这篇文章带来有关mysqldump, mysqladmin, mysqlshow这几个客户端程序的讲解,希望对你有所帮助。

mysqldump程序

作用

mysqldump 客户端程序 可以执行逻辑备份并生成一组 SQL 语句,其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump 命令除了生成.sql格式还可以生成 CSV 或 XML 格式的文件。

注意事项

  • 转储表时必须要有 SELECT 权限
  • 转储视图时必须要有 SHOW VIEW 权限
  • 转储触发器时必须要有 TRIGGER 权限
  • 未使用 --single-transaction 选项时,必须要有 LOCK TABLES 权限
  • 未使用 --no-tablespaces 选项时,必须要有 PROCESS 权限
  • 重新导入转储文件时,也需要具备对应的操作权限
  • 由于mysqldump 是逐行转储数据,因此不适合大数据量的转储与导入

使用方法

mysqldump的使用方法通常有以下几种,可以转储一个或者多个表或数据库

mysqldump [options] db_name [tbl_name ... ]

mysqldump [options] --databases db_name ...

mysqldump [options] --all-databases

如果在db_name后没有指定任何表名,或者使用--databases 或 --all-databases选项,那么整个数据库都会被转储

常用选项

mysqldump有如下的常用选项,可以在使用的时候进行指定,也可以在选项文件中通过[mysqldump] 和 [client]组进行指定 :

选项 说明
--add-drop-database 在每个create database语句之前添加 drop database语句
--add-drop-table 在每个create table语句之前添加 drop table语句
--add-drop-trigger 在每个create trigger语句之前添加 drop trigger语句
--add-locks 用lock tables 和 unlock tables语句包裹锁定每个表的转储
--all-databases, -A 转储所有数据库中的所有表
--databases, -B --databases=db_name 多个数据库名用空格隔开 将参数解释成数据库名称并转储所有的表
--comments, -i 添加注释到转储文件
--compact 紧凑格式输出
--ignore-table --ignore-table=db_name.table_name 多个表用空格隔开, 不转储给定的表
--no-create-db,-n 不要生成create database语句
--no-create-info, -t 不要为每个转储的表生成create table语句
--no-data, -d 不转储表内容
--tables --tables=table_name 多个表用空格隔开 在选项之后的所有名称参数视为表名
--triggers 转储每个表中的触发器
--xml, -X 以XML格式输出

官方查询地址:

MySQL :: MySQL 8.4 Reference Manual :: 6.5.4 mysqldump --- A Database Backup Program

Example:

检查对应文件是可以看见我们对应添加参数是可以找到其中的变化的

mysqladmin程序

作用

mysqladmin是一个执行管理操作的客户端,可以用来检查服务器的配置和当前状态,以及创建和删除数据库等。(配合使用mysqladmin的用户必须具备管理员权限)

使用方法

mysqladmin可以使用以下语法:

mysqladmin [options] command [command-arg] [command [command-arg]] ...

常用选项

mysqladmin的常用选项参考前面文章有写的公共部分,可以在命令行中指定,也可以在选项文件中指定[mysqladmin] 和 [client]组进行指定

支持的命令

语法中的command表示命令,有些命令后面需要跟上一个参数,如下列出了mysqladmin的常用命令:

1.version

显示来自服务器的版本信息,mysqladmin version -uroot -p

  • UptimeMySQL 服务器已运行的总秒数。

  • Threads当前活动线程(客户端连接)数量。

  • Questions服务器启动后,客户端累计执行的 SQL 查询请求总数。

  • Slow queries执行时长超过慢查询阈值的慢 SQL 总数。

  • Opens服务生命周期内,累计打开过的数据表总数量。

  • Flush tables 已执行 flushrefreshreload 等刷新类命令的累计次数。

  • Open tables 当前时刻正在打开的数据表数量。

2.create db_name

创建一个数据库名为db_name

3.drop db_name

删除名为db_name的数据库及其所有表

4.extended-status

显示服务器状态变量的值

5.flush-hosts

刷新主机缓存中的所有信息

6.flush-logs [log_type ...]

刷新所有日志。log_type 中可以提供以下一种或多种日志类型binary, engine, error, general, relay, slow, 多个类型之间用空格分隔

7.flush-privileges

重新加载授权表

8.flush-status

清楚状态变量

9.flush-tables

刷新所有表

10.flush-threads

刷新线程缓存

11.password new_password

设置新密码

如果密码有空格必须用双引号把密码包裹起来

password后可以省略新密码,mysqladmin会在之后提示输入新密码

password作为最后一个command时才可以省略密码值,否则下一个参数将作为密码被设置

12.ping

检查服务器是否可用

13.processlist

显示活动服务器线程的列表

默认MySQL服务器可以维护150个活动连接,如果不主动断开就会出现大量无效连接,就可以通过mysqladmin去查看下,kill 掉对应线程让睡眠时间长的连接释放掉

14.kill id, id, ...

终止服务器线程。如果给出多个线程ID值,则列表中不能有空格

15.reload

重新加载授权表

16.refresh

刷新所有表

17.shutdown

停止服务器

18.start-replica

在副本服务器上开始复制。MySQL 8.0.26及以后的版本使用此命令

19.start-slave

在副本服务器上开始复制。MySQL 8.0.26之前使用此命令

20.status

显示简短的服务器状态消息

21.stop-replica

停止副本服务器上的复制。MySQL 8.0.26及以后的版本使用此命令

22.stop-slave

停止副本服务器上的复制。MySQL 8.0.26之前使用此命令

23.variables

显示服务器系统变量及其值

官网地址:

MySQL :: MySQL 8.4 Reference Manual :: 6.5.2 mysqladmin --- A MySQL Server Administration Program

mysqlshow

作用

mysqlshow 客户端可用于快速查看存在哪些数据库、数据库中的表,以及表中的列或索引。

注意事项

mysqlshow为一些show语句提供了一个命令行接口。直接使用这些SQL语句也可以获得相同的信息

官网:MySQL :: MySQL 8.0 Reference Manual :: 6.5.7 mysqlshow --- Display Database, Table, and Column Information

使用方法

mysqlshow可以使用以下方法:

mysqlshow [options] [db_name [tbl_name [col_name] ] ]

  • 支持使用通配符:*?%_
  • 如果未指定数据库,则显示所有数据库名称列表
  • 如果未指定表,则显示数据库中所有匹配的表
  • 如果未指定列,则显示表中所有匹配的列及列类型
  • 输出仅显示当前权限可访问的数据库、表或列名称

常用选项

mysqlshow 的常用选项和公共选项部分差不多,可以在命令行中指定。也可以在选项文件中通过[mysqlshow] 和 [client] 组进行指定,具体选项参考公共选项列表

结尾

希望大家能多多点赞 + 收藏 + 关注!博主更新ing...

相关推荐
yuzhiboyouye11 小时前
所有的 SQL 都要经过 Explain 优化,是什么意思
数据库·sql
洛水水11 小时前
Redis 实现限流功能的几种方法
数据库·redis·缓存
l1t11 小时前
DeepSeek总结的postgresql 数据分析师 vs width_bucket()
数据库·postgresql
米高梅狮子11 小时前
Redis
数据库·redis·mysql·缓存·docker·容器·github
dinl_vin11 小时前
FastAPI 系列 ·(四):数据库集成——SQLAlchemy 2.0 异步 ORM 与 Alembic 迁移
java·数据库·fastapi
坚定信念,勇往无前12 小时前
electron-vite 安装better-sqlite3
javascript·数据库·electron
大明者省12 小时前
Ubuntu22.04 宝塔面板与 XFCE 远程桌面端口兼容性分析
运维·服务器·数据库·笔记
liudanzhengxi13 小时前
巧用ULN2003A轻松扩展单片机IO口
数据库·mongodb
Teable任意门互动13 小时前
深度解析:AI 赋能开源多维表格,实现企业全场景数据整合与高效应用
数据库·人工智能·低代码·信息可视化·开源·数据库开发