【mysql进阶】1-5. 其它客户端

mysql 其他客户端

在命令⾏中使⽤MySQL发⾏版中的其他⼯具时,⼀些选项是公共的,⽐如⽤⼾名和密码,使⽤⽅法和mysql相同,在这⾥统⼀列出,后⾯我们在介绍不同的⼯具时,只讨论个性的选项及作⽤,公共选项如下所⽰:

1 mysqlcheck - 表维护程序

1.1 作⽤

mysqlcheck客⼾端⽤于执⾏表维护,可以对表进⾏:分析、检查、优化或修复操作。

  • 分析的作⽤是查看表的关键字分布,能够让 sql ⽣成正确的执⾏计划(⽀持 InnoDB,MyISAM,NDB)
  • 检查的作⽤是检查表的完整性以及数据库表和索引是否损坏(⽀持 InnoDB,MyISAM,ARCHIVE,CSV)
  • 优化的作⽤是回收空间、减少碎⽚、提⾼I/O(⽀持 InnoDB,MyISAM,ARCHIVE)
  • 修复的作⽤是修复可能已经损坏的表(⽀持 MyISAM,ARCHIVE,CSV)

1.2 注意事项

  1. 当使⽤mysqlcheck⼯具时,MySQL服务器必须在运⾏状态

  2. 执⾏过程中相应的表将会被锁定,所以其他的操作将会被挂起

  3. 并不是所有的存储引擎都⽀持以上四种操作,如果遇到不⽀持的引擎会报出相应的错误

  4. 执⾏表修复操作之前对表进⾏备份,在某些情况下可能会导致数据丢失。

1.3 使⽤⽅法

  • ⼀般通过以下三种⽅法使⽤mysqlcheck

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

1.4 常⽤选项

mysqlcheck有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlcheck] 和 [client] 组进⾏指定

1.5 mysqlcheck的特殊使⽤

mysqlcheck程序的默认功能是对数据表进⾏ 检查 操作(相当于指定选项 --check ),如果想要对表进⾏修复操作,可以通过复制原来的mysqlcheck程序,并重命名为mysqlrepair,并运⾏mysqlrepair即可,还可以创建mysqlcheck的快捷⽅式,并把快捷⽅式命名为mysqlrepair然后

直接运⾏,这时就执⾏的是修复操作,通过下表所⽰的命名⽅式可以改变mysqlcheck的默认⾏为:

2 Mysqldump - 数据库备份程序

2.1 作⽤

mysqldump客⼾端程序可以执⾏逻辑备份并⽣成⼀组SQL语句,其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump命令可以⽣成CSV、或XML格式的⽂件。

2.2 注意事项

  1. 转储表时必须要有 SELECT 权限

  2. 转储视图时必须要有 SHOW VIEW 权限

  3. 转储触发器时必须要有 TRIGGER 权限

  4. 如果没有使⽤ --single-transaction 选项时必须要有 LOCK TABLES 权限

  5. 如果没有使⽤ --no-tablespaces 选项时必须要有 PROCESS 权限

  6. 重新导⼊转储⽂件时,也需要有相应的权限

  7. 由于mysqldump是逐⾏转储数据,所以不适⽤于⼤数据量的转储与导⼊

2.3 使⽤⽅法

mysqldump的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库,如下所⽰:

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

2.4 常⽤选项

mysqldump有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqldump] 和[client] 组进⾏指定

3 mysqladmin - MySQL 服务器管理程序

3.1 作⽤

mysqladmin 是⼀个执⾏管理操作的客⼾端。可以⽤来检查服务器的配置和当前状态,以及创建和删除数据库等。

3.2 使⽤⽅法

mysqladmin 可以使⽤以下语法:

shell 复制代码
mysqladmin [options] command [command-arg] [command [command-arg]] ...

3.3 ⽀持的命令

语法中的command 表⽰命令,有些命令后⾯需要跟上⼀个参数,如下列出了mysqladmin 的常⽤命令:

  1. version

显⽰来⾃服务器的版本信息。

Uptime MySQL 服务器已运⾏的秒数。

Threads 活动线程(客⼾端)的数量。

Questions ⾃服务器启动以来客⼾端的问题(查询)数。

Slow queries 慢SQL的查询数。

Opens 服务器已打开的表数。

Flush tables 服务器已执⾏flush-*、refresh和reload命令的数量。

Open tables 当前打开的表数。

4 mysqlshow - 显⽰数据库、表和列信息

4.1 作⽤

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

4.2 注意事项

mysqlshow 为⼀些 SHOW 语句提供了⼀个命令⾏接⼝。关于SHOW的使⽤参⻅官⽅⽂件"SHOW语句"。直接使⽤这些SQL语句也可以获得相同的信息。

4.3 使⽤⽅法

mysqlshow 可以使⽤以下语法:

shell 复制代码
mysqlshow [options] [db_name [tbl_name [col_name]]]
  • db_name tbl_name col_name 可以使⽤通配符 * 、 ? 、 % 或 _

  • 如果没有指定数据库,则显⽰所有数据库名称列表。

  • 如果没有指定表,则显⽰数据库中所有匹配的表。

  • 如果没有指定列,则显⽰表中所有匹配的列和列类型。

  • 输出仅显⽰当前权限可以访问的数据库、表或列的名称。

5 mysqldumpslow - 总结慢查询⽇志⽂件

5.1 作⽤

在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇志,mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容,有关慢查询⽇志的内容我们在MySQL服务器配置与管理专题进⾏讲解

5.2 注意事项

通常情况下,mysqldumpslow 会将相似的查询分组并显⽰摘要输出,⼀般会把数字和字符串⽤ N和 "S" 代替,要想显⽰真实的值可以使⽤ -a 和 -n 选项。

6 mysqlbinlog - 处理⼆进制⽇志⽂件

什么是⼆进制⽇志⽂件:

我们平时对数据库的修改,包括对数据的增删改,都会被描述成⼀个"事件",每个"事件"都会以⼆进制的形式记录在⼀个⽂件⾥,这个⽂件就是服务器的⼆进制⽇志⽂件,称为Binary Log或binlog。

6.1 作⽤

mysqlbinlog 能够以⽂本格式显⽰⼆进制⽇志⽂件中的内容。

6.2 注意事项

  • binlog的默认保存路径是数据⽬录:

    • Linux下默认⽬录:/var/lib/mysql

    • Windows下默认⽬录:C:\ProgramData\MySQL\MySQL Server 8.0\Data

  • binlog是以 .00000n 结尾命名的⽂件,n不断递增

6.3 使⽤⽅法

mysqlbinlog 可以使⽤以下语法

shell 复制代码
mysqlbinlog [options] log_file ...

例如要显⽰名为 binlog.000010 ⼆进制⽇志⽂件的内容,可以使⽤以下命令:

binlog.000010 的输出内容中包含各种事件,事件信息包括 SQL 语句、执⾏语句的服务器 ID、语句执⾏时的时间戳、花费的时间等等。

6.4 常⽤选项

mysqlbinlog 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlbinlog] 和 [client] 组进⾏指定

7 mysqlslap - 负载仿真客⼾端

7.1 作⽤

mysqlslap是⼀个诊断程序,⽤于模拟MySQL服务器的客⼾端负载,并报告每个阶段的时间,就好⽐多个客⼾端正在访问服务器⼀样。

7.2 使⽤⽅法

mysqlslap可以使⽤以下语法

shell 复制代码
mysqlslap [options]

7.3 注意事项

7.4 ⽰例

  1. 提供⾃定义的创建和查询语句,创建50个客⼾端连接,每个客⼾端进⾏200次 select 查询(在⼀⾏内输⼊命令)
  1. 让mysqlslap⽤包含两个 INT 列和三个 VARCHAR 列的表⾃动构建查询的SQL语句。使⽤5个客⼾端,每个客⼾端查询20次。
  1. 从指定的⽂件中加载创建、插⼊和查询SQL语句。SQL⽂件中的语句以 ";" 分隔。使⽤5个客⼾端,每个客⼾端查询5次。
相关推荐
Reese_Cool4 小时前
【C++】从C语言到C++学习指南
c语言·c++·1024程序员节
黄焖鸡能干四碗9 小时前
【软件设计文档】详细设计说明书模板和实际项目案例参照,概要设计说明书,需求设计书,软件设计报告(Word原件)
大数据·软件需求·设计规范·规格说明书·1024程序员节
sheng12345678rui21 小时前
mfc100u.dll是什么?分享几种mfc100u.dll丢失的解决方法
游戏·microsoft·电脑·dll修复工具·1024程序员节
明明真系叻1 天前
第二十二周机器学习笔记:动手深度学习之——线性代数
笔记·深度学习·线性代数·机器学习·1024程序员节
开利网络1 天前
数字化转型:企业降本增效的关键之路
大数据·物联网·搜索引擎·信息可视化·1024程序员节
玛哈特-小易1 天前
玛哈特矫平机:精密制造中的平整大师
制造·微信公众平台·1024程序员节·矫平机
惜.己3 天前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
西电研梦3 天前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己3 天前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·3 天前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节