大家好,这篇文章带来有关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 已执行
flush、refresh、reload等刷新类命令的累计次数。 -
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语句也可以获得相同的信息
使用方法
mysqlshow可以使用以下方法:
mysqlshow [options] [db_name [tbl_name [col_name] ] ]
- 支持使用通配符:
*、?、%、_ - 如果未指定数据库,则显示所有数据库名称列表
- 如果未指定表,则显示数据库中所有匹配的表
- 如果未指定列,则显示表中所有匹配的列及列类型
- 输出仅显示当前权限可访问的数据库、表或列名称
常用选项
mysqlshow 的常用选项和公共选项部分差不多,可以在命令行中指定。也可以在选项文件中通过[mysqlshow] 和 [client] 组进行指定,具体选项参考公共选项列表

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