从MySQL全库备份中恢复某个库和某张表

从MySQL全库备份中恢复某个库和某张表




在Mysqldump官方工具中,如何只恢复某个库呢?


全库备份

[root@HE1 ~]# mysqldump -uroot -p --single-transaction -A --master-data=2 >dump.sql

只还原erp库的内容

[root@HE1 ~]# mysql -uroot -pMANAGER erp --one-database <dump.sql </dump.sql<>


可以看出这里主要用到的参数是--one-database简写-o的参数,极大方便了我们的恢复灵活性。


那么如何从全库备份中抽取某张表呢,全库恢复,再恢复某张表。小库还可以,大库就很麻烦了,那我们可以利用正则表达式来进行快速抽取,具体实现方法如下:

从全库备份中抽取出t表的表结构

[root@HE1 ~]# sed -e'/./{H;$!d;}' -e 'x;/CREATE TABLE `t`/!d;q' dump.sql

 

DROP TABLE IF EXISTS`t`;

/*!40101 SET@saved_cs_client     =@@character_set_client */;

/*!40101 SETcharacter_set_client = utf8 */;

CREATE TABLE `t` (

  `id` int(10) NOT NULL AUTO_INCREMENT,

  `age` tinyint(4) NOT NULL DEFAULT '0',

  `name` varchar(30) NOT NULL DEFAULT '',

  PRIMARY KEY (`id`)

) ENGINE=InnoDBAUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

/*!40101 SETcharacter_set_client = @saved_cs_client */;

 

从全库备份中抽取出t表的内容

[root@HE1 ~]# grep'INSERT INTO `t`' dump.sql

INSERT INTO `t`VALUES (0,0,''),(1,0,'aa'),(2,0,'bbb'),(3,25,'helei');




本文出自 “贺磊的技术博客” 博客,请务必保留此出处http://suifu.blog.51cto.com/9167728/1830651






About Me

.............................................................................................................................................

● 本文整理自网络

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群:230161599     微信群:私聊

● 联系我请加QQ好友(646634621),注明添加缘由

● 于 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

.............................................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

   小麦苗的微信公众号          小麦苗的QQ群             小麦苗的微店

.............................................................................................................................................

ico_mailme_02.png
DBA笔试面试讲解
欢迎与我联系



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2142784/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26736162/viewspace-2142784/

### 如何查询 MySQL 中某的索引 在 MySQL 数据库中,可以通过多种方式来查看某个特定上的索引信息。以下是几种常用的方法: #### 方法一:使用 `SHOW INDEX` 命令 可以利用 `SHOW INDEX FROM table_name;` 或者 `SHOW KEYS FROM table_name;` 来获取指定的所有索引详情[^1]。 ```sql SHOW INDEX FROM your_table_name; ``` 此命令会返回一格形式的结果集,其中每一行代上定义的一个索引字段的信息。重要列包括但不限于: - **Table**: 名。 - **Non_unique**: 如果索引是非唯一性的,则值为 1;如果是唯一性索引则为 0。 - **Key_name**: 索引名称。 - **Seq_in_index**: 当前列为多列组合索引中的顺序号。 - **Column_name**: 列名。 - **Collation**: 排序规则 (A 升序, D 降序)。 - **Cardinality**: 这个数值示索引中不同键的数量估计值,有助于评估索引的选择性效率。 #### 方法二:通过 INFORMATION_SCHEMA.STATISTICS 查询 MySQL 的系统数据库 `INFORMATION_SCHEMA` 提供了一个名为 `STATISTICS` 的视图,它包含了关于所有及其索引的相关元数据信息。 ```sql SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_NAME = 'your_table_name' AND TABLE_SCHEMA = 'your_database_name'; ``` 上述 SQL 将检索出给定数据库下目标的所有索引结构细节。同样地,这里也提供了丰富的属性描述,比如索引的名字、类型以及所涉及的具体列等等。 #### 方法三:处理常见错误提示 如果遇到类似于 “table doesn't exist in engine” 的警告消息时,可能是因为存储引擎内部字典与实际文件状态不一致造成的。此时可以根据官方文档指引尝试修复操作或者重新导入备份数据以恢复一致性问题[^3]。 --- ### 示例代码展示 下面给出一段简单的 Python 脚本用于连接到 MySQL 并执行以上提到的一种方法——即调用 SHOW INDEXES: ```python import pymysql.cursors connection = pymysql.connect(host='localhost', user='root', password='password', database='testdb') try: with connection.cursor() as cursor: sql_query = f"SHOW INDEXES FROM employees;" cursor.execute(sql_query) result = cursor.fetchall() finally: connection.close() for row in result: print(row) ``` 注意替换掉脚本里的参数如用户名密码等为自己环境下的真实配置项后再运行测试。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值