全新正版 极速发货
¥ 64.6 6.5折 ¥ 99.8 全新
库存3件
作者姚远
出版社清华大学出版社
ISBN9787302602682
出版时间2022-05
装帧平装
开本16开
定价99.8元
货号1202650825
上书时间2024-06-07
写这本书的原因
MySQL是世界上排名的开源数据库,实际上,MySQL加上其分支已经超过了Oracle数据库的排名,成了事实上的业界王者。自从2009年Oracle公司通过收购SUN公司将MySQL置于旗下后,MySQL数据库的发展更加迅猛,特别是MySQL 8.0版本的推出,使MySQL数据库和其他开源数据库的差距进一步拉大。在开源数据库越来越流行的今天,学习MySQL数据库成了很多数据库爱好者的。
我从21世纪初开始使用MySQL数据库,刚开始做开发,后来做运维。和很多MySQL的爱好者一样,我在遇到问题时喜欢从网上搜索答案,但这样得到的知识是碎片化的,要想真正精通MySQL必须进行系统、全面的学习。我学习MySQL的资料来源主要有两个: 个来源是MySQL的官方文档,但MySQL数据库的官方文档和Oracle数据库的官方文档比起来相当简陋,很难让人相信是出自同一家公司之手; 第二个资料来源是MySQL方面的书籍,我基本上把国内所有的Oracle和MySQL的书籍都看过了。感觉MySQL方面的中文书还是太少,特别是涉及MySQL 8.0新特性和优化方面的书籍更少。于是我在学习过程中就萌生了一个想法,要自己写本MySQL方面的书,为开源数据库在中国的推广做点贡献。
这些年来,我不断地把自己实际工作中积累的经验整理成对外的博客和对内的工作笔记。随着自己博客和工作笔记的积累,再加上在广州鼎甲公司和互联网上的授课,输出一本MySQL的书就成为水到渠成的事情了。
这本书中的很多内容是我工作经验的总结,例如,我在工作中处理多的故障是MySQL无法启动,针对MySQL系统参数设置错误而造成的无法启动,我总结了一种排除法找出阻止MySQL启动的错误系统参数,又总结了SELinux和AppArmor阻止MySQL启动的解决办法,还总结了MySQL无法启动时进行数据救援的方法。如果只是采用平铺直叙的方式把技术要点描述清楚,这样的书市面上很多,我的目标是要写出自己的东西、自己的特色、自己对技术的理解和应用,这样便增加了写书的难度和出错的可能,但这样做才更有意义,至于做得如何就交给读者来评价吧。
学习数据库的方法
因为工作的关系,我对目前所有流行的数据库都有所研究,特别是Oracle和MySQL数据库,很多朋友问我是如何学好数据库的,这里和大家做一个交流。
要学好任何一门技术都要有一种静下心来做学问的态度,数据库的技术相对比较复杂,短期内无法速成,只有经过长时间的钻研才能精通这门技术。我把学习数据库技术的过程大致分为如下三步。
步是理论学习,主要是阅读官方文档。 在理论学习过程中,首先要掌握概念和原理,因此我学习Oracle的时候,看得多的文档是Database Concepts,后来我把这个文档的电子版发给淘宝的卖家,他们帮忙打印和装订成两册,大约花了70元钱,我看了很多遍,所有的概念和原理搞得烂熟。不光是数据库技术,所有的IT技术都要先把理论搞清楚再动手操作,所有的理工科的学习都是这样,理论清楚了再谈操作。绕过理论学习操作并不是走捷径,因为不久就发现实际上是在走弯路。广州鼎甲公司有一万多个客户,我在日常的工作中处理了很多数据库的疑难杂症,这些故障表面上看起来各不相同,但实际上只要理论清楚,所有的故障都能解决。
顺便说到,如果要掌握高端的IT技术,必须具备相当的英文阅读能力,虽然我经过专门的英语学习,托业考试成绩是890分,但并不建议IT从业人员专门学习英语,因为阅读自己专业的英文文档既能学习英语,又能学习技术。一些初学者畏惧英文文档,想绕开走,实际上只要硬着头皮去啃,一两年的时间就能翻过这个坎。
第二步是动手实验。做实验是提高自己动手能力的有效的方法。我曾经花了两年的时间准备Oracle 10g的OCM考试,那个时候没有培训班,我就是依据考试大纲阅读Oracle的官方文档,然后猜测考试时会遇到什么样的场景,自己设计了数百个实验题,反复练习,把理论知识练成了直觉。业界的一个常见现象是某位技术大咖被提拔成了领导,减少了亲自动手操作的机会,越不动手,越不自信,就越不敢动手,形成了一个恶性循环,后退化成了光说不练的领导,很可惜!
第三步是在生产系统的运维中磨炼提高。实验做得再熟,和在生产系统上操作还是有差距的,因为数据量和业务量的关系,一些在开发、测试环境执行得很顺畅的命令到生产系统上却会遇到各种问题。我在生产上进行实施或故障排除中有两个原则: 一是对生产系统要有敬畏之心,在我的职业生涯中只闯了一次大祸,却永远铭记,每次进行生产变更都小心翼翼。业界有一种人是“无知无畏”,实际上越是水平高的人,在生产系统上进行变更时越谨慎,毕竟80%的生产事故是由变更引起的; 二是思路要清楚,其实不光是解决技术问题,人生中的所有事情都要基于这个原则,你要知道你的目标是什么,怎么达到你的目标,你采取每个步骤的后果是什么。
这三步是一个多次循环的过程,理论知识的欠缺会导致操作的错误,操作中的出错也可以反映出对理论知识的掌握不足,只有从理论到实践的多次反复才能磨砺出一个真正的数据库专家。
本书的主要内容
本书的内容基于MySQL 8.0的版本,全书分为18章。
第1章介绍MySQL的安装、升级和启动过程中的排错。
第2章介绍账号、权限、密码、角色等内容,还介绍如何解决忘记root密码的问题。
第3章介绍MySQL的4种日志: 错误日志、通用查询日志、慢查询日志和二进制日志。
第4章介绍安全方面的内容,包括账号和密码的安全、数据加密和审计等。
第5~7章介绍3个MySQL的系统数据库: information_schema、performance_schema和sys。
第8章介绍逻辑备份,包括4种常见的逻辑备份工具及其对比,还讨论了备份集的一致性和加快数据导入速度的问题。
第9、10章分别介绍常用的物理备份工具: XtraBackup和MySQL Enterprise Backup。
第11章介绍在没有备份而且MySQL无法启动时如何进行数据恢复。
第12章介绍MySQL的新客户端工具MySQL Shell。
第13、14章分别介绍MySQL的两个高可用解决方案: 复制和InnoDB集群。
第15章介绍3种基准测试工具。
第16章介绍数据库优化的重要性和实例优化的方法。
第17章介绍SQL优化的基础知识。
第18章从实战角度介绍如何进行SQL优化。
本书讲述的MySQL,除非有特别说明,默认都是Linux环境的MySQL 8.0,存储引擎默认是InnoDB。本书适合具有一定IT基础知识的MySQL数据库爱好者学习,也可以作为准备MySQL OCP考试的备考书。
本书的配套资源
我针对书中的重点和难点设计了30多个实验,并录制了实验的操作视频,读者可以通过扫描书中的二维码在线观看。读者还可以通过扫描下方二维码下载本书的全部脚本。
脚本
致谢
感谢我的父母、妻子、妹妹和两个小宝贝雯雯和咚咚对我永远的支持,你们的支持是我写书的动力,这本书同时也是献给你们的礼物。
感谢广州鼎甲公司的创始人和总裁王子骏教授,这里我想引用阿达在2020年年会上的话对王总表示感谢: “感谢王总创立了鼎甲,使我们有了一个施展自己才能的平台。”
感谢广州鼎甲的领导和同事: 马总、樊总、吕总、汤总、大侠、阿达、冷工、武总、常馨、水仙、婷娟、肖廷楷、范华,以及全体鼎甲的同仁,感谢你们在工作上对我的帮助,每天和你们这些业界精英在一起工作对自己技术水平的提高大有裨益,这本书也是和你们思想碰撞的产物。广州鼎甲成为国内容灾行业龙头的历史同时也是你们这些技术精英的成长史。
感谢各位数据库领域的朋友,每天浏览你们的博客和朋友圈学到了很多东西,不仅限于技术方面。
由于自己水平有限,书中不当之处在所难免,欢迎广大同行和读者批评指正。
姚远
2021年8月
本书全面介绍MySQL数据库的管理、监控、备份恢复和高可用等方面的知识,并在此基础上讨论如何优化MySQL的实例和SQL语句,书中还包括大量的实战案例。 全书分五部分: 部分(第1~4章)为管理部分,包括安装和运行、账号和权限、日志和安全等内容; 第二部分(第5~7章)为监控部分,介绍通过MySQL自带的3个系统数据进行监控的方法; 第三部分(第8~11章)为备份恢复部分,介绍常用的逻辑备份和物理备份工具,还介绍在没有备份的情况下如何进行数据救援; 第四部分(第12~14章)为高可用部分,包括MySQL Shell、复制和InnoDB集群; 第五部分(第15~18章)为优化部分,介绍基准测试工具和优化MySQL实例和SQL方法。 本书适合具有一定IT基础知识的MySQL数据库爱好者阅读,也可以作为准备MySQL OCP考试的备考书。
姚远,Oracle ACE,华为云MVP,从MySQL 3开始使用MySQL,拥有MySQL 5.6、5.7、8.0 OCP,并在相关领域拥有20多项技术认证。两次获得国家部级科技进步奖,发明过两项计算机专利。
部分管理
第1章安装和运行
1.1MySQL 8.0社区版的安装
1.2Percona Server for MySQL的安装
1.3安装Sakila示例数据库
1.4检查MySQL服务
1.5升级到MySQL 8.0
1.6Linux对MySQL的强制访问控制
1.7启动排错
1.8实验
第2章账号和权限
2.1账号
2.2权限
2.3访问控制
2.4角色
2.5代理用户
2.6无密码登录
2.7重置root用户密码
2.8实验
第3章日志
3.1错误日志
3.2通用查询日志
3.3慢查询日志
3.4二进制日志
3.5实验
第4章安全
4.1密码验证组件
4.2连接控制插件
4.3连接加密
4.4数据加密
4.5审计插件
4.6实验
第二部分监控
第5章information_schema数据库
5.1数据组成
5.2MySQL 8.0中的优化
5.3权限
5.4视图说明
5.5实验
第6章performance_schema数据库
6.1作用和特点
6.2配置
6.3性能计量配置
6.4消费者配置
6.5执行者配置
6.6对象配置
6.7典型用例
6.8实验
第7章sys数据库
7.1简介
7.2配置参数
7.3存储过程
7.4函数
7.5视图
7.6实验
第三部分备份恢复
第8章逻辑备份
8.1逻辑备份和物理备份的区别
8.2mysqldump
8.3mysqlpump
8.4mydumper
8.5MySQL Shell中的备份恢复工具
8.6四种逻辑备份工具的对比
8.7备份集的一致性
8.8提高恢复的速度
8.9实验
第9章XtraBackup
9.1特点介绍
9.2安装
9.3工作原理
9.4典型用例
9.5高级功能
9.6实验
第10章MySQL Enterprise Backup
10.1简介
10.2工作原理
10.3典型用例
10.4高级功能
10.5实验
第11章数据救援
11.1InnoDB强制恢复
11.2迁移MyISAM表
11.3只有表空间文件时批量恢复InnoDB表
11.4使用ibd2sdi恢复表结构
11.5TwinDB数据恢复工具
11.6实验
第四部分高可用
第12章MySQL Shell
12.1简介
12.2通用命令
12.3客户化MySQL Shell
12.4全局对象
12.5报告架构
12.6实验
第13章复制
13.1简介
13.2克隆插件
13.3配置复制
13.4GTID
13.5排错
13.6使用MySQL Shell的AdminAPI管理InnoDB复制
13.7实验
第14章InnoDB集群
14.1架构
14.2组复制
14.3MySQL Router
14.4管理InnoDB集群
14.5实验
第五部分优化
第15章基准测试工具
15.1mysqlslap
15.2Sysbench
15.3TPCCMySQL
15.4实验
第16章实例优化
16.1数据库优化的重要性
16.2系统参数的修改
16.3内存的分配
16.4InnoDB日志
16.5硬盘读写参数
16.6资源组
16.7实验
第17章SQL优化基础
17.1SQL语句的执行计划
17.2优化器
17.3索引
17.4表连接
17.5统计信息
17.6直方图
17.7CTE
17.8实验
第18章SQL优化实战
18.1找出需要优化的SQL
18.2优化方法
18.3优化索引
18.4准确的统计信息
18.5直方图的使用
18.6连接优化
18.7优化排序
18.8表空间碎片整理
18.9实验
参考文献
一线数据库专家多年经验总结,国际、国内多位知名MySQL专家联袂推荐
— 没有更多了 —
以下为对购买帮助不大的评价