欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > MySQL学习记录 —— 이십 常用工具包

MySQL学习记录 —— 이십 常用工具包

2025/9/23 10:18:43 来源:https://blog.csdn.net/kongqizyd146/article/details/140402647  浏览:    关键词:MySQL学习记录 —— 이십 常用工具包

文章目录

  • 1、总览
  • 2、mysqlcheck - 表维护程序
    • 1、作用
    • 2、注意事项
    • 3、语法
    • 4、命令选项
    • 下面每块都大致有这四个部分
  • 3、Mysqldump - 数据库备份程序
  • 4、mysqladmin - MySQL 服务器管理程序
  • 5、mysqlshow - 显示数据库、表和列信息
  • 6、mysqldumpslow - 总结慢查询日志文件
  • 7、mysqlbinlog - 处理二进制日志文件
  • 8、mysqlslap - 负载仿真客户端


1、总览

在这里插入图片描述

下面各种工具包都是bash命令。各个工具都包含作用、注意事项、语法、选项四个部分。各种工具的命令选项都可以在官方文档中查看。

MySQL 8.4

2、mysqlcheck - 表维护程序

1、作用

mysqlcheck客户端用于执行表维护,可以对表进行:分析、检查、优化或修复操作。
• 分析的作用是查看表的关键字分布,能够让 sql 生成正确的执行计划(支持 InnoDB,MyISAM,NDB)
• 检查的作用是检查表的完整性以及数据库表和索引是否损坏(支持 InnoDB,MyISAM,ARCHIVE,CSV)
• 优化的作用是回收空间、减少碎片、提高I/O(支持 InnoDB,MyISAM,ARCHIVE)
• 修复的作用是修复可能已经损坏的表(支持 MyISAM,ARCHIVE,CSV)

2、注意事项

  1. 当使用mysqlcheck⼯具时,MySQL服务器必须在运行状态
  2. 执行过程中相应的表将会被锁定,所以其他的操作将会被挂起
  3. 并不是所有的存储引擎都支持以上四种操作,如果遇到不支持的引擎会报出相应的错误
  4. 执行表修复操作之前对表进行备份,在某些情况下可能会导致数据丢失。

3、语法

mysqlcheck [options] db_name [tbl_name ...]
mysqlcheck [options] --databases db_name ...
mysqlcheck [options] --all-databases

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

4、命令选项

mysqlcheck的常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqlcheck] 和 [client] 组进行指定。

在这里插入图片描述

在不启动mysql时就可以用这些语句,也就是bash语句,mysqlcheck -a test_db就是分析test_db这个表。

遇到一些不满足条件的,比如存储引擎不支持,那就可以转换引擎。

InnoDB在优化的过程中是执行了一个重建的操作。根据官网建议,优化不应常用,一天以上优化就可以。

在这里插入图片描述

下面每块都大致有这四个部分

3、Mysqldump - 数据库备份程序

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

在这里插入图片描述

语法:

mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases

常用选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导出一个数据库成sql文件

mysqldump test_db > /root/dump.sql -u root -p

mysqldump有这些常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqldump] 和[client] 组进行指定。

4、mysqladmin - MySQL 服务器管理程序

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

语法:

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

command就是要带的命令选项。

检查服务器版本信息

mysqladmin version -u root -p

查看状态就把version改成status。以及还可以改成下面的这些选项。

在这里插入图片描述
在这里插入图片描述
password 密码,这个选项可以设置新密码

• 如果密码中有空格必须用双引号把密码包裹起来
• password 后可以省略新密码,mysqladmin会在之后提示输入新密码
• password 做为最后一个command 时才可以省略密码值,否则下一个参数将作为密码被设置。

默认MySQL服务器可以维护150个活动连接,如果连接被用完,可以通过kill来手动释放休眠时间最长的线程。

在这里插入图片描述
在这里插入图片描述

mysqladmin 的常用选项参考公共选项部分,可以在命令行中指定,也可以在选项文件中通过[mysqladmin] 和 [client] 组进行指定。

5、mysqlshow - 显示数据库、表和列信息

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

语法:

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

当然最后都加上-u root -p。

• db_name tbl_name col_name 可以使用通配符 * 、 ? 、 % 或 _
• 如果没有指定数据库,则显示所有数据库名称列表。
• 如果没有指定表,则显示数据库中所有匹配的表。
• 如果没有指定列,则显示表中所有匹配的列和列类型。
• 输出仅显示当前权限可以访问的数据库、表或列的名称。

mysqlshow很简单,查看官方文档即可。

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

6、mysqldumpslow - 总结慢查询日志文件

慢查询是那些执行时间很长,超过阈值的查询语句。慢查询的相关信息通常需要用日志记录下来称为慢查询日志,mysqldumpslow可以解析慢查询日志文件并汇总其内容。

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

语法:

mysqldumpslow [options] [log_file ...]

可以不带任何选项地输出,这时候的结果中,count是执行的次数,time是单词的耗时,lock是申请与释放锁用的时间,rows是获取数据用的时间。

在这里插入图片描述

sort_type的可选项:

t,at :按查询时间或平均查询时间排序,默认排序
l,al :按锁占用时间或平均锁占用时间排序
r,ar :按发送的行数或平均发送的行数排序
c :按计数排序

7、mysqlbinlog - 处理二进制日志文件

对数据库的各种操作,比如修改,删除,都是一个个事件,每个事件都会以二进制形式记录在文件里,也就是二进制日志文件文件,binlog,Binary Log。mysqlbinlog能够以文本格式显示二进制日志文件中的内容。

binlog的默认保存路径是数据目录,Linux下默认为/var/lib/mysql。binlog是以.00000n结尾命名的文件,n不断递增。

语法:

mysqlbinlog [options] log_file ...

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

在没有选项,直接查看一个日志文件显示的内容中,at表示一个事件在日志文件中的起始偏移位置,end_log_pos表示事件在日志中结束的偏移位置。

mysqlbinlog 的命令选项可以在命令行中指定,也可以在选项文件中通过 [mysqlbinlog] 和 [client] 组进行指定。

在这里插入图片描述
在这里插入图片描述

还有

–raw :mysqlbinlog以原始二进制格式写入事件,默认是文本格式
–read-from-remote-server,-R :–read-from-remote-server=file_name,-R,读取远程MySQL服务器的二进制日志,而不是读取本地,要求远程服务器正在运行

–base64-output=value ,value允许的值:( 默认 AUTO )

AUTO (“automatic”)或 UNSPEC (“unspecified”)在必要时自动显示BINLOG语句。如果使用mysqlbinlog重新执行二进制日志文件内容,那么使用 AUTO 选项是唯一安全的行为,其他选项值仅用于调试或测试,如果 --base64-output 没有指定,那么默认值是 AUTO。
NEVER 不显示BINLOG语句。
DECODE-ROWS 不显示加密内容,可以配合mysqlbinlog 的 -verbose 选项以注释的形式只显示事件的SQL语句。

8、mysqlslap - 负载仿真客户端

mysqlslap是⼀个诊断程序,用于模拟MySQL服务器的客户端负载,并报告每个阶段的时间。

  1. 可以通过 --create 或 --query 选项,指定包含SQL语句的字符串或包含SQL语句的文件。
  2. 如果指定一个包含SQL语句的文件,默认情况下每行必须包含一条语句(也就是说,隐式语句分隔符是换行符)。
  3. 如果要把一条语句分为多行书写,可以使用 --delimiter 选项指定不同的分隔符。
  4. 不能在文件中包含注释,因为mysqlslap不能解析注释。
  5. mysqlslap运行分为三个阶段:
    a. 创建测试数据阶段:创建用于测试的库、表或数据,这个阶段使用单个客户端连接
    b. 运行负载测试阶段,这个阶段可以使用许多客户端连接
    c. 清理阶段:执行删除表,断开连接等操作,这个阶段使用单个客户端连接

语法:

 mysqlslap [options]

示例:

在这里插入图片描述
在这里插入图片描述

mysqlslap 有如下常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqlslap] 和 [client] 组进行指定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还有–auto-generate-sql-unique-query-number选项,–auto-generate-sql-unique-query-number=N为自动测试生成多少个不同的查询(where条件不同),默认值是10。

结束。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词