【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有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 mysqlcheckclient 组进⾏指定

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有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 mysqldumpclient 组进⾏指定

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 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 mysqlbinlogclient 组进⾏指定

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次。
相关推荐
学传打活6 小时前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活5 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16813 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心16 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552721 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552722 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝23 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552723 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552724 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节