Chapter
Chapter 1: An Introduction to MYSQL 8
MySQL as a relational database management system
License requirements of MySQL8
Reliability and scalability
Database storage engines and types
Overview of BLACKHOLE as a storage engine
Overview of the NDB cluster
Improved features in MySQL 8
Transactional data dictionary
Improving descending indexes
Extended bit-wise operations
Benefits of using MySQL 8
An open source relational database management system
Cross-platform capabilities
Number of tables or databases
Limitations of InnoDB storage engine
Limitations of group replication in MySQL8
Limitations of partitioning
Chapter 2: Installing and Upgrading MySQL 8
The MySQL 8 installation process
General installation guide
Verifying the package integrity
Using cryptographic signatures
Installing MySQL 8 on Microsoft Windows
Windows-specific considerations
MySQL 8 installation layout
Choosing the right installation package
Initial setup information
InnoDB cluster sandbox test setup
MySQL installer product catalog and dashboard
MySQL 8 installation using a ZIP file
Installing MySQL 8 on Linux
Installation using the Yum repository
Installation using the RPM package
Installation using the Debian package
Post-installation setup for MySQL 8
Data directory initialization
Securing the initial MySQL account
Starting and troubleshooting MySQL 8 services
Executing commands to test the server
In-place upgrade of MySQL
Logical upgrade for MySQL 8
Upgrading prerequisites for MySQL 5.7
Manual changes required before downgrading
Chapter 3: MySQL 8 – Using Programs and Utilities
Overview of MySQL 8 programs
Installation/upgradation programs
Administrative and utilities programs
MySQL 8 command-line programs
Executing programs from the command line
Connecting to the MySQL server
Specifying options for programs
Options on the command line
Modifying program options
Modifying options with files
Command-line options affecting option file handling
Setting program variables with options
Setting environment variables
Server and server-startup programs
mysqld - the MySQL server program
mysqld_safe - MySQL server startup script
mysql.server - MySQL Server startup script
mysqld_multi - managing multiple MySQL servers
comp_err - compiling the MySQL error msg file
mysql_secure_installation - improving MySQL installation security
mysql_ssl_rsa_setup - creating SSL/RSA files
mysql_tzinfo_to_sql - loading the timezone tables
mysql_upgrade - checking and upgrading MySQL tables
mysql - the command-line tool
help [arg], \h [arg],\? [arg], ? [arg]
charset charset_name, \C charset_name
connect [db_name host_name], \r [db_name host_name]
Executing sql from text files
mysqladmin - client for administering a MySQL server
mysqlcheck - a table maintenance program
mysqldump - a database backup program
Performance and scalability
mysqlimport - a data import program
mysqlpump - a database backup program
mysqlsh - the MySQL Shell
mysqlshow - showing database, table, and column information
mysqlslap - load emulation client
MySQL 8 administrative programs
ibdsdi - InnoDB tablespace SDI extraction utility
innochecksum - offline InnoDB file checksum utility
myisam_ftdump - displaying full-text index utility
myisamchk - MyISAM table-maintenance utility
myisamlog - displaying MyISAM log file content
myisampack - generating compressed, read-only MyISAM tables
mysql_config_editor - MySQL configuration utility
mysqlbinlog - utility for processing binary log files
mysqldumpslow - summarizing slow query log files.
MySQL 8 environment variables
Chapter 4: MySQL 8 Data Types
Overview of MySQL 8 data types
Problems with floating point values
DATE, DATETIME, and TIMESTAMP types
Migrating YEAR(2) to YEAR(4)
CHAR and VARCHAR data types
BINARY and VARBINARY data types
Partial updates of JSON values
Storage requirements for data types
Choosing the right data type for column
Chapter 5: MySQL 8 Database Management
MySQL 8 server administration
Server options and different types of variables
The server shutdown process
Object information system tables
The server-side help system tables
Replication system tables
Other miscellaneous system tables
Running multiple instances on a single machine
Setting up multiple data directories
Running multiple MySQL instances on Windows
Components and plugin management
Getting information about the installed plugins
Configuring the character sets
Time zone settings for MySQL8
Default error log destination configuration
Default error log destination on Windows
Default error log destination on Unix and Unix-Like systems
Chapter 6: MySQL 8 Storage Engines
Overview of storage engines
MySQL storage engine architecture
Several types of storage engine
Overview of the InnoDB storage engine
Several types of storage engines
Pluggable storage engine architecture
The common database server layer
Setting the storage engine
The MyISAM storage engine
The MEMORY storage engine
The ARCHIVE storage engine
The BLACKHOLE storage engine
The FEDERATED storage engine
The EXAMPLE storage engine
The InnoDB storage engine
Locking and transaction model
INFORMATION_SCHEMA tables
Creating a custom storage engine
Creating storage engine source files
Adding engine-specific variables and parameters
Handling handler installation
Defining filename extensions
Implementing basic table scanning
Reference for advanced custom storage engine
Chapter 7: Indexing in MySQL 8
Uses of indexes in MySQL 8
SQL commands related to indexes
Creating an INDEX command
Spatial index characteristics
Non-spatial index characteristics
SPATIAL index creation and optimization
InnoDB and MyISAM index statistics collection
Indexes in the MEMORY storage engine
Using an optimizer for indexes
Invisible and descending indexes
Chapter 8: Replication in MySQL 8
What is MySQL replication?
Advantages of MySQL replication
Binary log file based replication
Replication master configuration
REPLICATION SLAVE configuration
Adding slaves to replication
Global transaction identifiers based replication
MySQL multi-source replication
Replication administration tasks
Statement-based versus row-based replication
Replication implementation details
Replication relay and status logs
Evaluating replication filtering rules
Primary-secondary replication versus group replication
Group replication configuration
Group replication use cases
Chapter 9: Partitioning in MySQL 8
Partition selection and pruning
Restrictions and limitations in partitioning
RANGE COLUMN partitioning
Handling NULL in partitioning
RANGE and LIST partition management
HASH and KEY partition management
Obtain partition information
Partition selection and pruning
Restrictions and limitations in partitioning
Partitioning keys, primary keys, and unique keys
Partitioning limitations relating to storage engines
Partitioning limitations relating to functions
Chapter 10: MySQL 8 – Scalability and High Availability
Overview of scalability and high availability in MySQL 8
Oracle MySQL cloud service
MySQL with the Solaris cluster
Data storage and management of disk-based and in-memory data
Automatic and user-defined partitioning of tables or sharding of tables
Synchronous data replication between data nodes
Data retrieval and transactions
Automatic re-synchronization for self-healing after failure
Scaling using memcached in MySQL 8
Scaling using replication
Asynchronous data replication
Geographical data distribution
Challenges in scaling MySQL 8
Business type and flexibility
Understand server workload
Read-write operation limit
Growing team for development
Achieving high availability
Purpose of high availability
Advantages of high availability
Chapter 11: MySQL 8 – Security
Overview of security for MySQL 8
Guidelines for a secure password
Guidelines for administrators
Secure MYSQL 8 against attackers
Security options and variables provided by MySQL 8
Security guidelines for client programming
Access control in MySQL 8
Privileges provided by MySQL 8
Verification of access control stages
Stage 1 - Connection verification
Stage 2 - Request verification
Account management in MySQL 8
Add and remove user accounts
Configuring MySQL 8 to use encrypted connections
Server-side configuration for encrypted connections
Client-side configuration for encrypted connections
Command options for encrypted connections
Connect with MySQL 8 remotely from Windows with SSH
SHA-2 pluggable authentication
Client-side cleartext pluggable authentication
No-login pluggable authentication
Socket peer-credential pluggable authentication
Test pluggable authentication
The connection-control plugins
Variables related to CONNECTION-CONTROL
The password validation plugin
Install password validation plugin
Variables and options related to the password validation plugin
System variables related to keyring plugin
Chapter 12: Optimizing MySQL 8
Overview of MySQL 8 optimization
Optimizing MySQL 8 servers and clients
Optimizing the use of memory
Optimizing use of the network
Optimizing locking operations
Examining thread information
Optimizing database structure
Optimizing MySQL data types
Optimizing for many tables
Use of an internal temporary table in MySQL
Optimizing SQL statements
Optimization for InnoDB tables
Optimization for MyISAM tables
Optimization for MEMORY tables
Leveraging buffering and caching
InnoDB buffer pool optimization
Chapter 13: Extending MySQL 8
An overview of extending MySQL 8
MySQL 8 services for components and plugins
Adding new functions to MySQL 8
Debugging and porting MySQL 8
Extending plugins and using services to call them
Component and plugin services
Features of a user-defined function interface
Adding a new user-defined function
Adding a new native function
Chapter 14: MySQL 8 Best Practices and Benchmarking
MySQL benchmarking and tools
Stretching your benchmarking timelines
Replicating production settings
Consistency of throughput and latency
Best practices for memcached
Operating system architecture
Memcached general statistics
Best practices for replication
Throughput in group replication
Best practices for data partitioning
Pruning partitions in MySQL
Best practices for queries and indexing
Shortening up primary keys
Letting the application do the job
Chapter 15: Troubleshooting MySQL 8
Can't connect to [local] MySQL server
Lost connection to MySQL server
Password fails when entered incorrectly
Host host_name is blocked
Can't create/write to file
Table tbl_name doesn't exist
Issues with file permissions
Resetting the root password
MySQL temporary files storage
Case sensitivity in string searches
Problems with DATE columns
Problems with NULL values
MySQL 8 troubleshooting approach
Other Books You May Enjoy