MySQL程序介绍<二>
目录
mysqlcheck - 表维护程序
Mysqldump - 数据库备份程序
mysqladmin - MySQL 服务器管理程序
mysqlshow - 显⽰数据库、表和列信息
mysqldumpslow - 总结慢查询⽇志⽂件
编辑 mysqlbinlog - 处理⼆进制⽇志⽂件
mysqlslap - 负载仿真客⼾端
接着上篇继续介绍MySQL的一些重要程序MySQL程序介绍<一>
在命令⾏中使⽤MySQL发⾏版中的其他⼯具时,⼀些选项是公共的,⽐如⽤⼾名和密码,使⽤⽅法和mysql相同,在这⾥统⼀列出

mysqlcheck - 表维护程序
1.作用
mysqlcheck客⼾端⽤于执⾏表维护,可以对表进⾏:分析、检查、优化或修复操作。分析的作⽤是查看表的关键字分布,能够让 sql ⽣成正确的执⾏计划(⽀持 InnoDB,MyISAM,NDB)检查的作⽤是检查表的完整性以及数据库表和索引是否损坏(⽀持 InnoDB,MyISAM,ARCHIVE,CSV)优化的作⽤是回收空间、减少碎⽚、提⾼I/O(⽀持 InnoDB,MyISAM,ARCHIVE)修复的作⽤是修复可能已经损坏的表(⽀持 MyISAM,ARCHIVE,CSV)
一些注意事项:
1.当使⽤mysqlcheck⼯具时,MySQL服务器必须在运⾏状态2. 执⾏过程中相应的表将会被锁定,所以其他的操作将会被挂起3. 并不是所有的存储引擎都⽀持以上四种操作,如果遇到不⽀持的引擎会报出相应的错误4. 执⾏表修复操作之前对表进⾏备份,在某些情况下可能会导致数据丢失
2.使用方法
1.mysqlcheck [options] db_name [tbl_name ...]
2.mysqlcheck [options] --databases db_name ...3.mysqlcheck [options] --all-databases如果在 db_name 后没有指定任何表名,或者使⽤ --databases 或 --all-databases 选项,那么整个数据库都会被检查
3.常用选项
mysqlcheck有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlcheck] 和 [client] 组进⾏指定
举例:
4.mysqlcheck的特殊使⽤
Mysqldump - 数据库备份程序
1.作用
mysqldump客⼾端程序可以执⾏逻辑备份并⽣成⼀组SQL语句,其中包含原始数据库和表的定义 以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump命令可以⽣成CSV、或XML格式的⽂件。
2.注意事项
1. 转储表时必须要有 SELECT 权限2. 转储视图时必须要有 SHOW VIEW 权限3. 转储触发器时必须要有 TRIGGER 权限4. 如果没有使⽤ --single-transaction 选项时必须要有 LOCK TABLES 权限5. 如果没有使⽤ --no-tablespaces 选项时必须要有 PROCESS 权限6. 重新导⼊转储⽂件时,也需要有相应的权限7. 由于mysqldump是逐⾏转储数据,所以不适⽤于⼤数据量的转储与导⼊
3.使用方法
mysqldump的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库
mysqldump [options] db_name [ tbl_name ...]mysqldump [options] --databases db_name ...mysqldump [options] --all-databases如果在 db_name 后没有指定任何表名,或者使⽤ --databases 或 --all-databases 选项,那么整个数据库都会被转储
4.常用选项
mysqldump有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqldump] 和
[client] 组进⾏指定

mysqladmin - MySQL 服务器管理程序
1.作用
mysqladmin 是⼀个执⾏管理操作的客⼾端。可以⽤来检查服务器的配置和当前状态,以及创建和删除数据库等(搭配使用的用户必须具有管理员权限)
2.使⽤⽅法
mysqladmin [options] command [command-arg] [command [command-arg]] ...
3.常⽤选项
mysqladmin 的常⽤选项参考公共选项部分,可以在命令⾏中指定,也可以在选项⽂件中通过
[mysqladmin] 和 [client] 组进⾏指定
4.⽀持的命令
语法中的command 表⽰命令,有些命令后⾯需要跟上⼀个参数,下面是一些常用命令
1. version 显⽰来⾃服务器的版本信息2. status 显⽰简短的服务器状态消息3.create db_name 创建⼀个数据库名为 db_name 。4.drop db_name 删除名为 db_name 的数据库及其所有表5. extended-status 显⽰服务器状态变量的值6.flush-hosts 刷新主机缓存中的所有信息7.flush-logs [ log_type ...] 刷新所有⽇志。 log_type 中可以提供以下⼀种或多种⽇志类型binary, engine, error, general, relay, slow,多个类型之间⽤空格分隔。8.flush-privileges 重新加载授权表9.flush-status 清除状态变量10.flush-tables 刷新所有表11.flush-threads 刷新线程缓存12.password new_password 设置新密码。如果密码中有空格必须⽤双引号把密码包裹起来password 后可以省略新密码,mysqladmin会在之后提⽰输⼊新密码password 做为最后⼀个command 时才可以省略密码值,否则下⼀个参数将作为密码被设置。13.ping 检查服务器是否可⽤14.processlist 显⽰活动服务器线程的列表。15. kill id , id ,... 终⽌服务器线程。如果给出了多个线程ID值,则列表中不能有空格16.reload 重新加载授权表17.refresh 刷新所有表。18.shutdown 停⽌服务器19.start-replica 在副本服务器上开始复制。MySQL 8.0.26及以后的版本使⽤此命令20.start-slave 在副本服务器上开始复制。MySQL 8.0.26 之前使⽤此命令21.stop-replica 停⽌副本服务器上的复制。MySQL 8.0.26及以后的版本使⽤此命令22.stop-slave 停⽌副本服务器上的复制。MySQL 8.0.26 之前使⽤此命令23.variables 显⽰服务器系统变量及其值
一些命令的举例:
mysqlshow - 显⽰数据库、表和列信息
1.使用
mysqlshow 客⼾端可⽤于快速查看存在哪些数据库、数据库中的表以及表中的列或索引。
2.注意事项
mysqlshow 为⼀些 SHOW 语句提供了⼀个命令⾏接⼝,详细可以参考文档: 直接使⽤这些SQL语句也可以获得相同的信息
3.常用选项
mysqlshow 的常⽤选项参考公共选项部分,可以在命令⾏中指定,也可以在选项⽂件中通过
[mysqlshow] 和 [client] 组进⾏指定,具体选项参考公共选项列表
4.使⽤⽅法
mysqlshow [options] [db_name [tbl_name [col_name]]]db_name tbl_name col_name 可以使⽤通配符 * 、 ? 、 % 或 _如果没有指定数据库,则显⽰所有数据库名称列表。如果没有指定表,则显⽰数据库中所有匹配的表。如果没有指定列,则显⽰表中所有匹配的列和列类型。输出仅显⽰当前权限可以访问的数据库、表或列的名称
举例:
mysqldumpslow - 总结慢查询⽇志⽂件
1.作用
在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇志, mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容(进行慢查询对应的SQL优化的依据)

2.注意事项
通常情况下,mysqldumpslow 会将相似的查询分组并显⽰摘要输出,⼀般会把数字和字符串⽤ N
和 "S" 代替,要想显⽰真实的值可以使⽤ -a 和 -n 选项
当sql语句查询超时时,对于查询条件一样的,就会用一个简单的标识把相同条件的多条sql语句记录为1条

3.使用方法
mysqldumpslow [options] [log_file ...]
如:没有给出任何选项的输出
4.常⽤选项
mysqlbinlog - 处理⼆进制⽇志⽂件
什么是⼆进制⽇志⽂件:
我们平时对数据库的修改,包括对数据的增删改,都会被描述成⼀个"事件",每个"事件"都会以⼆进制的形式记录在⼀个⽂件⾥,这个⽂件就是服务器的⼆进制⽇志⽂件,称为Binary Log或binlog
大概格式:

1.作用
mysqlbinlog 能够以⽂本格式显⽰⼆进制⽇志⽂件中的内容
2.注意事项
binlog的默认保存路径是数据⽬录:Linux下默认⽬录:/var/lib/mysqlWindows下默认⽬录:C:\ProgramData\MySQL\MySQL Server 8.0\Databinlog是以 .00000n 结尾命名的⽂件,n不断递增
3.使用方法
mysqlbinlog [options] log_file ...
4.常用选项
mysqlbinlog 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlbinlog]
和 [client] 组进⾏指定

mysqlslap - 负载仿真客⼾端
1.作用
mysqlslap是⼀个诊断程序,⽤于模拟MySQL服务器的客⼾端负载,并报告每个阶段的时间,就好⽐多个客⼾端正在访问服务器⼀样
2.使用方法
mysqlslap [options]
3.注意事项
1. 可以通过 --create 或 --query 选项,指定包含SQL语句的字符串或包含SQL语句的⽂件2. 如果指定⼀个包含SQL语句的⽂件,默认情况下每⾏必须包含⼀条语句(也就是说,隐式语句分隔符是换⾏符)3. 如果要把⼀条语句分为多⾏书写,可以使⽤ --delimiter 选项指定不同的分隔符4. 不能在⽂件中包含注释,因为mysqlslap不能解析注释。5. mysqlslap运⾏分为三个阶段:a. 创建测试数据阶段:创建⽤于测试的库、表或数据,这个阶段使⽤单个客⼾端连接b. 运⾏负载测试阶段,这个阶段可以使⽤许多客⼾端连接c. 清理阶段:执⾏删除表,断开连接等操作,这个阶段使⽤单个客⼾端连接
4.示例:
5 常⽤选项
mysqlslap 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlslap] 和
[client] 组进⾏指定
对于选项可以参考官方文档