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有如下的常用选项,可以在使用的时候进行指定,也可以在选项文件中通过mysqldumpclient组进行指定 :

选项 说明
--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的常用选项参考前面文章有写的公共部分,可以在命令行中指定,也可以在选项文件中指定mysqladminclient组进行指定

支持的命令

语法中的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 的常用选项和公共选项部分差不多,可以在命令行中指定。也可以在选项文件中通过mysqlshowclient 组进行指定,具体选项参考公共选项列表

结尾

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

相关推荐
阿坤带你走近大数据2 分钟前
SQL里where后面的1=1是干嘛的,走的是什么索引
数据库·sql
阿坤带你走近大数据2 分钟前
SQL的执行顺序和书写顺序的介绍
数据库·sql·oracle
Poo_Chai39 分钟前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库
这个DBA有点耶1 小时前
从DBA到数据架构师(五):数据架构演进中的技术债务管理
数据库·程序人生·云原生·架构·dba·数据库管理员
Bruce_Liuxiaowei2 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
码农颜2 小时前
5.6.2 ⾏级锁死锁
数据库·sql·oracle
ChaHae-In3 小时前
MyBatis动态SQL与MyBatis-Plus高效开发指南
数据库·oracle·mybatis
冰暮流星3 小时前
mysql之分组查询
数据库·mysql
倒流时光三十年4 小时前
PostgreSQL Semi-Join(半连接)通俗讲解
数据库·postgresql
NiceCloud喜云4 小时前
腾讯云国际版云数据库选型:MySQL、Redis 怎么按业务架构来判断
数据库·mysql·腾讯云