MySQL其他客户端程序
1.mysqlcheck程序
1.1作用
mysqlcheck客户端一般用于执行表维护.可以对表进行分析,修复,检查,优化等操作
(1).分析的作用是查看表关键字的分布,能够让sql正确执行计划(支持的存储引擎有InnoDB,MyISAM,NDB)
(2).检查的作用是检查表的完整性以及数据库表和索引是否损坏(支持的引擎InnoDB,MyISAM,ARCHIVE,CSV)
(3).优化的作用是回收空间碎片,回收空间,提高I/O(支持InnoDB,MyISAM,ARCHIVE)
(4)修复的作用就是修复可能已经损坏的表(支持MyISAM,ARCHIVE,CSV)
1.2注意事项
(1).mysqlcheck执行时相应的表会被锁定,其他的操作都会被挂起
(2).并不是所有存储引擎都支持以上四种操作,如果支持就会报错
(3).执行表修复之前,要进行备份
1.3使用方法
mysqlcheck [选项] 数据库名 [也可以指定表名]
mysqlcheck [选项] --databases 数据库名
mysqlcheck [选项] --all-databases
如果在 db_name 后没有指定任何表名,或者使⽤ --databases 或 --all-databases 选项,那么整个数据库都会被检查
1.4 常用选项
1.5具体应用
1.5.1 - -analyze (-a) 分析表
1.5.2 - -check(-c) 检查表错误
1.5.3 - -repair(-r) 执行修复操作
这里我们看到解释说当前引擎不支持修复,我们创建test表的时候指定的存储引擎为InnoDB,这个存储引擎不支持修复操作.如果想修复,可以将InnoDB改成MyISAM引擎.
1.5.4 - -optimize(-o) 优化表
不要经常优化表
1.5.5mysqlcheck特殊使用
2.mysqldump
2.1作用
执行逻辑备份并生成一组SQL语句.其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制.mysqldump可以生成XML或CSV文件.
2.2注意
2.3 使用方法
mysqldump [选项] 数据库名 [表名];
mysqldump [选项] - -databases 数据库名 数据库名 数据库名...
mysqldump [选项] - -all-databases (所有数据库)
2.4常用选项
2.5 具体使用
mysqldump test_db > /root/dump.sql -uroot -p'密码'
>
是 Linux 系统中的重定向符号,其作用是把命令的输出结果重定向到指定的文件中。
3.mysqladmin
3.1作用
mysqladmin是一个执行管理的客户端程序,可以用来检查服务器的配置和当前状态,以及创建,删除数据库.使用mysqladmin需要连接数据库
3.2 使用方法
mysqladmin [选项] 命令 命令...
3.3 具体使用
3.3.1 显示来自服务器的信息
3.3.2 查看服务器的状态
信息分析:
Uptime:Mysql服务器运行的秒数
Threads:活动线程的数量
Questions:服务器启动以来客户端的查询数
Slow queries:慢sql的查询数
Opens:服务器已经打开的表的个数
Flush tables:服务器已经执行的flush-*,refresh和reload命令的数量
Open tables:当前打开的表数
3.3.3创建一个名为test1的数据库
3.3.4 删除test1数据库
3.3.5 设置密码
3.3.6显示活动服务器线程的列表
3.3.7 杀死线程
MySQL服务器默认可以维护150个活动连接.如果连接被用完,可以通过kill手动结束休眠时间最长的线程
如果我们结束线程后继续写sql语句时会重新连接
4.mysqlshow
4.1作用
Mysqlshow可以快速查看存在哪些数据库,数据库中的表以及表中的列或索引.
其中mysqlshow也为一些show语句提供了一个命令行接口,直接使用这些sql语句也可以获取信息
4.2 使用方法
mysqlshow [选项] [数据库名[表名[列]]]
4.3 具体使用
4.3.1查看数据库中有哪些表
4.3.2显示所有列
4.3.3 显示某一列
5.mysqldumslow(总结慢查询日志文件)
5.1作用
在平时使用mysql数据库时,经常用到查询操作,有些查询语句时间过长,超过了我们设定的阈值,我们称为慢查询.慢查询相关信息通过日志记录就是慢查询日志.mysqldumpslow可以解析慢查询日志文件并汇总
5.2 注意事项
mysqldumpslow会将相似的查询进行分组并显示摘要输出,一般会使用'N'代替数字,'S'代表字符串
要想显示真实的值可以使用 -a和-n选项
5.3 使用方法
mysqldumpslow [选项] [慢日志文件路径]
5.4 常用选项
6.mysqlbinlog 处理二进制文件
二进制日志文件(Binary Log)是 MySQL 数据库中的一种重要日志文件,它以二进制格式记录了对数据库执行更改的所有事件(对数据的增删改查),主要用于复制(Replication)、恢复(Recovery)和审计(Auditing)等场景。
二进制文件工作原理:
MySQL 服务器会将所有修改数据库数据的 SQL 语句(如 INSERT
、UPDATE
、DELETE
等)记录到二进制日志文件中。这些记录以事件(Event)的形式存在,每个事件包含了事件的类型、发生的时间、执行的 SQL 语句等信息。
二进制文件的主要用途:
主从复制
在主从复制架构中,主服务器(Master)会将二进制日志文件中的事件发送给从服务器(Slave),从服务器根据这些事件在自己的数据副本上执行相同的操作,从而保证主从服务器的数据一致性。这是实现 MySQL 高可用性和负载均衡的重要手段。
数据恢复
如果数据库出现故障或者数据丢失,可以通过二进制日志文件进行点时间恢复(Point-in-Time Recovery,PITR)。具体做法是先使用最近一次的全量备份恢复数据库,然后从备份时间点开始,依次执行二进制日志文件中的事件,直到指定的时间点,从而将数据库恢复到指定的状态。
审计
通过分析二进制日志文件,可以了解数据库的所有更改操作,包括谁在什么时间执行了什么操作,这对于数据库的安全审计和合规性检查非常有帮助。
6.1作用
mysqlbinlog能够以文本格式显示二进制文件的内容
6.2 注意事项
二进制文件默认保存的是数据目录
Linux下默认目录:/var/lib/mysql
Windows下默认目录:C:\ProgramData\Mysql\MySQL Server 8.0\Data
二进制文件是以.00000n结尾命名的文件,n递增
6.3 使用方法
mysqlbinlog [选项] 文件路径
6.4 常用选项
7.mysqlslap 负载仿真客户端
7.1 作用
用于模拟mysql服务器的客户端负载,并报告每个阶段的时间.就好比多个客户端正在访问服务器
类似性能测试,mysqlslap就像"jmeter"
7.2 使用方法
mysqlslap [选项]
7.3注意事项
7.4具体应用
7.4.1 提供自定义的创建查询语句,创建50个客户连接,执行200次(要在一行内输入不能换行)
7.4.2让mysqlslap用包含两个int列和三个varchar列的表自动构建查询sql的语句,使用5个客户端,每个查询20次
上述介绍的mysql客户端工具不仅可以在命令行指定选项,还可以在配置文件中指定选项.我们可以把常用的选项存储在配置文件中(/etc/mysql/my.cnf).