当前位置: 首页 > news >正文

MySQL工具包中的其他程序

   虽然有很多不同的程序,但有些选项是公共的,比兔用户名和密码,使用方法和MySQL相同,

在这里统一列出,后面我们介绍不同的工具时,只讨论个性的选项以及作用

以下是常用的MySQL程序:

程序名作用

mysqld

MySQL的守护进程即MySQL服务器,mysqld是服务端的程序,需要使用mysql服务器mysqld一定要在运行状态
mysqlmysql是一个客户端程序,用于交互输入SQL语句或批处理模式从文件执行SQL的命令行工具
mysqlcheck用于检查,修复,分析和优化表的表客户端工具
mysqldump将MySQL数据库转储到SQL,文本或者XML文件中的客户端
mysqlimport将文本文件导入到表的客户端工具(备份和恢复
mysqladmin执行管理操作的客户端,例如创建或删除数据库,重新加载授权表,将表刷新到磁盘以及重新打开日志文件,mysqladmin还可以用于从服务器检索版本,进程和状态信息
mysqlshow显示数据库,表,列和索引信息的客户端
mysqldumpslow用于读取和汇总慢速查询日志内容的实用程序
mysqlbinlog从二进制日志中读取SQL语句的使用程序,mysqlbinlog文件中包含的已执行SQL语句的日志,可用于从崩溃中恢复数据
mysqlslap客户端负载工具,模拟多个客户端同时访问MySQL服务器,并报告每个阶段的使用时间。

公共选项如下: 

选项--长格式短格式说明
--host-h

--host=host_name,-h host_name

连接到指定主机上的MySQL服务

--post-P

--port=port_num,-P port_num

TCP/IP连接使用的端口号

--user-u

--user=user_name,-u user_name

用于连接到MySQL服务器的用户名

--password-p

--password[=password],-p[password]

用于连接到MySQL服务器的密码,可选,如果没有给出,会提示用户输入。

--defaults-file

--defaults-file=file_name

使用指定的选项文件,如果该文件不存在,则会发生错误

--compress-C如果可能,压缩客户端和服务器之间传输的所有信息。
--protocol用于连接到服务器的传输协议,默认为TCP
--version-V显示版本信息并退出
--help-?显示帮助信息并退出

1.mysqlcheck - 表维护程序:

mysqlcheck客户端用于执行表维护,可以对表进行分析,检查,优化或者修复操作。

1.分析的作用是查看关键字的分布,能够让sql生成正确的执行计划(支持InnoDB,MyISAM,NDB)

2.检查的作用是检查表的完整性以及数据库表和索引是否损坏(支持InnoDB,MyLSAM,ARCHIVE,CSV)

3.优化的作用是回收空间,减少碎片,提高I/O(支持InnoDB,MyISAM,ARCHIVE)

4.修复的作用是修复可能已经损坏的表(支持MyISAM,ARCHIVE,CSV)

注意:

1.当使用mysqlcheck工具时,MySQL服务器必须在运行状态

2.执行过程中,有些表会被锁定,所以这时其他操作将会被挂起。

3.并不是所有储存引擎都会支持上面四种操作,如果遇到不支持的就会出错。

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

使用方法:

1.mysqlcheck [options] db_name [tbl_name...];

db_name指数据库的名字,必须要指定,后面的表名可以指定也可以不指定,不指定就是操作该数据库下的所有表。

2.mysqlcheck [options] --databases db_name;

该操作可以操作多个数据库,后面跟的是多个需要操作的数据库名字。

3.mysqlcheck [options] --all-databases;

操作所有数据库。

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

选项说明
--analyze,-a分析表
--check,-c检查表中的错误,mysqlcheck的默认操作

--optimize,-o

优化表
--repair,-r执行可能进行的任务修复操作,除了唯一键

 优化操作中,其实执行的是一个重建操作,官网中也建议不要经常去执行优化操作。

InnoDB存储引擎是不支持修复操作的,如果要修复,就要把InnoDB存储引擎转化为MyIsam存储引擎 

特殊操作 :

mysqlcheck程序的默认功能是对数据进行检查操作(相当于--check),如果想要对表进行修复操作,可以通过复制原来的mysqlcheck程序,并重命名为mysqlrepair,并运行mysqlrepair即可,还可以创建mysqlcheck的快捷方式,并且把快捷方式命名为mysqlrepair然后直接运行,这时就执行的是修复操作,通过下表所示的命名方式可以改变mysqlcheck的默认行为:

程序名说明
mysqlrepair默认行为是修复,相当于选项--repair
mysqlanalyze默认行为是修复,相当于分析--analyze
mysqloptimize默认行为是修复,相当于优化--optimize

2.Mysqldump-数据库备份程序:

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

注意:

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

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

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

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

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

6.重新导入转储文件时,也需要相应的权限。

7.由于mysqldump是逐渐转储数据,所以不太适用于大数据的转储和导入。

 使用方法:

mysqldump的方法通常有以下使用,可以转储一个或多个表和数据库,如下图所示:

mysqldump [options] db_name [tbl_name...]

mysqldump [options] --databases db_name...

mysqldump [options] --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语句
--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不转储表的内容
--triggers转储每个表中的触发器
--xml,-X异XML格式输出

示例:

test_ab:是指定的数据库名字

/root/dump.sql:导出的路径地址。  

 可以看到这个sql文件已经成功导出,我们可以打开看看:

 mysqladmin-mysql服务管理程序

mysqladmin是一个执行管理操作的客户端,可以用来检查服务器的配置和当前状态,以及创建和删除数据库等。(使用mysqladmin的用户必须要有管理员权限)

使用方法:

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

 常用选项:

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

语法中command表示命令,有些命令后面需要跟上一个参数,mysqladmin的常用命令:

1.version:显示来自服务器的版本信息。

2.status:显示简短的服务器状态消息。

uptime:mysql已经运行的秒数。

Threads:活动线程(客户端)的数量 

Questions:自服务器启动以来客户端问题(查询)数。

Slow queries:慢SQL的查询数。

Opens:服务器已打开的表数。

Flush tables:服务器已执行flush-*,refresh和reload命令的数量。

Open tables:当前打开的表数。

 3.password new_password

设置新密码

1.如果密码中有空格,则必须要用双引号把密码括起来。

password后面可以省略密码,mysqladmin会在之后提示输入新密码。

password作为最后一个command时才能省略密码值,否则下一个参数将作为密码值。

4.processlist:显示活动服务器线程的列表。

5.kill id,id....

终止服务器线程,如果给出多个线程ID值,则列表中不能有空格。

默认mysql服务器可以维护150个活动连接,如果连接被用完,那么可以通过KILL指定去手动结束休眠时间最常的线程。

mysqlshow-显示数据库,表和列的信息:

mysqlshow可以快速查看数据库,以及数据库中表的列和其中的索引信息。

使用方法:

mysqlshow [数据库名] [表名] [列名] ;

对应的数据库名和表面还有列名可以用通配符*,?,%和_代替。

如果不指定数据库,查询的就是所有的数据库名的列表信息。

如果不指定表,查询的就是数据库中所有匹配的表信息。

如果不指定列名,则查询的就是表中的所有列信息。

注意:前提是当前的权限可以访问的数据库,表和列的信息。

常用选项:

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

mysqldumpslow-总结慢查询日志:

在平时使用mysql时,我们经常使用查询语句,但是有些查询语句执行时间非常长,当执行查询语句的时候超过阈值的时候,就把这个叫做慢查询,慢查询的相关信息被日志记录起来,这个日志就叫慢查询日志mysqldumpslow可以解析慢查询日志文件并汇总其中内容

我们也可以查看慢查询的时间(阈值),通过:

当,查询的时间大于10秒并且开启了慢查询日志功能,这条sql就会被记录在慢查询日志中。

使用方法:

mysqldumpslow [options] [log_file...] 

如果有慢查询的话,显示如下:

mysqldumpslow会将相似查询的分组并显示摘要输出,一般会把数字用“N”代替,字符串用“S”代替。

常用选项文件:

在使用-s,sort_type选项文件时,有以下的可选值:

t,at:按查询时间或者平均查询时间进行排序。

l,al:按锁占用时间或者平均锁占用时间排序。

r,ar:按照发送行数或者平均发送行数进行排序。

c:按照记数排序。

mysqlbinlog处理二进制日志文件:

当我们平时对数据库的修改时,或者对数据进行增删改时,都会被描述成一个‘事件’,每个‘事件’都会以二进制的形式被保存到一个日志文件中,这个文件就是服务器中的二进制日志文件,又称Binary log或者binlog。

mysqlbinlog的作用:

以文本的形式读取二进制文本中的内容。

注意:保存在默认数据目录中:

Linux下的默认目录:/var/lib/mysql

Windows下的默认目录:C:\ProgramData\MySQL\MySQL Server 8.0\Data

这些binlog日志文件保存了具体的内容。

这里如果打开一个文件显示如下:

常用选项:

mysqlbinlog有下面一些选项文件,可以通过命令行或者通过选项文件进行指定,在选项文件中通过[mysqlbinlog]或[client]组下进行指定:

mysqlslap-负载仿真客户端

作用:

mysqlslap是一个诊断程序,用于模拟mysql服务器的客户端,并报告每个阶段的时间,就好比多个客户端正在访问服务器一样。

使用方法:

mysqlslap可以使用以下语法:

mysqlslap [options];

注意事项:

1.可以通过--create或--query选项,指定包含SQL语句的字符串和包含sql语句的文件

2.如果指定一个包含sql语句的文件,默认情况每行必须包含一条语句

3.如果要把一条语句分为多行书写,可以用--delimiter选项指定不同的分隔符。

4.不能在文件中包含注释,因为mysqlslap不能解析注释。

5.mysqlslap运行时分为三个阶段:

        5.1创建测试数据阶段,创建用与测试的库,表或者数据,这个阶段使用单个客户连接

        5.2运行负载测试阶段,这个阶段可以使用许多客户端连接。

        5.3清理阶段,执行删除表,断开连接层,断开连接等操作,这个阶段使用单个客户端连接。

示例:

注意:图片打错了,应该是50个客户端,每个客户端发起200条语句。

http://www.dtcms.com/a/330720.html

相关文章:

  • uniapp自定义封装支付密码组件(vue3)
  • RK3506开发板PWM输入捕获驱动调试记录
  • 网络通信全过程:sk_buff的关键作用
  • 算法基础 第3章 数据结构
  • DBSCAN 算法的原理
  • 使用DevEco Studio运行鸿蒙项目,屏蔽控制台无关日志,过滤需要的日志
  • 鸿蒙NEXT如何通过userAgent区分手机端和pc端
  • uni.setStorage 详解
  • MySQL客户端命令
  • pygame的帧处理中,涉及键盘的有`pg.event.get()`与`pg.key.get_pressed()` ,二者有什么区别与联系?
  • LT3045EDD#TRPBF ADI亚德诺 超低噪声LDO稳压器 电子元器件IC
  • Trae x Figma MCP一键将设计稿转化为精美网页
  • Docker build创建镜像命令入门教程
  • Redis (REmote DIctionary Server) 高性能数据库
  • 【cmake】编译cpp文件,安装MinGW
  • 《Leetcode》-面试题-hot100-动态规划
  • 《嵌入式 C 语言编码规范个人笔记》参考华为C语言规范标准
  • 标贝科技「十万音色·自然语音数据集」 重构AI语音训练基础设施
  • 机器视觉之图像处理篇
  • OpenCV Python——报错AttributeError: module ‘cv2‘ has no attribute ‘bgsegm‘,解决办法
  • 63w+有小程序注册的企业汇总数据(2024.2)
  • 阿里云TranslateGeneral - 机器翻译SDK-自己封账单文件版本—仙盟创梦IDE
  • CSS中实现一个三角形
  • 哪些对会交由SpringBoot容器管理?
  • Unity中的神经网络遗传算法实战
  • 【数据可视化-89】基孔肯雅热病例数据分析与可视化:Python + pyecharts洞察疫情动态
  • UE小:编辑器模式下「窗口/鼠标不在焦点」时仍保持高帧率
  • Flask中ORM的使用
  • 论郑和下西洋元素融入课件编辑器的意义与影响​
  • docker使用指定的MAC地址启动podman使用指定的MAC地址启动