Skip to content

30. MySQL 常用工具

MySQL工具集

1. mysql(客户端连接工具)

mysql [OPTIONS] [database]

常用连接选项:

-u, --user=name 指定用户名
-p, --password[=name] 指定密码
-h, --host=name 指定服务器 IP 或者域名
-P, --port=# 指定连接端口
-e, --execute=SQL 执行 SQL 语句并退出
f, --force 强制执行 SQL
-v, --verbose 显示更多信息
--show-warnings 显示警告信息

在一个批量执行的 SQL 中,如果有其中一个 SQL 执行出错,正常情况下,该批处理将停止退出。加上-f 选项,则跳过出错 SQL,强制执行后面 SQL;加上-v 选项,则显示出错的 SQL 语句;加上--show-warnings,则会显示全部错误信息。

2. myisampack(MyISAM 表压缩工具)

可以使用很高的压缩率来对 MyISAM 存储引擎的表进行压缩,使得压缩后的表占用比压缩前小得多的磁盘空间。但是压缩后的表也将成为一个只读表,不能进行 DML 操作。

myisampack [OPTIONS] filename...

filename是表名。

3. mysqladmin(MySQL 管理工具)

mysqladmin 是一个执行管理操作的客户端程序。可以用它来检查服务器的配置和当前的状态,创建并删除数据库等。

mysql的主要区别在于它更侧重于一些管理方面的功能,比如关闭数据库。

4. mysqlbinlog(日志管理工具)

查看服务器生成的二进制日志文件(/var/lib/mysql下的binlog.XXX)。

mysqlbinlog [options] log-files

常用选项:

-d, --database=name 指定数据库名称,只列出指定的数据库相关操作。
-o, --offset=# 忽略掉日志中的前 n 行命令
-r, --result-file=name 将输出的文本格式日志输出到指定文件
-s, --short-form 显示简单格式,省略掉一些信息
--set-charset=char-name:在输出为文本格式时,在文件第一行加上"set names char-name",这个选项在某些情况下装载数据时,非常有用。
--start-datetime=name --stop-datetime=name:指定日期间隔内的所有日志
--start-position=# --stop-position=#:指定位置间隔内的所有日志

5. mysqlcheck(表维护工具)

mysqlcheck 客户端执行表维护:它检查,修复,优化或分析表。

mysqlcheck [OPTIONS] database [tables]
mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
mysqlcheck [OPTIONS] --all-databases

常用选项:

-c, --check 检查表。默认选项。
-r, --repair 修复表
-a, --analyze 分析表
-o, --optimize 优化表

6. mysqldump(数据备份工具)

mysqldump 客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建表或装载表的 SQL 语句。

mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
mysqldump [OPTIONS] --all-databases [OPTIONS]

默认输出到标准输出

常用选项:

-u , --user=name 指定用户名
–p , --password[=name] 指定密码
–h , --host=name 指定服务器 IP 或者域名
–P , --port=# 指定连接端口
默认情况下,这两个参数会自动添加
--add-drop-database 每个数据库创建语句前加上 DROP DATABASE 语句
--add-drop-table 在每个表创建语句前加上 DROP TABLE 语句
-n, --no-create-db 不包含数据库的创建语句
-t, --no-create-info 不包含数据表的创建语句
d, --no-data 不包含数据
-T ,--tab=name(备份数据和建表语句)
--fields-terminated-by=name(域分隔符)
--fields-enclosed-by=name(域引用符)
--fields-optionally-enclosed-by=name(域可选引用符)
--fields-escaped-by=name(转义字符)
--default-character-set=name 设置导出的客户端字符集,这个选项在导出数据库的时候非常重要。最好与表的字符集一致。
-F --flush-logs 备份前刷新日志。备份前将关闭旧日志,生成新日志。使得进行恢复的时候直接从新日志开始进行重做,大大方便了恢复过程。关闭当前使用的binary log,然后打开一个新的binary log文件,文件的序号加1。https://www.cnblogs.com/chuanzhang053/p/8709954.html
-l --lock-tables 给所有表加读锁
$ mysqldump -uroot -pMyNewPassword1! blog t1 > a

7. mysqlpump(数据备份工具)

// TODO

8. mysqlimport(数据导入工具)

客户端数据导入工具,用来导入 mysqldump 加-T 选项后导出的文本文件。它实际上是客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。

mysqlimport [OPTIONS] database textfile...

9. mysqlshow(数据库对象查看工具)

展示一个MySQL数据库的结构(databases, tables, and columns)。

mysqlshow [OPTIONS] [database [table [column]]]

常用选项 :

--count 显示数据库和表的统计信息
-k --keys 显示指定表中的所有索引
-i --status 显示表的一些状态信息。和 mysql 客户端执行“show table status from test like 'emp'”的结果完全一致

10. mysqlslap(数据库诊断工具)

mysqlslap是一个诊断程序,旨在模拟MySQL服务器的客户端负载并报告每个阶段的时间。它就像多个客户端正在访问服务器一样。

// TODO

11. perror(错误代码查看工具)

打印系统错误代码或 MySQL 错误代码的说明。

perror [OPTIONS] [ERRORCODE [ERRORCODE...]]