【MySQL】常见可执行程序

news2024/11/27 2:31:23

本文使用的版本是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

 常用选项

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SM201,SM203主控模块备件

SM201,SM203主控模块备件。MACSV软件安装&#xff1b;二、软件组成及各部分功能&#xff1b;三、组态流程&#xff1b;四、组态详解SM201,SM203主控模块备件&#xff08;组态各部分的操作过程及基本原理&#xff09;。一、MACSV系统软件安装软件安装——计算机角色在每台计算机…

基于STM32智能小车

一、前置准备 前置知识&#xff1a;需要学习stm32&#xff0c;建议去b站看江科大的视频&#xff0c;讲的很详细&#xff0c;学完串口那一块就可以制作了&#xff0c;软件用的是Keil5&#xff0c;开发语言C语言&#xff0c;手机连接蓝牙模块软件是蓝牙调试器。 需要准备的器件…

How To: Localize Bar and Ribbon Skin Items

您可以使用Localizer对象自定义皮肤菜单&#xff0c;而不是迭代每个条形皮肤子菜单项和功能区皮肤库项容器来手动修改这些项。此方法允许您同时自定义所有现有栏子菜单和功能区库中的外观项目。 创建BarLocalizer类的派生类并重写XtraLocalizer.GetLocalizedString方法。 pub…

HTTP-web服务器

web服务器 web服务器实现了http和相关的tcp连接处理&#xff0c;负责管理web服务器提供的资源&#xff0c;以及对服务器的配置&#xff0c;控制以及拓展等方面的管理 web服务器逻辑实现了http协议&#xff0c;并负责提供web服务器的管理功能&#xff0c;web服务器逻辑和操作系…

springboot + Vue前后端项目(第十五记)

项目实战第十五记 写在前面1.后端接口实现1.1 用户表添加角色字段1.2 角色表增加唯一标识字段1.3 UserDTO1.4 UserServiceImpl1.5 MenuServiceImpl 2. 前端实现2.1 User.vue2.2 动态菜单设计2.2.1 Login.vue2.2.2 Aside.vue 2.3 动态路由设计2.3.1 菜单表新增字段page_path2.3.…

开源规则引擎LiteFlow项目应用实践

本文介绍基于开源规则引擎LiteFlow&#xff0c;如何开发规则设计器&#xff0c;在低代码平台中集成规则引擎&#xff0c;并在项目中实现应用的效果。由于低代码平台使用规则引擎实现了逻辑编排的需求&#xff0c;所以本文中的叫法为“逻辑设计”、“逻辑编排”、“逻辑流引擎”…

kafka的leader和follower

leader和follower kafka的leader和follower是相对于分区有意义的&#xff0c;不是相对于broker。 因为每个分区都有leader和follower, leader负责读写数据。 follower负责复制leader的数据保存到自己的日志数据中&#xff0c;并在leader挂掉后重新选举出leader。 kafka会再…

Javascript全解(基础篇)

语法与数据类型 语法 var\let\const var 声明一个变量&#xff0c;可选初始化一个值。 let 声明一个块作用域的局部变量&#xff0c;可选初始化一个值。 const 声明一个块作用域的只读常量。 用 var 或 let 语句声明的变量&#xff0c;如果没有赋初始值&#xff0c;则其值为 …

基于VS2022编译GDAL

下载GDAL源码&#xff1b;下载GDAL编译需要依赖的必须代码&#xff0c;proj&#xff0c;tiff&#xff0c;geotiff三个源码&#xff0c;proj需要依赖sqlite&#xff1b;使用cmake编译proj&#xff0c;tiff&#xff0c;geotiff&#xff1b;proj有版本号要求&#xff1b;使用cmake…

go语言实战--基于Vue3+gin框架的实战Cetide网项目(讲解开发过程中的各种踩坑)

最近被要求学习go语言开发&#xff0c;也就做一个项目实战巩固一下&#xff0c;也分享一下关于gin框架的实战项目 &#xff08;后续应该还是会继续学习Java&#xff0c;这一期还是做一个govue的&#xff09; 经过一段时间的开发过后&#xff0c;感觉现在的开发效率要快不少了&…

Unity2D游戏制作入门 | 12(之人物受伤和死亡的逻辑动画)

上期链接&#xff1a;Unity2D游戏制作入门 | 11(之人物属性及伤害计算)-CSDN博客 上期我们聊到了人物的自身属性和受伤时的计算&#xff0c;我们先给人物和野猪挂上属性和攻击属性的代码&#xff0c;然后通过触发器触发受伤的事件。物体&#xff08;人物也好敌人也行&#xff…

使用 Scapy 库编写 ICMP 不可达攻击脚本

一、介绍 ICMP不可达攻击是一种利用ICMP&#xff08;Internet Control Message Protocol&#xff09;不可达消息来干扰或中断目标系统的网络通信的攻击类型。通过发送伪造的ICMP不可达消息&#xff0c;攻击者可以诱使目标系统认为某些网络路径或主机不可达&#xff0c;从而导致…

vue2中如何使用函数式组件

vue2 中如何使用函数式组件 用 render 定义函数式组件如何处理 props如何在函数式组件中触发自定义事件&#xff1f;injection如何使用 computed 和 methods定义一个函数式组件的 MyButton函数式组件有何优势哪种场景适合使用函数式组件函数式组件的问题参考 函数式组件&#x…

WPS JSA 宏脚本入门和样例

1入门 WPS window版本才支持JSA宏的功能。 可以自动化的操作文档中的一些内容。 参考文档&#xff1a; WPS API 参考文档&#xff1a;https://open.wps.cn/previous/docs/client/wpsLoad 微软的Word API文档&#xff1a;Microsoft.Office.Interop.Word 命名空间 | Microsoft …

测试工具链

缺陷管理 bug管理工具 devops---项目管理--缺陷管理 bug管理地址 https://devsecops.mychery.com:8443/chery/project?filterROLE&statusACTIVE bug管理环境 采用公司的devops平台&#xff0c;对每个项目的bug进行管理。目前在使用 接口测试和服务端性能测试 工具…

基础乐理入门

基础概念 乐音&#xff1a;音高&#xff08;频率&#xff09;固定&#xff0c;振动规则的音。钢琴等乐器发出的是乐音&#xff0c;听起来悦耳、柔和。噪音&#xff1a;振动不规则&#xff0c;音高也不明显的音。风声、雨声、机器轰鸣声是噪音&#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 启动…

Nextjs学习教程

一.手动创建项目 建议看这个中文网站文档,这个里面的案例配置都是手动的,也可以往下看我这个博客一步步操作 1.在目录下执行下面命令,初始化package.json文件 npm init -y2.安装react相关包以及next包 yarn add next react react-dom // 或者 npm install --save next react…

2024最新 Jenkins + Docker实战教程(八)- Jenkins实现集群并发构建

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

转型AI产品经理(4):“认知负荷”如何应用在Chatbot产品

认知负荷理论主要探讨在学习过程中&#xff0c;人脑处理信息的有限容量以及如何优化信息的呈现方式以促进学习。认知负荷定律认为&#xff0c;学习者的工作记忆容量是有限的&#xff0c;而不同类型的认知任务会对工作记忆产生不同程度的负荷&#xff0c;从而影响学习效果。以下…