Book description
Geared to intermediate- to advanced-level DBAs and IT professionals looking to enhance their MySQL skills, this guide provides a comprehensive overview on how to manage and optimize MySQL databases. You'll learn how to create databases and implement backup and recovery, security configurations, high availability, scaling techniques, and performance tuning.
Using practical techniques, tips, and real-world examples, authors Arunjith Aravindan and Jeyaram Ayyalusamy show you how to deploy and manage MySQL, Amazon RDS, Amazon Aurora, and Azure MySQL. By the end of the book, you'll have the knowledge and skills necessary to administer, manage, and optimize MySQL databases effectively.
- Design and implement a scalable and reliable database infrastructure using MySQL 8 on premises and cloud
- Install and configure software, manage user accounts, and optimize database performance
- Use backup and recovery strategies, security measures, and high availability solutions
- Apply best practices for database schema design, indexing strategies, and replication techniques
- Implement advanced database features and techniques such as replication, clustering, load balancing, and high availability
- Troubleshoot common issues and errors, using diagnostic tools and techniques to identify and resolve problems quickly and efficiently
- Facilitate major MySQL upgrades including MySQL 5.7 to MySQL 8
Publisher resources
Table of contents
- Preface
- 1. Introduction to MySQL 8
- 2. Installing and Configuring MySQL Server
-
3. Transactional Data Dictionary
and InnoDB Architecture
- Transactional Data Dictionary
- The InnoDB Storage Engine
- Optimizing Database Performance with InnoDB Memory Structures
- InnoDB On-Disk Structures
- Creating InnoDB Tables
- Persistence of Auto-Increment Counters
- An Overview of InnoDB Indexes
- InnoDB Tablespaces
- Working with the InnoDB Redo Log
- InnoDB Locking and Transaction Model
- Hot Rows with NOWAIT and SKIP LOCKED
-
Important InnoDB Configuration Variables
- Configuring innodb_buffer_pool_size
- Configuring innodb_buffer_pool_instances
- Configuring Thread Concurrency
- Configuring the Number of Background I/O Threads
- Using Asynchronous I/O on Linux
- Configuring I/O Capacity
- innodb_spin_wait_pause_multiplier
- innodb_lru_scan_depth
- Purge Configuration
- Enabling Automatic Configuration for a Dedicated MySQL Server
- Configuring Read-Only Operation
- MySQL 8 Persisted System Variables
- Conclusion
- 4. Backup and Recovery
-
5. MySQL Security
- Exploring Types of Security Threats
- Understanding the Importance of MySQL Security
- Performing Authentication and Authorization in MySQL
- Securing MySQL Communication
- Managing MySQL Roles
-
Using InnoDB Data-at-Rest Encryption
- Installing Keyring Components for Encryption
- Setting the Default Table Encryption
- Checking Encryption Status
- Performing General Tablespaces Encryption
- Encrypting Doublewrites
- Encrypting the MySQL System Tablespace
- Encrypting Redo Logs
- Encrypting Undo Logs
- Rotating the Master Key
- Safeguarding the Encryption Key
- Securing MySQL Replication
- Conclusion
- 6. MySQL Replication
- 7. High Availability and Scalability
- 8. MySQL Performance Tuning
- 9. MySQL Monitoring and Management
- 10. How to Facilitate Major MySQL Upgrades
-
11. MySQL on the Cloud: Amazon RDS
- Exploring RDS for MySQL Architecture
- Understanding the Benefits of Using RDS for MySQL
- Creating an RDS for MySQL Instance
- Connecting to RDS for MySQL by Using MySQL Clients
- Configuring RDS for MySQL for Optimal Performance
- Securing Access to RDS for MySQL
- Enabling Automatic Backups
- Restoring from Automated Backups
- Creating a Database Snapshot in RDS for MySQL
- Restoring Backups and Snapshots
- Scaling RDS for MySQL
- Configuring CloudWatch Metrics and Alarms
- Analyzing Database Logs for Troubleshooting
- Using Performance Insights to Identify Bottlenecks
- Troubleshooting Network Connectivity Issues
- Cost Optimization Best Practices for RDS for MySQL
- Conclusion
-
12. MySQL on the Cloud: Amazon Aurora
- Creating an Aurora MySQL DB Cluster
- Configuring DB Instance Settings
- Connecting to the Aurora MySQL Database
- Configuring Performance and Memory Settings
- Modifying an Amazon Aurora DB Cluster
- Optimizing Queries and Indexes
- Using Amazon RDS Performance Insights
- Autoscaling Amazon Aurora Read Replicas
- Implementing Caching Strategies
- Monitoring and Troubleshooting
- High-Availability and Failover Strategies
- Backup, Recovery, and Point-in-Time Restore
- Security and Compliance Best Practices
- Cost Optimization and Resource Management
- Integrating Amazon Aurora with Other AWS Services
- Conclusion
-
13. MySQL on the Cloud:
Azure Database for MySQL
- Getting Started with Azure Database for MySQL
- Securing Your MySQL Instance
- Using Flexible Server
- Enhanced Restore Experience
- Managing Read Replicas in Azure Database for MySQL - Flexible Server via Azure Portal
-
Migrations
- Azure Database for MySQL Migration Guide
- Create and Configure a Target Flexible Server
- Create a DMS Instance
- Create a MySQL Migration Project in DMS
- Configure the Migration Project
- Monitor the Migration
- Perform Post-Migration Activities
- Implement Best Practices for Performing a Migration
- Migrate Large Databases to Azure Database for MySQL
- Create a Backup
- Restore Your Database
- Conclusion
- Wrapping Up
- Index
- About the Authors
Product information
- Title: Hands-On MySQL Administration
- Author(s):
- Release date: June 2024
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098155896
You might also like
book
Learning SQL, 3rd Edition
As data floods into your company, you need to put it to work right away—and SQL …
book
Practical SQL, 2nd Edition
Practical SQL is an approachable and fast-paced guide to SQL (Structured Query Language), the standard programming …
book
Mastering PostgreSQL 15 - Fifth Edition
Master the capabilities of PostgreSQL 15 to efficiently administer and maintain your database. Purchase of the …
book
Analytics Engineering with SQL and dbt
With the shift from data warehouses to data lakes, data now lands in repositories before it's …