mysql 其他客户端
在命令⾏中使⽤MySQL发⾏版中的其他⼯具时,⼀些选项是公共的,⽐如⽤⼾名和密码,使⽤⽅法和mysql相同,在这⾥统⼀列出,后⾯我们在介绍不同的⼯具时,只讨论个性的选项及作⽤,公共选项如下所⽰:
1 mysqlcheck - 表维护程序
1.1 作⽤
mysqlcheck客⼾端⽤于执⾏表维护,可以对表进⾏:分析、检查、优化或修复操作。
- 分析的作⽤是查看表的关键字分布,能够让 sql ⽣成正确的执⾏计划(⽀持 InnoDB,MyISAM,NDB)
- 检查的作⽤是检查表的完整性以及数据库表和索引是否损坏(⽀持 InnoDB,MyISAM,ARCHIVE,CSV)
- 优化的作⽤是回收空间、减少碎⽚、提⾼I/O(⽀持 InnoDB,MyISAM,ARCHIVE)
- 修复的作⽤是修复可能已经损坏的表(⽀持 MyISAM,ARCHIVE,CSV)
1.2 注意事项
-
当使⽤mysqlcheck⼯具时,MySQL服务器必须在运⾏状态
-
执⾏过程中相应的表将会被锁定,所以其他的操作将会被挂起
-
并不是所有的存储引擎都⽀持以上四种操作,如果遇到不⽀持的引擎会报出相应的错误
-
执⾏表修复操作之前对表进⾏备份,在某些情况下可能会导致数据丢失。
1.3 使⽤⽅法
- ⼀般通过以下三种⽅法使⽤mysqlcheck
如果在 db_name 后没有指定任何表名,或者使⽤ --databases 或 --all-databases 选项,那么整个数据库都会被检查
1.4 常⽤选项
mysqlcheck有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlcheck] 和 [client] 组进⾏指定
1.5 mysqlcheck的特殊使⽤
mysqlcheck程序的默认功能是对数据表进⾏ 检查 操作(相当于指定选项 --check ),如果想要对表进⾏修复操作,可以通过复制原来的mysqlcheck程序,并重命名为mysqlrepair,并运⾏mysqlrepair即可,还可以创建mysqlcheck的快捷⽅式,并把快捷⽅式命名为mysqlrepair然后
直接运⾏,这时就执⾏的是修复操作,通过下表所⽰的命名⽅式可以改变mysqlcheck的默认⾏为:
2 Mysqldump - 数据库备份程序
2.1 作⽤
mysqldump客⼾端程序可以执⾏逻辑备份并⽣成⼀组SQL语句,其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump命令可以⽣成CSV、或XML格式的⽂件。
2.2 注意事项
-
转储表时必须要有 SELECT 权限
-
转储视图时必须要有 SHOW VIEW 权限
-
转储触发器时必须要有 TRIGGER 权限
-
如果没有使⽤ --single-transaction 选项时必须要有 LOCK TABLES 权限
-
如果没有使⽤ --no-tablespaces 选项时必须要有 PROCESS 权限
-
重新导⼊转储⽂件时,也需要有相应的权限
-
由于mysqldump是逐⾏转储数据,所以不适⽤于⼤数据量的转储与导⼊
2.3 使⽤⽅法
mysqldump的⽅法通常有以下使⽤,可以转储⼀个或多个表或数据库,如下所⽰:
如果在 db_name 后没有指定任何表名,或者使⽤ --databases 或 --all-databases 选项,那么整个数据库都会被转储
2.4 常⽤选项
mysqldump有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqldump] 和[client] 组进⾏指定
3 mysqladmin - MySQL 服务器管理程序
3.1 作⽤
mysqladmin 是⼀个执⾏管理操作的客⼾端。可以⽤来检查服务器的配置和当前状态,以及创建和删除数据库等。
3.2 使⽤⽅法
mysqladmin 可以使⽤以下语法:
shell
mysqladmin [options] command [command-arg] [command [command-arg]] ...
3.3 ⽀持的命令
语法中的command 表⽰命令,有些命令后⾯需要跟上⼀个参数,如下列出了mysqladmin 的常⽤命令:
- version
显⽰来⾃服务器的版本信息。
Uptime
MySQL 服务器已运⾏的秒数。
Threads
活动线程(客⼾端)的数量。
Questions
⾃服务器启动以来客⼾端的问题(查询)数。
Slow queries
慢SQL的查询数。
Opens
服务器已打开的表数。
Flush tables
服务器已执⾏flush-*、refresh和reload命令的数量。
Open tables
当前打开的表数。
4 mysqlshow - 显⽰数据库、表和列信息
4.1 作⽤
mysqlshow 客⼾端可⽤于快速查看存在哪些数据库、数据库中的表以及表中的列或索引。
4.2 注意事项
mysqlshow 为⼀些 SHOW 语句提供了⼀个命令⾏接⼝。关于SHOW的使⽤参⻅官⽅⽂件"SHOW语句"。直接使⽤这些SQL语句也可以获得相同的信息。
4.3 使⽤⽅法
mysqlshow 可以使⽤以下语法:
shell
mysqlshow [options] [db_name [tbl_name [col_name]]]
-
db_name tbl_name col_name 可以使⽤通配符 * 、 ? 、 % 或 _
-
如果没有指定数据库,则显⽰所有数据库名称列表。
-
如果没有指定表,则显⽰数据库中所有匹配的表。
-
如果没有指定列,则显⽰表中所有匹配的列和列类型。
-
输出仅显⽰当前权限可以访问的数据库、表或列的名称。
5 mysqldumpslow - 总结慢查询⽇志⽂件
5.1 作⽤
在平时使⽤MySQL数据库时,经常进⾏查询操作,有些查询语句执⾏的时间⾮常⻓,当执⾏时间超过设定的阈值时,我们称这个查询为慢查询,慢查询的相关信息通常需要⽤⽇志记录下来称为慢查询⽇志,mysqldumpslow可以解析慢查询⽇志⽂件并汇总其内容,有关慢查询⽇志的内容我们在MySQL服务器配置与管理专题进⾏讲解
5.2 注意事项
通常情况下,mysqldumpslow 会将相似的查询分组并显⽰摘要输出,⼀般会把数字和字符串⽤ N和 "S" 代替,要想显⽰真实的值可以使⽤ -a 和 -n 选项。
6 mysqlbinlog - 处理⼆进制⽇志⽂件
什么是⼆进制⽇志⽂件:
我们平时对数据库的修改,包括对数据的增删改,都会被描述成⼀个"事件",每个"事件"都会以⼆进制的形式记录在⼀个⽂件⾥,这个⽂件就是服务器的⼆进制⽇志⽂件,称为Binary Log或binlog。
6.1 作⽤
mysqlbinlog 能够以⽂本格式显⽰⼆进制⽇志⽂件中的内容。
6.2 注意事项
-
binlog的默认保存路径是数据⽬录:
-
Linux下默认⽬录:/var/lib/mysql
-
Windows下默认⽬录:C:\ProgramData\MySQL\MySQL Server 8.0\Data
-
-
binlog是以 .00000n 结尾命名的⽂件,n不断递增
6.3 使⽤⽅法
mysqlbinlog 可以使⽤以下语法
shell
mysqlbinlog [options] log_file ...
例如要显⽰名为 binlog.000010 ⼆进制⽇志⽂件的内容,可以使⽤以下命令:
binlog.000010 的输出内容中包含各种事件,事件信息包括 SQL 语句、执⾏语句的服务器 ID、语句执⾏时的时间戳、花费的时间等等。
6.4 常⽤选项
mysqlbinlog 有如下常⽤选项,可以在命令⾏中指定,也可以在选项⽂件中通过 [mysqlbinlog] 和 [client] 组进⾏指定
7 mysqlslap - 负载仿真客⼾端
7.1 作⽤
mysqlslap是⼀个诊断程序,⽤于模拟MySQL服务器的客⼾端负载,并报告每个阶段的时间,就好⽐多个客⼾端正在访问服务器⼀样。
7.2 使⽤⽅法
mysqlslap可以使⽤以下语法
shell
mysqlslap [options]
7.3 注意事项
7.4 ⽰例
- 提供⾃定义的创建和查询语句,创建50个客⼾端连接,每个客⼾端进⾏200次 select 查询(在⼀⾏内输⼊命令)
- 让mysqlslap⽤包含两个 INT 列和三个 VARCHAR 列的表⾃动构建查询的SQL语句。使⽤5个客⼾端,每个客⼾端查询20次。
- 从指定的⽂件中加载创建、插⼊和查询SQL语句。SQL⽂件中的语句以 ";" 分隔。使⽤5个客⼾端,每个客⼾端查询5次。