MySQL 常见客户端程序

本篇主要介绍MySQL常见的客户端程序

目录

一、mysqlcheck

二、mysqldump

三、mysqladmin

四、mysqldumpslow

 五、mysqlbinlog

六、mysqlshow

显示列的具体信息​编辑 七、mysqlslap


一、mysqlcheck

mysqlcheck是MySQL的表维护程序,其功能主要包含以下四个方面:

  • 分析:查看表中关键字的分布,是否执行正确的sql计划
  • 检查:检查表的完整性以及数据库表和索引是否有损坏
  • 优化:优化表,包括回收不再使用的空间,减少空间碎片,提高IO性能
  • 修复:对可能已经损坏的表进行修复(InnoDB中不支持)

下面我们来了解一下如何使用mysqlcheck,使用mysqlcheck的命令语法如下:

mysqcheck [选项] 数据库名 [表名]

这里如果不指定表名,则会操作该数据中的所有表 

 mysqlcheck的常用选项如下:

 下面我来使用一下mysqlcheck:

表分析:

根据分析的结果可以发现,库中的表都是没有问题的

表检查:

表优化:

 由于当前表不支持优化,,所以这里用表分析的结果代替了。

表修复:

因为当前表的存储引擎为InnoDB,因此不支持表修复,如果需要进行表修复的话可以先将表的存储引擎改为其它支持表修复的引擎,修复完成后再设置回来。

使用mysqlcheck时需要注意以下几点:

  • 只有在mysql运行时才能使用mysqlcheck
  • 使用mysqlcheck时操作的表会被锁住,其它操作会阻塞
  • 在进行表修复之前需要先对表备份,不然可能会导致表数据丢失 

 

二、mysqldump

mysqldump是MySQL数据备份程序,它能对数据库进行逻辑备份,生成一组SQL,其中包含数据库和表的创建语句以及表中的数据。mysqldump可以生产sql、xml、csv三种格式的备份文件。

下面我们来看一下如何使用mysqldump。

mysqldump的命令语法如下:

mysqldump [options] 数据库名[表名] [备份文件的地址]

mysqldump常用选项如下:

 

下面我们通过mysqldump来将一个test_db表进行一下备份:

首先我们需要创建一个文件,用来保存备份的数据,这里,我创建了一个test.sql

 

然后 我们再使用mysqldump进行转储备份

然后我们再来查看一下test.sql文件 

可以发现文件中包含该库相关的所有SQL语句。

三、mysqladmin

mysqladmin是MySQL的管理程序,能够查看MySQl的状态信息和配置信息,同时还能进行数据库的创建操作。

下面我们来了解一下mysqladmin的使用。

mysqladmin的使用语法如下:
 

mysqladmin [选项] 命令[命令参数]

 mysqladmin的使用的专属选项较少,使用的专属命令则比较多,常用的命令如下:

  • version:查看mysql的版本信息
  • create db_name 创建⼀个数据库名为db_name 。
  • drop db_name 删除名为 db_name 的数据库及其所有表。
  • extended-status显⽰服务器状态变量的值。
  • flush-hosts 刷新主机缓存中的所有信息。
  • flush-logs [log_type ...] 刷新所有⽇志。 log_type 中可以提供以下⼀种或多种⽇志类型binary,engine,error,general,relay,slow,多个类型之间⽤空格分隔。
  • flush-privileges 重新加载授权表
  • flush-status 清除状态变量。
  • flush-tables 刷新所有表。
  • flush-threads 刷新线程缓存。
  • password new_password 设置新密码。  

下面我们通过mysqladmin来查看一下当前MySQL的版本信息和状态:
查看版本

 查看状态

其中Uptime为mysql服务当前已运行的秒数,Threads为当前活动线程的数量,Questions为客户端查询操作的次数,slow queries为慢查询SQL的执行次数,opens为 服务器打开的表的数量,flush tables为服务器执行flush、reload、refresh等操作的次数,open tables为当前会话打开的表的数量。

四、mysqldumpslow

mysqldumpslow是MySQL中的慢查询日志总结程序,它能够对慢查询日志文件进行解析并汇总。

下面让我们来具体了解一下mysqldumpslow的使用。

mysqldumpslow的使用语法如下:

mysqldumpslow [options] [慢查询日志文件]

 mysqldumpslow的常用选项如下:

其中-s选项的sort_type有如下几种:

  • t : 按查询时间或平均查询时间进行排序
  • l : 按锁占用时间或平均占用时间排序
  • r : 按发送给客户端的数据的行数或平均行数进行排序
  • c :按该类查询语句的计数进行排序 

 下面我们来尝试一下解析一个慢查询日志;

 (test-slow.log是一个慢查询日志文件)

解析结果如下:

我们主要来看一下图中框起来的部分,其中记录了慢查询的一些参数信息,其中count为该类sql的执行次数,,time为单次执行的耗时,lock为申请与释放锁的时间,row为获取数据所消耗的时间。后面的部分为哪个用户在哪台机器上执行的该慢查询。再往后就是具体执行的慢SQL

最后要注意的是,mysqldumpslow会将相似的sql进行分组并摘要输出,具体为用N代替数字,用S代替字符串,例如“select* from table where age = 1”、“select* from table where age = 2”都会用“select* from table where age = N”代替,该功能也可以通过前面介绍的选项来关闭

 五、mysqlbinlog

mysqlbinlog是MySQL中用来将二进制日志文件解析成文本文件并显示的程序(MySQL中的二进制日志文件指的是用来保存我们对数据库进行的修改的二进制文件)

下面我们来看一下mysqlbinlog的使用:

其使用语法如下:

mysqlbinlog [options] [二进制日志文件]

常用选项如下:

 其中base64-output的value可以有如下取值:

  • AUTO(默认):自动显示binlog语句,在重新执行二进制日志文件中的sql时,使用AUTO是唯一安全的选项,其它选项只用来调试和测试
  • NEVER :不显示binlog语句
  • DECODES-ROWS:不显示加密的内容,可以搭配mysqlbinlog的version选项以注释的形式只显示事件的sql语句。

下面我们具体来用mysqlbinlog查看一个二进制日志文件:

查到的内容中其中一个事件的内容如下:

 其中,at表示该事件在整个日志文件中的起始偏位置,end_log_pos为事件在日志中结束的偏移位置。有关二进制日志的具体内容将在后面的文章中详细介绍。

六、mysqlshow

mysqlshow程序主要用来快速查看数据库,表,以及表中的列和索引的相关信息。

mysqlshow的使用语法如下:

mysqlshow [options] [数据库名[表名[字段名]]]

  •  数据库名和表名等内容可以用  * 、? 、_等通配符表示
  • 如果没有指定数据库,则显示索引数据库名称
  • 如果没有指定表名,则显示数据库中所有的表名称
  • 如果没有指定列,则显示表中所有的列名及其类型
  • 只会输出当前有权限可以访问的数据库,表、列

mysqlshow功能较简单,没有特殊的选项。

下面我们来演示一下mysqlshow的使用

查看所有数据库:

显示其中test_db中所有的表 

显示表中的所有列名及其类型:

 

显示列的具体信息

 

七、mysqlslap

mysqlslap是一个诊断程序,用来模拟多个用户来操作数据库,并记录每个阶段消耗时间以及负载情况。主要用来测试mysql服务的性能。

下面我们来看一下如何使用mysqlslap:

mysqlslap的使用语法如下:

mysqlslap [options]

常用选项如下:

 下面我们来具体演示一下mysqlslap的使用:

我们通过--concurrency选项来模拟五个用户,然后再通过--iterations来设置每个用户执行五次操作,然后再通过--auto-generate-sql选项来自动生成sql语句,然后我们通过--number-int-cols和--number-char-cols来指定生成的sql查询语句中包含三个int字段和三个varchar字段

mysqlslap --concurrency=5 --iterations=5 --auto-generate-sql --number-int-cols=3 --number-char-cols=3

 运行该指令,mysqlslap就会自动模拟5个用户来执行自动生成的sql,每条sql执行5次。

执行结果如下:

下面我们来看一下mysqlslap使用时的注意事项:

  • 可以通过 -- create或者--query选项来指定包含sql的字符串或者文件
  • 如果指定了一个包含sql的文件,文件中必须每一行对应一条sql,也就是说sql语句的默认分隔符为换行符,可以通过--delimiter选项设置
  • 包含sql的文件中不能包含注释,mysqlslap无法解析注释
  • mysqlslap的执行包含以下三个阶段 :1 创建测试数据,包括测试时的数据库,表,具体数据等内容,这个阶段只使用单个客户端与服务器进行连接 2 运行负载测试阶段 ,该阶段具体来执行模拟的sql,并会创建多个客户端与服务器连接,以模拟多个用户的情况 3 清理阶段,该阶段会删除相关数据,例如阶段1创建的库表等内容,并执行断开连接操作,该阶段单个客户端与服务器连接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/696668.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

传感器展会|2024厦门传感器与应用技术展览会

传感器展会|2024厦门传感器与应用技术展览会 时间:2024年11月1-3日 地点:厦门国际会展中心 XISE EXPO展会介绍: 2024中国(厦门)国际传感器与应用技术展览会将于2024年11月1-3日在厦门国际会展中心举行&#xf…

Docker快速部署springboot项目

本文概述 本文主要介绍了怎么将springboot项目打包为docker镜像,并如何在后端服务器上使用docker快速部署springboot应用和nginx应用。 一、打包springboot项目 1、复制原来的application.yml文件然后重命名为application-pro.yml文件,将application-pro…

Stable-Diffusion的WebUI部署

1、环境准备及安装 1.1、linux环境 # 首先,已经预先安装好了anaconda,在这里新建一个环境 conda create -n sdwebui python3.10 # 安装完毕后,激活该环境 conda activate sdwebui# 安装 # 下载stable-diffusion-webui代码 git clone https:…

高考志愿填报:大学学什么专业比较好呢?

准高三一枚,比较迷茫,求推荐一些专业以后比较好就业,发展前景较好的。听说互联网行业比较吃香,有想过以后做运营这一块,但是不知道应该在大学选什么专业,求推荐吧! 学什么专业好? 这…

ollama webui 11434 connection refused

报错:host.docker.internal:11434 ssl:default [Connection refused] 将/etc/systemd/system/ollama.service中加上如下红框两行 然后 systemctl daemon-reload systemctl restart ollama然后删掉之前的container。 最后 sudo docker run -d -p 4000:8080 --add-…

Vue3学习日记(day2)

目录 前言 注意事项 vite使用 1:控制台vite创建vue 2:使用可视化软件(我使用为vscode)npm安装对应依赖包 3:使用npm脚本或者直接在终端输入命令运行软件后打开生成网址 4:打开网址正常进入网页 rou…

SpringBoot3+Mybatis-Plus+h2数据库,入门Mybatis-Plus

SpringBoot3Mybatis-Plush2数据库,入门Mybatis-Plus mybatis-plus官网地址maven依赖数据库脚本配置文件实体类Mapper入门程序启动程序测试单元测试测试结果 Service层接口service层接口单元测试测试结果 项目结构 mybatis-plus官网地址 https://www.baomidou.com/ …

IP地址冲突检测(Address Conflict Detect)记录

学习目标: 提示:ACD(IP地址冲突检测)原理学习与抓包分析 学习记录: 1、Address Conflict Detection地址冲突检测,简称ACD。RFC 5227提出ACD机制。其中ACD将arp request分为ARP probe和ARP announcement两种; ACD定义…

深入理解 C++ 智能指针

文章目录 一、引言二、 原始指针的问题1、原始指针的问题2、智能指针如何解决这些问题 三、智能指针的类型四、std::shared_ptr1、shared_ptr使用2、shared_ptr的使用注意事项3、定制删除器4、shared_ptr的优缺点5、shared_ptr的模拟实现 五、std::unique_ptr1、unique_ptr的使…

Java_中间件——Redis

Redis 介绍: Redis是一个基于内存的key-value结构数据库(MySQL是通过数据文件方式存储在磁盘上,数据结构是二维表) 特点: 更改配置文件: 使用密码: redis默认是不需要密码的,如果…

spring-data-mongodb版本兼容问题

spring-data-mongodb与mongodb驱动有兼容性问题,不匹配会报NoSuchMethod异常,mongodb的java驱动包在4.0之后由mongodb-java-driver更名为mongodb-driver-sync。 spring-data-mongodb包依赖中有mongodb-driver-core,但缺诸如MongoCollection等…

虚拟机调用摄像头设备一直 select timeout问题的解决

在VMware里面调用v4l2-ctl捕获图像,或者opencv的VideoCapture(0)捕获图像,或者直接调用v4l2的函数,在streamon后,调用select读取数据,均会一直提示select timeout的问题,大概率是由于USB版本的兼容性造成的…

【Oracle】Oracle导入导出dmp文件

文章目录 前言一、什么是dmp?二、imp/impdp、exp/expdp对比及示例1.区别2.imp/impdp对比及示例a. impb. impbp 3.exp/expdp对比及示例a. expb.expdp 3.其他事项 三、执行导入导出前置条件1.创建角色并授权2.创建目录映射 前言 在工作中,经常会遇到需要备…

【Linux】网络配置(静态/动态/手动/nmcli)

目录 一、手动修改网络配置文件:静态 二、手动修改网络配置文件:动态 三、nmcli工具命令修改网络配置文件:静态 四、nmcli工具命令修改网络配置文件:动态 错误排查分析:编辑虚拟网络编辑器不生效 1、排除VMware启…

Excel 将同一分类下的值依次填进分类格右边的格中

表格的第2列是分类,第3列是明细: ABC1S.noAccountProduct21AAAQatAAG32BAAQbIAAW43BAAQkJAAW54CAAQaAAP65DAAQaAAX76DAAQbAAX87DAAQcAAX 需要将同一分类下的值依次填入分类格右边的格中: ABCD1S.noAccountProduct21AAAQatAAG32BAAQbIAAWkJ…

[数据集][目标检测]厨房积水检测数据集VOC+YOLO格式88张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):88 标注数量(xml文件个数):88 标注数量(txt文件个数):88 标注类别数…

笔记-Python pip配置国内源

众所周知,Python使用pip方法安装第三方包时,需要从 https://pypi.org/ 资源库中下载,但是会面临下载速度慢,甚至无法下载的尴尬,这时,你就需要知道配置一个国内源有多么重要了,通过一番摸索和尝…

[office] 快速提取出Excel 2010单元格括号内的文字信息 #知识分享#经验分享

快速提取出Excel 2010单元格括号内的文字信息 实例演示 ①我们打开一份Excel电子表格,我们要将C列里面括号内的内容提取到D列里面,单击D2单元格,输入下面的函数公式: MID(C2,FIND("(",C2)1,LEN(C2)-FIND("("…

文案策划背后的秘密 | 职场高手养成记

要想在文案策划这个行当里混,首先得对自己的文字功底有足够的信心,那种“文章独步天下”的气势不可或缺。 要是没有这份自信,我建议你还是另寻他路。 要想跨入文案策划的大门,可以从以下几个方面入手: 1. 学习文案基…

4000亿薪酬被驳回!马斯克再次讨薪

特斯拉CEO埃隆马斯克的一笔巨额财产,将在数日后的特斯拉股东大会上,由股东投票决定何去何从。 事情是这样的。 3.5研究测试:hujiaoai.cn 4研究测试:askmanyai.cn Claude-3研究测试:hiclaude3.com 2018年,特…