PDF (A4) - 42.7Mb
Man Pages (TGZ) - 270.1Kb
Man Pages (Zip) - 379.8Kb
Info (Gzip) - 4.1Mb
Info (Zip) - 4.1Mb
MySQL Globalization
MySQL Information Schema
MySQL Installation Guide
Security in MySQL
Starting and Stopping MySQL
MySQL and Linux/Unix
MySQL and Windows
MySQL and macOS
MySQL and Solaris
Building MySQL from Source
MySQL Restrictions and Limitations
MySQL Partitioning
MySQL Tutorial
MySQL Performance Schema
MySQL Replication
Using the MySQL Yum Repository
MySQL NDB Cluster 8.0
Including MySQL NDB Cluster 8.0
Abstract
This is the MySQL Reference Manual. It documents MySQL
8.0 through 8.0.31, as well as NDB
Cluster releases based on version 8.0 of
NDB
through
8.0.29-ndb-8.0.30, respectively. It may include
documentation of features of MySQL versions that have not yet
been released. For information about which versions have been
released, see the
MySQL
8.0 Release Notes.
MySQL 8.0 features. This manual describes features that are not included in every edition of MySQL 8.0; such features may not be included in the edition of MySQL 8.0 licensed to you. If you have any questions about the features included in your edition of MySQL 8.0, refer to your MySQL 8.0 license agreement or contact your Oracle sales representative.
For notes detailing the changes in each release, see the MySQL 8.0 Release Notes.
For legal information, including licensing information, see the Preface and Legal Notices.
For help with using MySQL, please visit the MySQL Forums, where you can discuss your issues with other MySQL users.
Document generated on: 2022-05-27 (revision: 73344)
Table of Contents
- Preface and Legal Notices
- 1 General Information
- 2 Installing and Upgrading MySQL
- 2.1 General Installation Guidance
- 2.2 Installing MySQL on Unix/Linux Using Generic Binaries
- 2.3 Installing MySQL on Microsoft Windows
- 2.3.1 MySQL Installation Layout on Microsoft Windows
- 2.3.2 Choosing an Installation Package
- 2.3.3 MySQL Installer for Windows
- 2.3.4 Installing MySQL on Microsoft Windows Using a
noinstall
ZIP Archive - 2.3.5 Troubleshooting a Microsoft Windows MySQL Server Installation
- 2.3.6 Windows Postinstallation Procedures
- 2.3.7 Windows Platform Restrictions
- 2.4 Installing MySQL on macOS
- 2.5 Installing MySQL on Linux
- 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository
- 2.5.2 Installing MySQL on Linux Using the MySQL APT Repository
- 2.5.3 Installing MySQL on Linux Using the MySQL SLES Repository
- 2.5.4 Installing MySQL on Linux Using RPM Packages from Oracle
- 2.5.5 Installing MySQL on Linux Using Debian Packages from Oracle
- 2.5.6 Deploying MySQL on Linux with Docker
- 2.5.7 Installing MySQL on Linux from the Native Software Repositories
- 2.5.8 Installing MySQL on Linux with Juju
- 2.5.9 Managing MySQL Server with systemd
- 2.6 Installing MySQL Using Unbreakable Linux Network (ULN)
- 2.7 Installing MySQL on Solaris
- 2.8 Installing MySQL on FreeBSD
- 2.9 Installing MySQL from Source
- 2.9.1 Source Installation Methods
- 2.9.2 Source Installation Prerequisites
- 2.9.3 MySQL Layout for Source Installation
- 2.9.4 Installing MySQL Using a Standard Source Distribution
- 2.9.5 Installing MySQL Using a Development Source Tree
- 2.9.6 Configuring SSL Library Support
- 2.9.7 MySQL Source-Configuration Options
- 2.9.8 Dealing with Problems Compiling MySQL
- 2.9.9 MySQL Configuration and Third-Party Tools
- 2.9.10 Generating MySQL Doxygen Documentation Content
- 2.10 Postinstallation Setup and Testing
- 2.11 Upgrading MySQL
- 2.11.1 Before You Begin
- 2.11.2 Upgrade Paths
- 2.11.3 What the MySQL Upgrade Process Upgrades
- 2.11.4 Changes in MySQL 8.0
- 2.11.5 Preparing Your Installation for Upgrade
- 2.11.6 Upgrading MySQL Binary or Package-based Installations on Unix/Linux
- 2.11.7 Upgrading MySQL with the MySQL Yum Repository
- 2.11.8 Upgrading MySQL with the MySQL APT Repository
- 2.11.9 Upgrading MySQL with the MySQL SLES Repository
- 2.11.10 Upgrading MySQL on Windows
- 2.11.11 Upgrading a Docker Installation of MySQL
- 2.11.12 Upgrade Troubleshooting
- 2.11.13 Rebuilding or Repairing Tables or Indexes
- 2.11.14 Copying MySQL Databases to Another Machine
- 2.12 Downgrading MySQL
- 2.13 Perl Installation Notes
- 3 Tutorial
- 3.1 Connecting to and Disconnecting from the Server
- 3.2 Entering Queries
- 3.3 Creating and Using a Database
- 3.4 Getting Information About Databases and Tables
- 3.5 Using mysql in Batch Mode
- 3.6 Examples of Common Queries
- 3.6.1 The Maximum Value for a Column
- 3.6.2 The Row Holding the Maximum of a Certain Column
- 3.6.3 Maximum of Column per Group
- 3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column
- 3.6.5 Using User-Defined Variables
- 3.6.6 Using Foreign Keys
- 3.6.7 Searching on Two Keys
- 3.6.8 Calculating Visits Per Day
- 3.6.9 Using AUTO_INCREMENT
- 3.7 Using MySQL with Apache
- 4 MySQL Programs
- 4.1 Overview of MySQL Programs
- 4.2 Using MySQL Programs
- 4.2.1 Invoking MySQL Programs
- 4.2.2 Specifying Program Options
- 4.2.3 Command Options for Connecting to the Server
- 4.2.4 Connecting to the MySQL Server Using Command Options
- 4.2.5 Connecting to the Server Using URI-Like Strings or Key-Value Pairs
- 4.2.6 Connecting to the Server Using DNS SRV Records
- 4.2.7 Connection Transport Protocols
- 4.2.8 Connection Compression Control
- 4.2.9 Setting Environment Variables
- 4.3 Server and Server-Startup Programs
- 4.4 Installation-Related Programs
- 4.5 Client Programs
- 4.5.1 mysql — The MySQL Command-Line Client
- 4.5.2 mysqladmin — A MySQL Server Administration Program
- 4.5.3 mysqlcheck — A Table Maintenance Program
- 4.5.4 mysqldump — A Database Backup Program
- 4.5.5 mysqlimport — A Data Import Program
- 4.5.6 mysqlpump — A Database Backup Program
- 4.5.7 mysqlshow — Display Database, Table, and Column Information
- 4.5.8 mysqlslap — A Load Emulation Client
- 4.6 Administrative and Utility Programs
- 4.6.1 ibd2sdi — InnoDB Tablespace SDI Extraction Utility
- 4.6.2 innochecksum — Offline InnoDB File Checksum Utility
- 4.6.3 myisam_ftdump — Display Full-Text Index information
- 4.6.4 myisamchk — MyISAM Table-Maintenance Utility
- 4.6.5 myisamlog — Display MyISAM Log File Contents
- 4.6.6 myisampack — Generate Compressed, Read-Only MyISAM Tables
- 4.6.7 mysql_config_editor — MySQL Configuration Utility
- 4.6.8 mysql_migrate_keyring — Keyring Key Migration Utility
- 4.6.9 mysqlbinlog — Utility for Processing Binary Log Files
- 4.6.10 mysqldumpslow — Summarize Slow Query Log Files
- 4.7 Program Development Utilities
- 4.8 Miscellaneous Programs
- 4.9 Environment Variables
- 4.10 Unix Signal Handling in MySQL
- 5 MySQL Server Administration
- 5.1 The MySQL Server
- 5.1.1 Configuring the Server
- 5.1.2 Server Configuration Defaults
- 5.1.3 Server Configuration Validation
- 5.1.4 Server Option, System Variable, and Status Variable Reference
- 5.1.5 Server System Variable Reference
- 5.1.6 Server Status Variable Reference
- 5.1.7 Server Command Options
- 5.1.8 Server System Variables
- 5.1.9 Using System Variables
- 5.1.10 Server Status Variables
- 5.1.11 Server SQL Modes
- 5.1.12 Connection Management
- 5.1.13 IPv6 Support
- 5.1.14 Network Namespace Support
- 5.1.15 MySQL Server Time Zone Support
- 5.1.16 Resource Groups
- 5.1.17 Server-Side Help Support
- 5.1.18 Server Tracking of Client Session State
- 5.1.19 The Server Shutdown Process
- 5.2 The MySQL Data Directory
- 5.3 The mysql System Schema
- 5.4 MySQL Server Logs
- 5.5 MySQL Components
- 5.6 MySQL Server Plugins
- 5.7 MySQL Server Loadable Functions
- 5.8 Running Multiple MySQL Instances on One Machine
- 5.9 Debugging MySQL
- 6 Security
- 6.1 General Security Issues
- 6.2 Access Control and Account Management
- 6.2.1 Account User Names and Passwords
- 6.2.2 Privileges Provided by MySQL
- 6.2.3 Grant Tables
- 6.2.4 Specifying Account Names
- 6.2.5 Specifying Role Names
- 6.2.6 Access Control, Stage 1: Connection Verification
- 6.2.7 Access Control, Stage 2: Request Verification
- 6.2.8 Adding Accounts, Assigning Privileges, and Dropping Accounts
- 6.2.9 Reserved Accounts
- 6.2.10 Using Roles
- 6.2.11 Account Categories
- 6.2.12 Privilege Restriction Using Partial Revokes
- 6.2.13 When Privilege Changes Take Effect
- 6.2.14 Assigning Account Passwords
- 6.2.15 Password Management
- 6.2.16 Server Handling of Expired Passwords
- 6.2.17 Pluggable Authentication
- 6.2.18 Multifactor Authentication
- 6.2.19 Proxy Users
- 6.2.20 Account Locking
- 6.2.21 Setting Account Resource Limits
- 6.2.22 Troubleshooting Problems Connecting to MySQL
- 6.2.23 SQL-Based Account Activity Auditing
- 6.3 Using Encrypted Connections
- 6.4 Security Components and Plugins
- 6.5 MySQL Enterprise Data Masking and De-Identification
- 6.5.1 MySQL Enterprise Data Masking and De-Identification Elements
- 6.5.2 Installing or Uninstalling MySQL Enterprise Data Masking and De-Identification
- 6.5.3 Using MySQL Enterprise Data Masking and De-Identification
- 6.5.4 MySQL Enterprise Data Masking and De-Identification Function Reference
- 6.5.5 MySQL Enterprise Data Masking and De-Identification Function Descriptions
- 6.6 MySQL Enterprise Encryption
- 6.7 SELinux
- 6.8 FIPS Support
- 7 Backup and Recovery
- 8 Optimization
- 8.1 Optimization Overview
- 8.2 Optimizing SQL Statements
- 8.2.1 Optimizing SELECT Statements
- 8.2.2 Optimizing Subqueries, Derived Tables, View References, and Common Table Expressions
- 8.2.3 Optimizing INFORMATION_SCHEMA Queries
- 8.2.4 Optimizing Performance Schema Queries
- 8.2.5 Optimizing Data Change Statements
- 8.2.6 Optimizing Database Privileges
- 8.2.7 Other Optimization Tips
- 8.3 Optimization and Indexes
- 8.3.1 How MySQL Uses Indexes
- 8.3.2 Primary Key Optimization
- 8.3.3 SPATIAL Index Optimization
- 8.3.4 Foreign Key Optimization
- 8.3.5 Column Indexes
- 8.3.6 Multiple-Column Indexes
- 8.3.7 Verifying Index Usage
- 8.3.8 InnoDB and MyISAM Index Statistics Collection
- 8.3.9 Comparison of B-Tree and Hash Indexes
- 8.3.10 Use of Index Extensions
- 8.3.11 Optimizer Use of Generated Column Indexes
- 8.3.12 Invisible Indexes
- 8.3.13 Descending Indexes
- 8.3.14 Indexed Lookups from TIMESTAMP Columns
- 8.4 Optimizing Database Structure
- 8.5 Optimizing for InnoDB Tables
- 8.5.1 Optimizing Storage Layout for InnoDB Tables
- 8.5.2 Optimizing InnoDB Transaction Management
- 8.5.3 Optimizing InnoDB Read-Only Transactions
- 8.5.4 Optimizing InnoDB Redo Logging
- 8.5.5 Bulk Data Loading for InnoDB Tables
- 8.5.6 Optimizing InnoDB Queries
- 8.5.7 Optimizing InnoDB DDL Operations
- 8.5.8 Optimizing InnoDB Disk I/O
- 8.5.9 Optimizing InnoDB Configuration Variables
- 8.5.10 Optimizing InnoDB for Systems with Many Tables
- 8.6 Optimizing for MyISAM Tables
- 8.7 Optimizing for MEMORY Tables
- 8.8 Understanding the Query Execution Plan
- 8.9 Controlling the Query Optimizer
- 8.10 Buffering and Caching
- 8.11 Optimizing Locking Operations
- 8.12 Optimizing the MySQL Server
- 8.13 Measuring Performance (Benchmarking)
- 8.14 Examining Server Thread (Process) Information
- 8.14.1 Accessing the Process List
- 8.14.2 Thread Command Values
- 8.14.3 General Thread States
- 8.14.4 Replication Source Thread States
- 8.14.5 Replication I/O (Receiver) Thread States
- 8.14.6 Replication SQL Thread States
- 8.14.7 Replication Connection Thread States
- 8.14.8 NDB Cluster Thread States
- 8.14.9 Event Scheduler Thread States
- 9 Language Structure
- 10 Character Sets, Collations, Unicode
- 10.1 Character Sets and Collations in General
- 10.2 Character Sets and Collations in MySQL
- 10.3 Specifying Character Sets and Collations
- 10.3.1 Collation Naming Conventions
- 10.3.2 Server Character Set and Collation
- 10.3.3 Database Character Set and Collation
- 10.3.4 Table Character Set and Collation
- 10.3.5 Column Character Set and Collation
- 10.3.6 Character String Literal Character Set and Collation
- 10.3.7 The National Character Set
- 10.3.8 Character Set Introducers
- 10.3.9 Examples of Character Set and Collation Assignment
- 10.3.10 Compatibility with Other DBMSs
- 10.4 Connection Character Sets and Collations
- 10.5 Configuring Application Character Set and Collation
- 10.6 Error Message Character Set
- 10.7 Column Character Set Conversion
- 10.8 Collation Issues
- 10.8.1 Using COLLATE in SQL Statements
- 10.8.2 COLLATE Clause Precedence
- 10.8.3 Character Set and Collation Compatibility
- 10.8.4 Collation Coercibility in Expressions
- 10.8.5 The binary Collation Compared to _bin Collations
- 10.8.6 Examples of the Effect of Collation
- 10.8.7 Using Collation in INFORMATION_SCHEMA Searches
- 10.9 Unicode Support
- 10.9.1 The utf8mb4 Character Set (4-Byte UTF-8 Unicode Encoding)
- 10.9.2 The utf8mb3 Character Set (3-Byte UTF-8 Unicode Encoding)
- 10.9.3 The utf8 Character Set (Alias for utf8mb3)
- 10.9.4 The ucs2 Character Set (UCS-2 Unicode Encoding)
- 10.9.5 The utf16 Character Set (UTF-16 Unicode Encoding)
- 10.9.6 The utf16le Character Set (UTF-16LE Unicode Encoding)
- 10.9.7 The utf32 Character Set (UTF-32 Unicode Encoding)
- 10.9.8 Converting Between 3-Byte and 4-Byte Unicode Character Sets
- 10.10 Supported Character Sets and Collations
- 10.11 Restrictions on Character Sets
- 10.12 Setting the Error Message Language
- 10.13 Adding a Character Set
- 10.14 Adding a Collation to a Character Set
- 10.15 Character Set Configuration
- 10.16 MySQL Server Locale Support
- 11 Data Types
- 11.1 Numeric Data Types
- 11.1.1 Numeric Data Type Syntax
- 11.1.2 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
- 11.1.3 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC
- 11.1.4 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE
- 11.1.5 Bit-Value Type - BIT
- 11.1.6 Numeric Type Attributes
- 11.1.7 Out-of-Range and Overflow Handling
- 11.2 Date and Time Data Types
- 11.2.1 Date and Time Data Type Syntax
- 11.2.2 The DATE, DATETIME, and TIMESTAMP Types
- 11.2.3 The TIME Type
- 11.2.4 The YEAR Type
- 11.2.5 Automatic Initialization and Updating for TIMESTAMP and DATETIME
- 11.2.6 Fractional Seconds in Time Values
- 11.2.7 Conversion Between Date and Time Types
- 11.2.8 2-Digit Years in Dates
- 11.3 String Data Types
- 11.4 Spatial Data Types
- 11.4.1 Spatial Data Types
- 11.4.2 The OpenGIS Geometry Model
- 11.4.3 Supported Spatial Data Formats
- 11.4.4 Geometry Well-Formedness and Validity
- 11.4.5 Spatial Reference System Support
- 11.4.6 Creating Spatial Columns
- 11.4.7 Populating Spatial Columns
- 11.4.8 Fetching Spatial Data
- 11.4.9 Optimizing Spatial Analysis
- 11.4.10 Creating Spatial Indexes
- 11.4.11 Using Spatial Indexes
- 11.5 The JSON Data Type
- 11.6 Data Type Default Values
- 11.7 Data Type Storage Requirements
- 11.8 Choosing the Right Type for a Column
- 11.9 Using Data Types from Other Database Engines
- 12 Functions and Operators
- 12.1 Built-In Function and Operator Reference
- 12.2 Loadable Function Reference
- 12.3 Type Conversion in Expression Evaluation
- 12.4 Operators
- 12.5 Flow Control Functions
- 12.6 Numeric Functions and Operators
- 12.7 Date and Time Functions
- 12.8 String Functions and Operators
- 12.9 What Calendar Is Used By MySQL?
- 12.10 Full-Text Search Functions
- 12.10.1 Natural Language Full-Text Searches
- 12.10.2 Boolean Full-Text Searches
- 12.10.3 Full-Text Searches with Query Expansion
- 12.10.4 Full-Text Stopwords
- 12.10.5 Full-Text Restrictions
- 12.10.6 Fine-Tuning MySQL Full-Text Search
- 12.10.7 Adding a User-Defined Collation for Full-Text Indexing
- 12.10.8 ngram Full-Text Parser
- 12.10.9 MeCab Full-Text Parser Plugin
- 12.11 Cast Functions and Operators
- 12.12 XML Functions
- 12.13 Bit Functions and Operators
- 12.14 Encryption and Compression Functions
- 12.15 Locking Functions
- 12.16 Information Functions
- 12.17 Spatial Analysis Functions
- 12.17.1 Spatial Function Reference
- 12.17.2 Argument Handling by Spatial Functions
- 12.17.3 Functions That Create Geometry Values from WKT Values
- 12.17.4 Functions That Create Geometry Values from WKB Values
- 12.17.5 MySQL-Specific Functions That Create Geometry Values
- 12.17.6 Geometry Format Conversion Functions
- 12.17.7 Geometry Property Functions
- 12.17.8 Spatial Operator Functions
- 12.17.9 Functions That Test Spatial Relations Between Geometry Objects
- 12.17.10 Spatial Geohash Functions
- 12.17.11 Spatial GeoJSON Functions
- 12.17.12 Spatial Aggregate Functions
- 12.17.13 Spatial Convenience Functions
- 12.18 JSON Functions
- 12.18.1 JSON Function Reference
- 12.18.2 Functions That Create JSON Values
- 12.18.3 Functions That Search JSON Values
- 12.18.4 Functions That Modify JSON Values
- 12.18.5 Functions That Return JSON Value Attributes
- 12.18.6 JSON Table Functions
- 12.18.7 JSON Schema Validation Functions
- 12.18.8 JSON Utility Functions
- 12.19 Functions Used with Global Transaction Identifiers (GTIDs)
- 12.20 Aggregate Functions
- 12.21 Window Functions
- 12.22 Performance Schema Functions
- 12.23 Internal Functions
- 12.24 Miscellaneous Functions
- 12.25 Precision Math
- 13 SQL Statements
- 13.1 Data Definition Statements
- 13.1.1 Atomic Data Definition Statement Support
- 13.1.2 ALTER DATABASE Statement
- 13.1.3 ALTER EVENT Statement
- 13.1.4 ALTER FUNCTION Statement
- 13.1.5 ALTER INSTANCE Statement
- 13.1.6 ALTER LOGFILE GROUP Statement
- 13.1.7 ALTER PROCEDURE Statement
- 13.1.8 ALTER SERVER Statement
- 13.1.9 ALTER TABLE Statement
- 13.1.10 ALTER TABLESPACE Statement
- 13.1.11 ALTER VIEW Statement
- 13.1.12 CREATE DATABASE Statement
- 13.1.13 CREATE EVENT Statement
- 13.1.14 CREATE FUNCTION Statement
- 13.1.15 CREATE INDEX Statement
- 13.1.16 CREATE LOGFILE GROUP Statement
- 13.1.17 CREATE PROCEDURE and CREATE FUNCTION Statements
- 13.1.18 CREATE SERVER Statement
- 13.1.19 CREATE SPATIAL REFERENCE SYSTEM Statement
- 13.1.20 CREATE TABLE Statement
- 13.1.21 CREATE TABLESPACE Statement
- 13.1.22 CREATE TRIGGER Statement
- 13.1.23 CREATE VIEW Statement
- 13.1.24 DROP DATABASE Statement
- 13.1.25 DROP EVENT Statement
- 13.1.26 DROP FUNCTION Statement
- 13.1.27 DROP INDEX Statement
- 13.1.28 DROP LOGFILE GROUP Statement
- 13.1.29 DROP PROCEDURE and DROP FUNCTION Statements
- 13.1.30 DROP SERVER Statement
- 13.1.31 DROP SPATIAL REFERENCE SYSTEM Statement
- 13.1.32 DROP TABLE Statement
- 13.1.33 DROP TABLESPACE Statement
- 13.1.34 DROP TRIGGER Statement
- 13.1.35 DROP VIEW Statement
- 13.1.36 RENAME TABLE Statement
- 13.1.37 TRUNCATE TABLE Statement
- 13.2 Data Manipulation Statements
- 13.2.1 CALL Statement
- 13.2.2 DELETE Statement
- 13.2.3 DO Statement
- 13.2.4 HANDLER Statement
- 13.2.5 IMPORT TABLE Statement
- 13.2.6 INSERT Statement
- 13.2.7 LOAD DATA Statement
- 13.2.8 LOAD XML Statement
- 13.2.9 REPLACE Statement
- 13.2.10 SELECT Statement
- 13.2.11 Subqueries
- 13.2.12 TABLE Statement
- 13.2.13 UPDATE Statement
- 13.2.14 VALUES Statement
- 13.2.15 WITH (Common Table Expressions)
- 13.3 Transactional and Locking Statements
- 13.3.1 START TRANSACTION, COMMIT, and ROLLBACK Statements
- 13.3.2 Statements That Cannot Be Rolled Back
- 13.3.3 Statements That Cause an Implicit Commit
- 13.3.4 SAVEPOINT, ROLLBACK TO SAVEPOINT, and RELEASE SAVEPOINT Statements
- 13.3.5 LOCK INSTANCE FOR BACKUP and UNLOCK INSTANCE Statements
- 13.3.6 LOCK TABLES and UNLOCK TABLES Statements
- 13.3.7 SET TRANSACTION Statement
- 13.3.8 XA Transactions
- 13.4 Replication Statements
- 13.5 Prepared Statements
- 13.6 Compound Statement Syntax
- 13.7 Database Administration Statements
- 13.8 Utility Statements
- 14 MySQL Data Dictionary
- 14.1 Data Dictionary Schema
- 14.2 Removal of File-based Metadata Storage
- 14.3 Transactional Storage of Dictionary Data
- 14.4 Dictionary Object Cache
- 14.5 INFORMATION_SCHEMA and Data Dictionary Integration
- 14.6 Serialized Dictionary Information (SDI)
- 14.7 Data Dictionary Usage Differences
- 14.8 Data Dictionary Limitations
- 15 The InnoDB Storage Engine
- 15.1 Introduction to InnoDB
- 15.2 InnoDB and the ACID Model
- 15.3 InnoDB Multi-Versioning
- 15.4 InnoDB Architecture
- 15.5 InnoDB In-Memory Structures
- 15.6 InnoDB On-Disk Structures
- 15.7 InnoDB Locking and Transaction Model
- 15.8 InnoDB Configuration
- 15.8.1 InnoDB Startup Configuration
- 15.8.2 Configuring InnoDB for Read-Only Operation
- 15.8.3 InnoDB Buffer Pool Configuration
- 15.8.4 Configuring Thread Concurrency for InnoDB
- 15.8.5 Configuring the Number of Background InnoDB I/O Threads
- 15.8.6 Using Asynchronous I/O on Linux
- 15.8.7 Configuring InnoDB I/O Capacity
- 15.8.8 Configuring Spin Lock Polling
- 15.8.9 Purge Configuration
- 15.8.10 Configuring Optimizer Statistics for InnoDB
- 15.8.11 Configuring the Merge Threshold for Index Pages
- 15.8.12 Enabling Automatic Configuration for a Dedicated MySQL Server
- 15.9 InnoDB Table and Page Compression
- 15.10 InnoDB Row Formats
- 15.11 InnoDB Disk I/O and File Space Management
- 15.12 InnoDB and Online DDL
- 15.12.1 Online DDL Operations
- 15.12.2 Online DDL Performance and Concurrency
- 15.12.3 Online DDL Space Requirements
- 15.12.4 Online DDL Memory Management
- 15.12.5 Configuring Parallel Threads for Online DDL Operations
- 15.12.6 Simplifying DDL Statements with Online DDL
- 15.12.7 Online DDL Failure Conditions
- 15.12.8 Online DDL Limitations
- 15.13 InnoDB Data-at-Rest Encryption
- 15.14 InnoDB Startup Options and System Variables
- 15.15 InnoDB INFORMATION_SCHEMA Tables
- 15.15.1 InnoDB INFORMATION_SCHEMA Tables about Compression
- 15.15.2 InnoDB INFORMATION_SCHEMA Transaction and Locking Information
- 15.15.3 InnoDB INFORMATION_SCHEMA Schema Object Tables
- 15.15.4 InnoDB INFORMATION_SCHEMA FULLTEXT Index Tables
- 15.15.5 InnoDB INFORMATION_SCHEMA Buffer Pool Tables
- 15.15.6 InnoDB INFORMATION_SCHEMA Metrics Table
- 15.15.7 InnoDB INFORMATION_SCHEMA Temporary Table Info Table
- 15.15.8 Retrieving InnoDB Tablespace Metadata from INFORMATION_SCHEMA.FILES
- 15.16 InnoDB Integration with MySQL Performance Schema
- 15.17 InnoDB Monitors
- 15.18 InnoDB Backup and Recovery
- 15.19 InnoDB and MySQL Replication
- 15.20 InnoDB memcached Plugin
- 15.20.1 Benefits of the InnoDB memcached Plugin
- 15.20.2 InnoDB memcached Architecture
- 15.20.3 Setting Up the InnoDB memcached Plugin
- 15.20.4 InnoDB memcached Multiple get and Range Query Support
- 15.20.5 Security Considerations for the InnoDB memcached Plugin
- 15.20.6 Writing Applications for the InnoDB memcached Plugin
- 15.20.7 The InnoDB memcached Plugin and Replication
- 15.20.8 InnoDB memcached Plugin Internals
- 15.20.9 Troubleshooting the InnoDB memcached Plugin
- 15.21 InnoDB Troubleshooting
- 15.22 InnoDB Limits
- 15.23 InnoDB Restrictions and Limitations
- 16 Alternative Storage Engines
- 16.1 Setting the Storage Engine
- 16.2 The MyISAM Storage Engine
- 16.3 The MEMORY Storage Engine
- 16.4 The CSV Storage Engine
- 16.5 The ARCHIVE Storage Engine
- 16.6 The BLACKHOLE Storage Engine
- 16.7 The MERGE Storage Engine
- 16.8 The FEDERATED Storage Engine
- 16.9 The EXAMPLE Storage Engine
- 16.10 Other Storage Engines
- 16.11 Overview of MySQL Storage Engine Architecture
- 17 Replication
- 17.1 Configuring Replication
- 17.1.1 Binary Log File Position Based Replication Configuration Overview
- 17.1.2 Setting Up Binary Log File Position Based Replication
- 17.1.3 Replication with Global Transaction Identifiers
- 17.1.4 Changing GTID Mode on Online Servers
- 17.1.5 MySQL Multi-Source Replication
- 17.1.6 Replication and Binary Logging Options and Variables
- 17.1.7 Common Replication Administration Tasks
- 17.2 Replication Implementation
- 17.3 Replication Security
- 17.4 Replication Solutions
- 17.4.1 Using Replication for Backups
- 17.4.2 Handling an Unexpected Halt of a Replica
- 17.4.3 Monitoring Row-based Replication
- 17.4.4 Using Replication with Different Source and Replica Storage Engines
- 17.4.5 Using Replication for Scale-Out
- 17.4.6 Replicating Different Databases to Different Replicas
- 17.4.7 Improving Replication Performance
- 17.4.8 Switching Sources During Failover
- 17.4.9 Switching Sources and Replicas with Asynchronous Connection Failover
- 17.4.10 Semisynchronous Replication
- 17.4.11 Delayed Replication
- 17.5 Replication Notes and Tips
- 18 Group Replication
- 18.1 Group Replication Background
- 18.2 Getting Started
- 18.3 Requirements and Limitations
- 18.4 Monitoring Group Replication
- 18.5 Group Replication Operations
- 18.6 Group Replication Security
- 18.7 Group Replication Performance and Troubleshooting
- 18.8 Upgrading Group Replication
- 18.9 Group Replication System Variables
- 18.10 Frequently Asked Questions
- 19 MySQL Shell
- 20 Using MySQL as a Document Store
- 21 InnoDB Cluster
- 22 InnoDB ReplicaSet
- 23 MySQL NDB Cluster 8.0
- 23.1 General Information
- 23.2 NDB Cluster Overview
- 23.2.1 NDB Cluster Core Concepts
- 23.2.2 NDB Cluster Nodes, Node Groups, Fragment Replicas, and Partitions
- 23.2.3 NDB Cluster Hardware, Software, and Networking Requirements
- 23.2.4 What is New in NDB Cluster
- 23.2.5 Options, Variables, and Parameters Added, Deprecated or Removed in NDB 8.0
- 23.2.6 MySQL Server Using InnoDB Compared with NDB Cluster
- 23.2.7 Known Limitations of NDB Cluster
- 23.3 NDB Cluster Installation
- 23.3.1 Installation of NDB Cluster on Linux
- 23.3.2 Installing NDB Cluster on Windows
- 23.3.3 Initial Configuration of NDB Cluster
- 23.3.4 Initial Startup of NDB Cluster
- 23.3.5 NDB Cluster Example with Tables and Data
- 23.3.6 Safe Shutdown and Restart of NDB Cluster
- 23.3.7 Upgrading and Downgrading NDB Cluster
- 23.3.8 The NDB Cluster Auto-Installer (No longer supported)
- 23.4 Configuration of NDB Cluster
- 23.5 NDB Cluster Programs
- 23.5.1 ndbd — The NDB Cluster Data Node Daemon
- 23.5.2 ndbinfo_select_all — Select From ndbinfo Tables
- 23.5.3 ndbmtd — The NDB Cluster Data Node Daemon (Multi-Threaded)
- 23.5.4 ndb_mgmd — The NDB Cluster Management Server Daemon
- 23.5.5 ndb_mgm — The NDB Cluster Management Client
- 23.5.6 ndb_blob_tool — Check and Repair BLOB and TEXT columns of NDB Cluster Tables
- 23.5.7 ndb_config — Extract NDB Cluster Configuration Information
- 23.5.8 ndb_delete_all — Delete All Rows from an NDB Table
- 23.5.9 ndb_desc — Describe NDB Tables
- 23.5.10 ndb_drop_index — Drop Index from an NDB Table
- 23.5.11 ndb_drop_table — Drop an NDB Table
- 23.5.12 ndb_error_reporter — NDB Error-Reporting Utility
- 23.5.13 ndb_import — Import CSV Data Into NDB
- 23.5.14 ndb_index_stat — NDB Index Statistics Utility
- 23.5.15 ndb_move_data — NDB Data Copy Utility
- 23.5.16 ndb_perror — Obtain NDB Error Message Information
- 23.5.17 ndb_print_backup_file — Print NDB Backup File Contents
- 23.5.18 ndb_print_file — Print NDB Disk Data File Contents
- 23.5.19 ndb_print_frag_file — Print NDB Fragment List File Contents
- 23.5.20 ndb_print_schema_file — Print NDB Schema File Contents
- 23.5.21 ndb_print_sys_file — Print NDB System File Contents
- 23.5.22 ndb_redo_log_reader — Check and Print Content of Cluster Redo Log
- 23.5.23 ndb_restore — Restore an NDB Cluster Backup
- 23.5.24 ndb_select_all — Print Rows from an NDB Table
- 23.5.25 ndb_select_count — Print Row Counts for NDB Tables
- 23.5.26 ndb_setup.py — Start browser-based Auto-Installer for NDB Cluster (DEPRECATED)
- 23.5.27 ndb_show_tables — Display List of NDB Tables
- 23.5.28 ndb_size.pl — NDBCLUSTER Size Requirement Estimator
- 23.5.29 ndb_top — View CPU usage information for NDB threads
- 23.5.30 ndb_waiter — Wait for NDB Cluster to Reach a Given Status
- 23.5.31 ndbxfrm — Compress, Decompress, Encrypt, and Decrypt Files Created by NDB Cluster
- 23.6 Management of NDB Cluster
- 23.6.1 Commands in the NDB Cluster Management Client
- 23.6.2 NDB Cluster Log Messages
- 23.6.3 Event Reports Generated in NDB Cluster
- 23.6.4 Summary of NDB Cluster Start Phases
- 23.6.5 Performing a Rolling Restart of an NDB Cluster
- 23.6.6 NDB Cluster Single User Mode
- 23.6.7 Adding NDB Cluster Data Nodes Online
- 23.6.8 Online Backup of NDB Cluster
- 23.6.9 MySQL Server Usage for NDB Cluster
- 23.6.10 NDB Cluster Disk Data Tables
- 23.6.11 Online Operations with ALTER TABLE in NDB Cluster
- 23.6.12 Privilege Synchronization and NDB_STORED_USER
- 23.6.13 NDB API Statistics Counters and Variables
- 23.6.14 ndbinfo: The NDB Cluster Information Database
- 23.6.15 INFORMATION_SCHEMA Tables for NDB Cluster
- 23.6.16 NDB Cluster and the Performance Schema
- 23.6.17 Quick Reference: NDB Cluster SQL Statements
- 23.6.18 NDB Cluster Security Issues
- 23.7 NDB Cluster Replication
- 23.7.1 NDB Cluster Replication: Abbreviations and Symbols
- 23.7.2 General Requirements for NDB Cluster Replication
- 23.7.3 Known Issues in NDB Cluster Replication
- 23.7.4 NDB Cluster Replication Schema and Tables
- 23.7.5 Preparing the NDB Cluster for Replication
- 23.7.6 Starting NDB Cluster Replication (Single Replication Channel)
- 23.7.7 Using Two Replication Channels for NDB Cluster Replication
- 23.7.8 Implementing Failover with NDB Cluster Replication
- 23.7.9 NDB Cluster Backups With NDB Cluster Replication
- 23.7.10 NDB Cluster Replication: Bidirectional and Circular Replication
- 23.7.11 NDB Cluster Replication Conflict Resolution
- 23.8 NDB Cluster Release Notes
- 24 Partitioning
- 25 Stored Objects
- 26 INFORMATION_SCHEMA Tables
- 26.1 Introduction
- 26.2 INFORMATION_SCHEMA Table Reference
- 26.3 INFORMATION_SCHEMA General Tables
- 26.3.1 INFORMATION_SCHEMA General Table Reference
- 26.3.2 The INFORMATION_SCHEMA ADMINISTRABLE_ROLE_AUTHORIZATIONS Table
- 26.3.3 The INFORMATION_SCHEMA APPLICABLE_ROLES Table
- 26.3.4 The INFORMATION_SCHEMA CHARACTER_SETS Table
- 26.3.5 The INFORMATION_SCHEMA CHECK_CONSTRAINTS Table
- 26.3.6 The INFORMATION_SCHEMA COLLATIONS Table
- 26.3.7 The INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Table
- 26.3.8 The INFORMATION_SCHEMA COLUMNS Table
- 26.3.9 The INFORMATION_SCHEMA COLUMNS_EXTENSIONS Table
- 26.3.10 The INFORMATION_SCHEMA COLUMN_PRIVILEGES Table
- 26.3.11 The INFORMATION_SCHEMA COLUMN_STATISTICS Table
- 26.3.12 The INFORMATION_SCHEMA ENABLED_ROLES Table
- 26.3.13 The INFORMATION_SCHEMA ENGINES Table
- 26.3.14 The INFORMATION_SCHEMA EVENTS Table
- 26.3.15 The INFORMATION_SCHEMA FILES Table
- 26.3.16 The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table
- 26.3.17 The INFORMATION_SCHEMA KEYWORDS Table
- 26.3.18 The INFORMATION_SCHEMA ndb_transid_mysql_connection_map Table
- 26.3.19 The INFORMATION_SCHEMA OPTIMIZER_TRACE Table
- 26.3.20 The INFORMATION_SCHEMA PARAMETERS Table
- 26.3.21 The INFORMATION_SCHEMA PARTITIONS Table
- 26.3.22 The INFORMATION_SCHEMA PLUGINS Table
- 26.3.23 The INFORMATION_SCHEMA PROCESSLIST Table
- 26.3.24 The INFORMATION_SCHEMA PROFILING Table
- 26.3.25 The INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Table
- 26.3.26 The INFORMATION_SCHEMA RESOURCE_GROUPS Table
- 26.3.27 The INFORMATION_SCHEMA ROLE_COLUMN_GRANTS Table
- 26.3.28 The INFORMATION_SCHEMA ROLE_ROUTINE_GRANTS Table
- 26.3.29 The INFORMATION_SCHEMA ROLE_TABLE_GRANTS Table
- 26.3.30 The INFORMATION_SCHEMA ROUTINES Table
- 26.3.31 The INFORMATION_SCHEMA SCHEMATA Table
- 26.3.32 The INFORMATION_SCHEMA SCHEMATA_EXTENSIONS Table
- 26.3.33 The INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
- 26.3.34 The INFORMATION_SCHEMA STATISTICS Table
- 26.3.35 The INFORMATION_SCHEMA ST_GEOMETRY_COLUMNS Table
- 26.3.36 The INFORMATION_SCHEMA ST_SPATIAL_REFERENCE_SYSTEMS Table
- 26.3.37 The INFORMATION_SCHEMA ST_UNITS_OF_MEASURE Table
- 26.3.38 The INFORMATION_SCHEMA TABLES Table
- 26.3.39 The INFORMATION_SCHEMA TABLES_EXTENSIONS Table
- 26.3.40 The INFORMATION_SCHEMA TABLESPACES Table
- 26.3.41 The INFORMATION_SCHEMA TABLESPACES_EXTENSIONS Table
- 26.3.42 The INFORMATION_SCHEMA TABLE_CONSTRAINTS Table
- 26.3.43 The INFORMATION_SCHEMA TABLE_CONSTRAINTS_EXTENSIONS Table
- 26.3.44 The INFORMATION_SCHEMA TABLE_PRIVILEGES Table
- 26.3.45 The INFORMATION_SCHEMA TRIGGERS Table
- 26.3.46 The INFORMATION_SCHEMA USER_ATTRIBUTES Table
- 26.3.47 The INFORMATION_SCHEMA USER_PRIVILEGES Table
- 26.3.48 The INFORMATION_SCHEMA VIEWS Table
- 26.3.49 The INFORMATION_SCHEMA VIEW_ROUTINE_USAGE Table
- 26.3.50 The INFORMATION_SCHEMA VIEW_TABLE_USAGE Table
- 26.4 INFORMATION_SCHEMA InnoDB Tables
- 26.4.1 INFORMATION_SCHEMA InnoDB Table Reference
- 26.4.2 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE Table
- 26.4.3 The INFORMATION_SCHEMA INNODB_BUFFER_PAGE_LRU Table
- 26.4.4 The INFORMATION_SCHEMA INNODB_BUFFER_POOL_STATS Table
- 26.4.5 The INFORMATION_SCHEMA INNODB_CACHED_INDEXES Table
- 26.4.6 The INFORMATION_SCHEMA INNODB_CMP and INNODB_CMP_RESET Tables
- 26.4.7 The INFORMATION_SCHEMA INNODB_CMPMEM and INNODB_CMPMEM_RESET Tables
- 26.4.8 The INFORMATION_SCHEMA INNODB_CMP_PER_INDEX and INNODB_CMP_PER_INDEX_RESET Tables
- 26.4.9 The INFORMATION_SCHEMA INNODB_COLUMNS Table
- 26.4.10 The INFORMATION_SCHEMA INNODB_DATAFILES Table
- 26.4.11 The INFORMATION_SCHEMA INNODB_FIELDS Table
- 26.4.12 The INFORMATION_SCHEMA INNODB_FOREIGN Table
- 26.4.13 The INFORMATION_SCHEMA INNODB_FOREIGN_COLS Table
- 26.4.14 The INFORMATION_SCHEMA INNODB_FT_BEING_DELETED Table
- 26.4.15 The INFORMATION_SCHEMA INNODB_FT_CONFIG Table
- 26.4.16 The INFORMATION_SCHEMA INNODB_FT_DEFAULT_STOPWORD Table
- 26.4.17 The INFORMATION_SCHEMA INNODB_FT_DELETED Table
- 26.4.18 The INFORMATION_SCHEMA INNODB_FT_INDEX_CACHE Table
- 26.4.19 The INFORMATION_SCHEMA INNODB_FT_INDEX_TABLE Table
- 26.4.20 The INFORMATION_SCHEMA INNODB_INDEXES Table
- 26.4.21 The INFORMATION_SCHEMA INNODB_METRICS Table
- 26.4.22 The INFORMATION_SCHEMA INNODB_SESSION_TEMP_TABLESPACES Table
- 26.4.23 The INFORMATION_SCHEMA INNODB_TABLES Table
- 26.4.24 The INFORMATION_SCHEMA INNODB_TABLESPACES Table
- 26.4.25 The INFORMATION_SCHEMA INNODB_TABLESPACES_BRIEF Table
- 26.4.26 The INFORMATION_SCHEMA INNODB_TABLESTATS View
- 26.4.27 The INFORMATION_SCHEMA INNODB_TEMP_TABLE_INFO Table
- 26.4.28 The INFORMATION_SCHEMA INNODB_TRX Table
- 26.4.29 The INFORMATION_SCHEMA INNODB_VIRTUAL Table
- 26.5 INFORMATION_SCHEMA Thread Pool Tables
- 26.6 INFORMATION_SCHEMA Connection-Control Tables
- 26.7 INFORMATION_SCHEMA MySQL Enterprise Firewall Tables
- 26.8 Extensions to SHOW Statements
- 27 MySQL Performance Schema
- 27.1 Performance Schema Quick Start
- 27.2 Performance Schema Build Configuration
- 27.3 Performance Schema Startup Configuration
- 27.4 Performance Schema Runtime Configuration
- 27.4.1 Performance Schema Event Timing
- 27.4.2 Performance Schema Event Filtering
- 27.4.3 Event Pre-Filtering
- 27.4.4 Pre-Filtering by Instrument
- 27.4.5 Pre-Filtering by Object
- 27.4.6 Pre-Filtering by Thread
- 27.4.7 Pre-Filtering by Consumer
- 27.4.8 Example Consumer Configurations
- 27.4.9 Naming Instruments or Consumers for Filtering Operations
- 27.4.10 Determining What Is Instrumented
- 27.5 Performance Schema Queries
- 27.6 Performance Schema Instrument Naming Conventions
- 27.7 Performance Schema Status Monitoring
- 27.8 Performance Schema Atom and Molecule Events
- 27.9 Performance Schema Tables for Current and Historical Events
- 27.10 Performance Schema Statement Digests and Sampling
- 27.11 Performance Schema General Table Characteristics
- 27.12 Performance Schema Table Descriptions
- 27.12.1 Performance Schema Table Reference
- 27.12.2 Performance Schema Setup Tables
- 27.12.3 Performance Schema Instance Tables
- 27.12.4 Performance Schema Wait Event Tables
- 27.12.5 Performance Schema Stage Event Tables
- 27.12.6 Performance Schema Statement Event Tables
- 27.12.7 Performance Schema Transaction Tables
- 27.12.8 Performance Schema Connection Tables
- 27.12.9 Performance Schema Connection Attribute Tables
- 27.12.10 Performance Schema User-Defined Variable Tables
- 27.12.11 Performance Schema Replication Tables
- 27.12.12 Performance Schema NDB Cluster Tables
- 27.12.13 Performance Schema Lock Tables
- 27.12.14 Performance Schema System Variable Tables
- 27.12.15 Performance Schema Status Variable Tables
- 27.12.16 Performance Schema Thread Pool Tables
- 27.12.17 Performance Schema Firewall Tables
- 27.12.18 Performance Schema Keyring Tables
- 27.12.19 Performance Schema Clone Tables
- 27.12.20 Performance Schema Summary Tables
- 27.12.21 Performance Schema Miscellaneous Tables
- 27.13 Performance Schema Option and Variable Reference
- 27.14 Performance Schema Command Options
- 27.15 Performance Schema System Variables
- 27.16 Performance Schema Status Variables
- 27.17 The Performance Schema Memory-Allocation Model
- 27.18 Performance Schema and Plugins
- 27.19 Using the Performance Schema to Diagnose Problems
- 27.20 Restrictions on Performance Schema
- 28 MySQL sys Schema
- 29 Connectors and APIs
- 30 MySQL Enterprise Edition
- 30.1 MySQL Enterprise Monitor Overview
- 30.2 MySQL Enterprise Backup Overview
- 30.3 MySQL Enterprise Security Overview
- 30.4 MySQL Enterprise Encryption Overview
- 30.5 MySQL Enterprise Audit Overview
- 30.6 MySQL Enterprise Firewall Overview
- 30.7 MySQL Enterprise Thread Pool Overview
- 30.8 MySQL Enterprise Data Masking and De-Identification Overview
- 31 MySQL Workbench
- 32 MySQL on the OCI Marketplace
- A MySQL 8.0 Frequently Asked Questions
- A.1 MySQL 8.0 FAQ: General
- A.2 MySQL 8.0 FAQ: Storage Engines
- A.3 MySQL 8.0 FAQ: Server SQL Mode
- A.4 MySQL 8.0 FAQ: Stored Procedures and Functions
- A.5 MySQL 8.0 FAQ: Triggers
- A.6 MySQL 8.0 FAQ: Views
- A.7 MySQL 8.0 FAQ: INFORMATION_SCHEMA
- A.8 MySQL 8.0 FAQ: Migration
- A.9 MySQL 8.0 FAQ: Security
- A.10 MySQL 8.0 FAQ: NDB Cluster
- A.11 MySQL 8.0 FAQ: MySQL Chinese, Japanese, and Korean Character Sets
- A.12 MySQL 8.0 FAQ: Connectors & APIs
- A.13 MySQL 8.0 FAQ: C API, libmysql
- A.14 MySQL 8.0 FAQ: Replication
- A.15 MySQL 8.0 FAQ: MySQL Enterprise Thread Pool
- A.16 MySQL 8.0 FAQ: InnoDB Change Buffer
- A.17 MySQL 8.0 FAQ: InnoDB Data-at-Rest Encryption
- A.18 MySQL 8.0 FAQ: Virtualization Support
- B Error Messages and Common Problems
- C Indexes
- MySQL Glossary
PDF (A4) - 42.7Mb
Man Pages (TGZ) - 270.1Kb
Man Pages (Zip) - 379.8Kb
Info (Gzip) - 4.1Mb
Info (Zip) - 4.1Mb
MySQL Globalization
MySQL Information Schema
MySQL Installation Guide
Security in MySQL
Starting and Stopping MySQL
MySQL and Linux/Unix
MySQL and Windows
MySQL and macOS
MySQL and Solaris
Building MySQL from Source
MySQL Restrictions and Limitations
MySQL Partitioning
MySQL Tutorial
MySQL Performance Schema
MySQL Replication
Using the MySQL Yum Repository
MySQL NDB Cluster 8.0