【MySQL】常见可执行程序

2024-06-09 02:04

本文主要是介绍【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

 常用选项

这篇关于【MySQL】常见可执行程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043948

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

MySQL 迁移至 Doris 最佳实践方案(最新整理)

《MySQL迁移至Doris最佳实践方案(最新整理)》本文将深入剖析三种经过实践验证的MySQL迁移至Doris的最佳方案,涵盖全量迁移、增量同步、混合迁移以及基于CDC(ChangeData... 目录一、China编程JDBC Catalog 联邦查询方案(适合跨库实时查询)1. 方案概述2. 环境要求3.

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

浅谈mysql的not exists走不走索引

《浅谈mysql的notexists走不走索引》在MySQL中,​NOTEXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引,下面就来介绍一下mysql的notexists走不走索... 在mysql中,​NOT EXISTS子句是否使用索引取决于子查询中关联字段是否建立了合适的索引。以下

Java 方法重载Overload常见误区及注意事项

《Java方法重载Overload常见误区及注意事项》Java方法重载允许同一类中同名方法通过参数类型、数量、顺序差异实现功能扩展,提升代码灵活性,核心条件为参数列表不同,不涉及返回类型、访问修饰符... 目录Java 方法重载(Overload)详解一、方法重载的核心条件二、构成方法重载的具体情况三、不构