【MySQL】常见可执行程序

本文使用的版本是MySQL8,5.7可能会有所不同。

MySQL提供了一些重要的程序用来管理和操作数据库。这里会介绍一些常用的程序及其使用。对于MySQL程序的使用,可以查看官方帮助手册来学习。

MySQL :: MySQL 8.0 Reference Manual :: 6 MySQL Programs

程序存放位置

对于Linux,这些程序通常在 /usr/bin目录下

对于Windows,文件则是 安装MySQL目录下的bin中

程序概览

程序名作用
mysqldMySQL的守护进程,d是daemon。
这个程序就代表着MySQL服务器,只有当它运行起来,MySQL才能提供服务。
mysqlMySQL客户端。通常用于交互或者批处理执行sql。
mysqlcheck检查、修复、分析和优化表。
mysqldump把MySQL的数据库转存成sql、文本或者xml文件。
mysqlimport把文本文件导入到数据库。
mysqladminMySQL的管理工具,用于创建、删除数据库,重新加载授权表,将表刷新到磁盘,重新打开日志文件,检查服务器状态等。
mysqlshow显示数据库、表、列和索引的客户端。
mysqldumpslow读取和汇总慢速查询日志。
mysqlbinlog从二进制日志中读取sql语句。可从崩溃中恢复数据
mysqlslap

客户端负载工具,模拟多个客户端访问服务器,并报告每个阶段使用的时间。

程序的选项说明

由于下面的程序中都会使用到选项,这里对于选项做一个说明。只针对MySQL中的程序

选项介绍

选项通常以一种预定义的格式出现,用户可以通过命令行或者程序接口来指定这些选项。选项可以包括开关选项(Boolean Options)和带值选项(Value Options)两种类型。

开关选项:开关选项是布尔类型的选项,通常用于打开或关闭某些功能。它们通常不需要额外的参数值,只需要指定是否启用即可。例如,-v 表示开启详细输出,--verbose 是它的长格式。

带值选项:带值选项需要一个额外的参数值来指定其设置。这些参数值可以是字符串、数字或其他类型的数据,用于配置程序的某些特性。例如,-o filename 表示指定输出文件名为 filename,--output=filename 是它的长格式。

长短格式

长格式和短格式是命令行选项的两种常见形式,用于向程序传递参数或设置选项。它们的作用相同,只是形式不同,适用于不同的使用场景。

长格式:长格式选项通常以两个短横线(--)开头,后跟选项的完整名称。例如,--host、--user、--password 等。长格式选项更具可读性,但在键盘上输入时可能较为繁琐。

短格式:短格式选项通常以单个短横线(-)开头,后跟选项的单个字符缩写。例如,-h、-u、-p 等。短格式选项通常更为紧凑,适合在命令行中快速输入,但可读性稍差。

长格式和短格式选项通常是可互换的,用户可以根据个人喜好或需求选择使用哪种形式。例如,--host=localhost 和 -h localhost 具有相同的效果,都用于指定连接到 MySQL 服务器的主机名为 localhost。但前导破折号不能转为下划线,例如: --skip-grant-tables 和 --skip_grant_tables 是等价的

带值长短格式

带值的长格式:选项通常使用等号(=)分隔选项名称和值,例如:--host=127.0.0.1

带值的短格式:选项可以有两种形式,选项值可以紧跟在选项后面,也可以用空格隔开,例如:-h127.0.0.1 和 -h 127.0.0.1 是等价的。

对于密码选项的短格式,如果要指定密码,选项与值之间不能有空格。

如果选项的值中包含空格,那么值需要包含在双引号中。

对于采用数值的选项,该值可以带有后缀 K , M 或 G 以指⽰乘数 1024、1024^2或 1024^3,例如,以下命令告诉 mysqladmin对服务器执⾏ 1024 次 ping,每次 ping 之间休眠 3 秒 mysqladmin --count=1K --sleep=3 ping -uroot -p

选项命令行

在命令行中使用很简单,格式如下:

MySQL程序名字 选项

选项配置文件

大多数 MySQL 程序都可以从选项文件(配置文件)中读取启动选项。可以在选项文件中指定常用选项,这样就不用在每次运行程序时都在命令行中输入它们。大部分选项文件都是纯⽂本格式,可以使用任何文本编辑器创建。

使用方法

选项 --defaults-file 可以用来指定客户端程序要使用的选项文件,客户端程序会读取并应用选项文件中的相关配置。这个选项允许用户将配置信息保存在一个独立的文件中,而不是通过命令行参数来指定每个配置项,这样可以更方便地管理和维护配置。

格式如下:

--defaults-file=path_to_file
其中,path_to_file 是指定的选项文件的路径和名称。

文件读取顺序

MySQL是按照下面表格的顺序查找并读取文件。读取顺序从上到下,越下面的文件优先级越高。也就是面的选项值会把上面的选项值覆盖(如果有冲突的话)

对于Windows

%WINDIR%:

%WINDIR% 是一个环境变量,它指示了 Windows 操作系统的安装目录,通常是 C:\Windows。
这个变量可以在命令行或脚本中使用,用于引用 Windows 系统目录的路径,而不必硬编码路径。
例如,%WINDIR%\System32 是指向 Windows 系统目录下的 System32 文件夹。

BASEDIR:

BASEDIR 通常表示某个软件或应用程序的安装基准目录。
在 MySQL 中,BASEDIR 表示 MySQL 服务器的安装目录,例如 C:\Program Files\MySQL\MySQL Server\。
使用 BASEDIR 可以在不同的环境中轻松地指定 MySQL 安装目录,而不必硬编码路径。

%APPDATA%:

%APPDATA% 也是一个环境变量,它指向当前用户的应用程序数据目录。
在 Windows 中,%APPDATA% 通常指向 C:\Users\<username>\AppData\Roaming 目录,其中 <username> 是当前登录用户的用户名。
这个目录用于存储应用程序的用户特定数据,例如配置文件、临时文件等。

对于Linux

~:表示当前用户的主目录。


MYSQL_HOME:是设置的环境变量路径,通常用于指向 MySQL 服务器的安装目录。


DATADIR:代表 MySQL 数据目录,即存储数据库文件的目录。

选项文件语法

当在命令行上指定MySQL程序时,任何长选项都可以在选项文件中指定。以下是选项文件的格式化规则:

  • 选项文件中省略两个前导破折号,并且每一行表示一个选项。例如,--quick 和 --host=127.0.0.1 在选项文件中应表示为 quick 和 host=127.0.0.1。
  • 空行会被忽略,非空行可以采用以下形式:#comment 或 ;comment。注释以 # 或 ; 开头,可以从一行的中间开始。
  • [group] 表示设置选项的程序或组的名称,不区分大小写。如果选项组名称与程序名称相同,则组中的选项专门应用于该程序,例如,[mysqld] 和 [mysql] 组分别适用于 mysqld 服务端程序和 mysql 客户端程序。
  • opt_name 相当于命令行上的选项名。
  • opt_name = value 表示选项名对应的值,可以使用转义序列 \b, \t, \n, \r, \\ 和 \s 来表示退格符、制表符、换行符、回车符、反斜杠和空格字符。

内容大致如下

注意事项:

选项名称和值中的前导和尾随空格会自动删除。


在 Windows 系统中设置路径应该使用转义字符。


!include 指令可以包含其他选项文件,例如:!include /home/mydir/myopt.cnf。


!includedir 指令用来搜索指定目录中的其他选项文件,但不保证目录中选项文件的读取顺序。


只会读取包含文本中当前客户端的组配置,例如当前运行的是 mysql 程序,那么只会读取 [mysql] 组中的选项配置。


在 Windows 中请确保在配置文件的最后一行加一个换行符,否则该行将被忽略。

mysqld

mysqld也被称为MySQL服务器,是一个多线程程序,用来监听客户端的请求。mysqld收到请求后,可以执行相应的操作。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.3.1 mysqld — The MySQL Server

常用选项

后续更新

mysql

mysql是一个简单的SQL shell,可以输入命令执行SQL语句

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.1 mysql — The MySQL Command-Line Client

常用选项

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.1.1 mysql Client Options

选项是非常的多,下面将介绍一些比较常用的。

 

mysqladmin

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

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.2 mysqladmin — A MySQL Server Administration Program

注意事项

安全性:确保只有授权的用户可以访问mysqladmin。避免将mysqladmin暴露在公共网络中,以防止未经授权的访问。

权限:使用mysqladmin执行管理操作时,确保当前用户具有足够的权限来执行所需的操作,包括创建和删除数据库等敏感操作。

谨慎操作:在执行数据库创建、删除等操作时要谨慎,确认操作无误后再进行执行,以免造成不可逆的损失。

备份:在执行可能影响数据完整性的操作前,建议先进行数据库备份,以便在意外发生时能够恢复数据。

使用

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

command表示命令,有些命令后面需要跟上一个参数

常见命令

常见选项

mysqlcheck

mysqlcheck客户端用于执行表维护,可以对表进行以下操作:

分析:查看表的关键字分布,以便让 SQL 生成正确的执行计划(支持 InnoDB,MyISAM,NDB)。
检查:检查表的完整性以及数据库表和索引是否损坏(支持 InnoDB,MyISAM,ARCHIVE,CSV)。
优化:回收空间、减少碎片、提高I/O(支持 InnoDB,MyISAM,ARCHIVE)。
修复:修复可能已经损坏的表(支持 MyISAM,ARCHIVE,CSV)。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.3 mysqlcheck — A Table Maintenance Program

注意事项

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

使用

通常可以通过以下三种方法使用mysqlcheck:

mysqlcheck [options] db_name [tbl_name ...]


mysqlcheck [options] --databases db_name ...


mysqlcheck [options] --all-databases

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

特殊使用

对于mysqlcheck的复制改名,可以简化选项操作

这里只是InnoDB不支持修复

常用选项

mysqldump

mysqldump 是一个用于逻辑备份 MySQL 数据库的客户端程序。它可以生成包含原始数据库和表的定义以及表中数据的 SQL 格式的备份文件。除了 SQL 格式外,mysqldump 还可以生成 CSV 格式或 XML 格式的备份文件。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.4 mysqldump — A Database Backup Program

注意事项

  • 转储表时必须要有 SELECT 权限。
  • 转储视图时必须要有 SHOW VIEW 权限。
  • 转储触发器时必须要有 TRIGGER 权限。
  • 如果没有使用 --single-transaction 选项时,必须要有 LOCK TABLES 权限。
  • 如果没有使用 --no-tablespaces 选项时,必须要有 PROCESS 权限。
  • 重新导入转储文件时,也需要有相应的权限。
  • 由于mysqldump是逐行转储数据,所以不适用于大数据量的转储与导入

使用

mysqldump [options] db_name [tbl_name ...]


mysqldump [options] --databases db_name ...


mysqldump [options] --all-databases

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

常用选项

mysqlshow

mysqlshow是一个用于显示MySQL数据库、表和列的命令行工具。它提供了一种简单的方法来查看数据库服务器中可用的数据库、每个数据库中的表以及每个表中的列

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.7 mysqlshow — Display Database, Table, and Column Information

使用

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

当使用mysqlshow命令时,可以使用通配符 * 、 ? 、 % 或 _ 来匹配数据库、表和列的名称。具体规则如下:

  • 如果没有指定数据库,则显示所有数据库名称列表。
  • 如果没有指定表,则显示数据库中所有匹配的表。
  • 如果没有指定列,则显示表中所有匹配的列和列类型。
  • 输出仅显示当前权限可以访问的数据库、表或列的名称。

常用选项

 与之前的差不多

mysqldumpslow

在平时使用MySQL数据库时,经常会执行查询操作。有些查询语句执行时间非常长,当执行时间超过设定的阈值时,我们称这个查询为慢查询。为了记录慢查询的相关信息,通常需要将其记录在慢查询日志中。mysqldumpslow是一个工具,可以解析慢查询日志文件并汇总其内容。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.6.10 mysqldumpslow — Summarize Slow Query Log Files

注意事项

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

使用

mysqldumpslow [options] [log_file ...]

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

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

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

常用选项

mysqlbinlog

二进制日志文件是一种记录数据库修改操作的文件格式。对数据库的任何修改,如数据的增加、删除、修改等,都会被描述成一个"事件",每个事件都以二进制形式记录在一个文件中。这个文件称为服务器的二进制日志文件,通常被称为 Binary Log 或者 binlog。mysqlbinlog能够以文本的形式显示二进制日志。

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.6.9 mysqlbinlog — Utility for Processing Binary Log Files

注意事项

binlog 的默认保存路径如下:

在 Linux 下,默认目录是:/var/lib/mysql
在 Windows 下,默认目录是:mysql的安装路径\Data

binlog 文件以 .00000n 结尾命名,其中 n 是一个递增的数字。每三十天进行一次删除

使用

 mysqlbinlog [options] log_file ...

常用选项

mysqlslap

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

官方文档:MySQL :: MySQL 8.0 Reference Manual :: 6.5.8 mysqlslap — A Load Emulation Client

注意事项

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

使用

mysqlslap [options]
以下是使用自定义创建和查询语句,在50个客户端连接下,每个客户端进行200次select查询的示例:(不要换行输入)
mysqlslap -uroot -p --delimiter=";"  --create="CREATE TABLE a (b int);INSERT INTO a VALUES (23);" --query="SELECT * FROM a" --concurrency=50 --iterations=200

 常用选项

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

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

相关文章

normalizing flows vs 直方图规定化

normalizing flows名字的由来 The base density P ( z ) P(z) P(z) is usually defined as a multivariate standard normal (i.e., with mean zero and identity covariance). Hence, the effect of each subsequent inverse layer is to gradually move or “flow” the da…

C# Maui 报错:程序“[15748] MauiApp1.exe”已退出,返回值为 2147942405 (0x80070005)

“MauiApp1.exe”(CoreCLR: DefaultDomain): 已加载“C:\Program Files\dotnet\shared\ Microsoft.NETCore.App\8.0.6\System.Private.CoreLib.dll”。 “MauiApp1.exe”(CoreCLR: clrhost): 已加载“E:\cDemo\MauiApp1\MauiApp1\bin\Debug\net8.0-windows10.0.19041.0\win10-x…

数智融通 创新发展|亚信科技携AntDB、Data OS与隐私计算产品,赋能企业高质量发展

5月21日&#xff0c;亚信科技在云端举办了一场别开生面的研讨会——“数智融通 创新发展”&#xff0c;聚焦企业数智化升级的前沿话题。资深产品经理和技术架构师们面对面深入交流&#xff0c;分享创新成果与实战案例&#xff0c;共同探索企业数智化转型的新路径。 图1&#xf…

重构某测试站点

一、计算校验值 校验值结果&#xff1a; 文件名称&#xff1a;培训用centos.rar&#xff0c;文件大小&#xff1a;1,335,759,953&#xff0c;MD5&#xff1a;534EC38CDA7DA2196C84AC8F6092514B&#xff0c;SHA1&#xff1a;FD35D86A27A007AE10872980C48653A110DF6067&#xf…

【Ardiuno】ESP32单片机初试点亮LED小灯

之前用的Ardiuno的主板做过一些简单的开发实验&#xff0c;按照相关说明还是很容易进行操作的。最近看了ESP32可以有wifi的功能&#xff0c;也就买来实验一下。 ESP32的主板开发环境安装&#xff0c;按照说明的安装下载程序总是报错&#xff0c;又上网搜索半天最后按照CSDN上某…

算法006:查找总价格为目标值的两个商品

. - 力扣&#xff08;LeetCode&#xff09;. - 备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/he-wei-sde-liang-ge-shu-zi-lcof/ 题干说的很复杂&#xff0c;简化一…

IDEA使用阿里通义灵码插件

在这个AI火热的时代&#xff0c;纯手工写代码已经有点out了&#xff0c;使用AI插件可以帮我们快速写代码&#xff0c;起码能省去写那些简单、重复性的代码&#xff0c;大大提高编码效率&#xff0c;在这里我推荐使用阿里的通义灵码 注册安装 安装注册好后&#xff0c;打开我们…

前端技术探索:从基础到进阶

前端技术作为现代Web开发中不可或缺的一部分&#xff0c;其重要性不言而喻。随着技术的快速发展&#xff0c;前端领域涌现出了许多经典且值得深入探索的技术和框架。本文将带您领略前端技术的魅力&#xff0c;从基础到进阶&#xff0c;一起探讨前端开发的精髓。 一、前端技术基…

【AI时代,生命修行】

今日分享&#x1f4d2;&#xff0c;AI时代&#xff0c; 生命 与 修行&#xff1a; 不要用太多时间去工作&#xff0c;尤其是在人工智能时代。如果谁还在用传统的线性的费时间的这种努力的工作方式&#xff0c;只能说太落伍了。 我只说给同频的朋友们无关的人请划走。因为很多…

AddressSanitizer理论及实践:heap-use-after-free、free on not malloc()-ed address

AddressSanity&#xff1a;A Fast Address Sanity Checker 摘要 对于C和C 等编程语言&#xff0c;包括缓冲区溢出和堆内存的释放后重用等内存访问错误仍然是一个严重的问题。存在许多内存错误检测器&#xff0c;但大多数检测器要么运行缓慢&#xff0c;要么检测到的错误类型有…

AndroidStudio无法识别连接夜神模拟器

方法一(无法从根本上解决) ①进入夜神模拟器安装路径下的bin路径(安装路径可以带有中文路径) ②打开cmd窗口,输入以下代码(一定要打开模拟器) nox_adb.exe connect 127.0.0.1:62001 方法二(根本上解决) 原因:Android Studio的adb版本与夜神模拟器的adb版本不一致 ①打开And…

如何使用ERC-20与Sui Coin标准创建Token

区块链使用tokens作为传递价值的基本手段。它们可以是区块链的原生交换单位&#xff0c;也可以是应用中的交换单位&#xff0c;甚至可以在游戏世界中用作货币。tokens还支持Sui和其他区块链上的强大DeFi活动。 以太坊使用ERC-20标准来创建tokens&#xff0c;借用智能合约&…

大数据环境搭建@Hive编译

Hive3.1.3编译 1.编译原因1.1Guava依赖冲突1.2开启MetaStore后运行有StatsTask报错1.3Spark版本过低 2.环境部署2.1jdk安装2.2maven部署2.3安装图形化桌面2.4安装Git2.5安装IDEA 3.拉取Hive源码4.Hive源码编译4.1环境测试1.测试方法——编译2.问题及解决方案&#x1f4a5;问题1…

全网最强下载神器IDM之如何用IDM下载百度网盘文件不限速 如何用IDM下载百度云资源 IDM激活码免费版下载安装

百度网盘是比较早的网盘类应用&#xff0c;用户群体比较多&#xff0c;但百度网盘对于非会员用户限速比较严重。IDM是非常好用的下载工具&#xff0c;那么我们如何用IDM下载百度网盘文件不限速&#xff1f;我们可以通过多种方法使用IDM下载百度网盘文件。下面我们就来看如何用I…

RabbitMQ python第三方库pika应用入门实践

1. RabbitMQ简介 RabbitMQ是一个可靠、高效的开源消息代理服务器&#xff0c;基于AMQP协议。它具备以下特点&#xff1a; 可以支持多种消息协议&#xff0c;如AMQP、STOMP和MQTT等。提供了持久化、可靠性和灵活的路由等功能。支持消息的发布和订阅模式。具备高可用性和可扩展…

天才程序员周弈帆 | Stable Diffusion 解读(一):回顾早期工作

本文来源公众号“天才程序员周弈帆”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满。 原文链接&#xff1a;Stable Diffusion 解读&#xff08;一&#xff09;&#xff1a;回顾早期工作 在2022年的这波AI绘画浪潮中&#xff0c;Stable Diffusion无疑是最…

pdf怎么编辑修改内容?3个实用软件!

在当今数字化时代&#xff0c;PDF文件因其跨平台、格式固定的特性&#xff0c;成为我们日常工作和生活中不可或缺的一部分。然而&#xff0c;PDF文件的修改和编辑往往成为许多人的难题。本文将为您详细介绍如何编辑修改PDF文件的内容&#xff0c;并推荐几款实用的编辑软件&…

Java——数组排序和查找

一、排序介绍 1、排序的概念 排序是将多个数据按照指定的顺序进行排列的过程。 2、排序的种类 排序可以分为两大类&#xff1a;内部排序和外部排序。 3、内部排序和外部排序 1&#xff09;内部排序 内部排序是指数据在内存中进行排序&#xff0c;适用于数据量较小的情况…

【CS.SE】使用 docker pull confluentinc/cp-kafka 的全面指南

文章目录 1 引言2 准备工作2.1 安装 Docker2.1.1 在 Linux 上安装 Docker2.1.2 在 macOS 上安装 Docker2.1.3 在 Windows 上安装 Docker 2.2 验证 Docker 安装 3 拉取 confluentinc/cp-kafka Docker 镜像3.1 拉取镜像3.2 验证镜像 4 运行 Kafka 容器4.1 启动 ZooKeeper4.2 启动…

【启明智显彩屏应用】Model3A 7寸触摸彩屏AGV小车应用方案

一、AGV小车概述 &#xff08;一&#xff09;介绍 自动导向车(Automated Guided Vehicle&#xff0c;简称AGV)&#xff0c;也称为自动导向搬运车、自动引导搬运车。AGV广泛应用在自动化的生产当中&#xff0c;大大节约劳动力和提高生产效率。 &#xff08;二&#xff09;现状…