MySQL中的常用工具实例汇总(推荐)


当前第2页 返回上一页

8. --start-position=# 和 --stop-position=#, 与日期范围类似,不过可以更精确的表示范围。

sudo ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000001 --start-position=4 --stop-datetime=100

五、mysqlcheck (myisam 表维护工具)

mysqlcheck 工具可以检查和修复 myisam 表,还可以优化和分析表。实际上,它集成了 mysql 工具中的 check、repair、analyze、optimize

有 3 种方式可以来调用 mysqlcheck:

shell> mysqlcheck [options] db_name [tables]
shell> mysqlcheck [options] --database DB1 [DB2 DB3...]
shell> mysqlcheck [options] --all-databse

option 中有以下常用选项:

  • -c, --check (检查表)
  • -r, --repair (修复表)
  • -a, --analyze (分析表)
  • -o, --optimize (优化表)

其中,默认选项是 -c (检查表)

示例:

1. 检查表

zj@bogon:/data/mysql$ mysqlcheck -c t2
t2.test1      OK
t2.test2      OK

2. 修复表

zj@bogon:/data/mysql$ mysqlcheck -r t2
t2.test1
note : The storage engine for the table doesn't support repair
t2.test2      OK

test1 表的存储引擎为 innodb,不支持 repair。

3. 分析表

zj@bogon:/data/mysql$ mysqlcheck -a t2
t2.test1      OK
t2.test2      OK

4. 优化表

zj@bogon:/data/mysql$ mysqlcheck -o t2
t2.test1
note : Table does not support optimize, doing recreate + analyze instead
status : OK
t2.test2  

六、mysqldump (数据导出工具)

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

有三中方式来调用 mysqldump:

mysqldump [OPTIONS] database [tables] // 备份单个数据库或者库中部分数据表
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...] //备份指定的一个或者多个数据库
mysqldump [OPTIONS] --all-databases [OPTIONS] // 备份所有数据库

1. 连接选项

  • -u, --user=name             // 指定用户名
  • -p, --password[=name]       // 指定密码 
  • -h, --host=name             // 指定服务器 IP 或者域名
  • -p, --port=#                // 指定连接端口

示例:

shell> mysqldump -h192.18.10.10 -p3306 -uroot -p test > test.sql

2. 输出内容选项

  • --add-drop-database     每个数据库创建语句前加上 drop database 语句
  • --add-drop-table        在每个表创建语句前加上 drop table 语句

在默认情况下,这两个参数都自动加上。

  • -n, --no-create-db      不包含数据库的创建语句 
  • -t, --no-create-info    不包含数据表的创建语句
  • -d, --no-data           不包含数据

3. 输出格式选项

--compact 选项使得输出结果简洁,不包括默认选项中的各种注释。

root@bogon:/usr/local/mysql/bin# ./mysqldump --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# more emp.sql
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `emp` VALUES (1,'a','a'),(2,'b','b');

-c 或者 --complete-insert 选项使得输出文件中的 insert 语句包括字段名称,默认是不包括字段名称的。

root@bogon:/usr/local/mysql/bin# ./mysqldump -c --compact t2 emp > emp.sql
root@bogon:/usr/local/mysql/bin# more emp.sql
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
INSERT INTO `emp` (`id`, `name`, `context`) VALUES (1,'a','a'),(2,'b','b');

-T 选项将指定数据表中的数据备份为单纯的数据文本和建表 sql 两个文件,经常和下面几个选项一起配合使用,将数据导出为指定格式显示。

  • -T, --tab=name                  备份数据和建表语句
  • --fileds-terminated-by=name     域分隔符
  • --fileds-enclosed-by=name       域引用符
  • --fileds-optionally-enclosed-by=name    域可选引用符
  • --fileds-escaped-by=name        转义字符

示例:将 t2 数据库中的表 emp 导出为单纯的数据文本和建表 sql 两个文件,并存放在当前路径下的 bak 目录下。

1.创建备份目录

root@bogon:/usr/local/mysql/bin# mkdir bak

2. 将 t2 数据库下的表 emp 备份到 bak 目录下

root@bogon:/usr/local/mysql/bin# ./mysqldump t2 emp -T ./bak

3. 查看 bak 目录,发现两个文件

root@bogon:/usr/local/mysql/bin# ls ./bak
emp.sql emp.txt

4. 查看两个文件的内容, .sql 结尾的是建表及插入数据的sql,.txt 结尾的是表数据

root@bogon:/usr/local/mysql/bin# more ./bak/emp.sql
-- MySQL dump 10.13 Distrib 5.7.18, for Linux (x86_64)
--
-- Host: localhost Database: t2
-- ------------------------------------------------------
-- Server version 5.7.18-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Table structure for table `emp`
--

DROP TABLE IF EXISTS `emp`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `emp` (
 `id` int(11) NOT NULL DEFAULT '0',
 `name` varchar(10) DEFAULT NULL,
 `context` text,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;

/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2017-09-21 12:07:38
root@bogon:/usr/local/mysql/bin# more ./bak/emp.txt 
1 a a
2 b b

4. 字符集选项

mysqldump 导出的数据的字符集使用的是 mysqld 启动时的默认字符集,如果表的字符集用的不是默认字符集,导出的数据就有可能出现乱码。所以在导出时,应该先确定表的字符集,在导出时指定该字符集即可。

shell> mysqldump -uroot --compact --default-character-set=utf8 t2 emp > emp.sql

5. 其他常用选项

-F --flush-logs (备份前刷新日志)

加上此选项后,备份前将关闭就日志,生成新日志。使得进行恢复的时候直接从新日志开始进行重做,大大方便了恢复过程。

-l --lock-tables (给所有表加读锁)

可以在备份期间使用,使得数据无法被更新,从而使备份的数据保持一致性,可以配合 -F 选项一起使用。

七、mysqlimport (数据导入工具)

mysqlimport 是客户端数据导入工具,用来导入 mysqldump 加 -T 选项后导出的文本文件。

基本用法:

shell> mysqlimport [options] db_name textfile1

八、mysqlshow (数据库对象查看工具)

mysqlshow 客户端对象查找工具,用来很快的查找存在哪些数据库,数据库中的表、表中的列或索引,和 mysql 客户端工具很类似,不过有些特性是 mysql 客户端工具所不具备的。

使用方法:

shell> mysqlshow [option] [db_name [tbl_name [col_name]]]

如果不加任何选项,默认情况下会显示所有数据库。

常用选项:

1. --count (显示数据库和表的统计信息)

如果不指定数据库,则显示每个数据库的名称、表数量、记录数量;

如果指定数据库,则显示指定数据库的每个表名、字段数量,记录数量;

如果指定具体数据库中的具体表,则显示表的字段信息。

2. -k 或者 --keys (显示指定表中的所有索引)

此选项显示了两部分内容,一部分是指定表的表结构,另一部分中是指定表的当前索引信息

3. -i 或者 --status (显示表的一些状态信息)

九、perror (错误代码查看工具)

在 MySQL 的使用过程中,可能会出现各种各样的 error。这些 error 有些是由于操作系统引起的,比如文件或者目录不存在;有些则是由于存储引擎使用不当引起的。这些 error 一般都有一个代码,类似于 “error:#” 或者 “Errcode:#”,“#” 代表具体的错误号。perror 的作用就是解释这些错误代码的详细含义:

perror [options] [errorcode [errorcode]]

zj@bogon:/usr/local/mysql/bin$ perror 30
OS error code 30: Read-only file system
zj@bogon:/usr/local/mysql/bin$ perror 60
OS error code 60: Device not a stream
zj@bogon:/usr/local/mysql/bin$ perror 30 60
OS error code 30: Read-only file system
OS error code 60: Device not a stream

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

更多Mysql内容来自木庄网络博客


标签:Mysql

返回前面的内容

相关阅读 >>

mysql查询优化详解

mysql实现查询数据库表记录数

如何源码安装mysql数据库?

navicat如何操作mysql数据库?

navicat连接mysql失败如何处理

mysql 存储引擎和索引相关知识总结

mysql的四种事务隔离级别

mysql初次不能登录解决方法

细数mysql中sql语句的分类

mysql事件的使用详解

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...