MySQL 5.5 Reference Manual

Including MySQL Cluster NDB 7.2 Reference Guide


This is the MySQL™ Reference Manual. It documents MySQL 5.5 through 5.5.21, as well as MySQL Cluster releases based on version 7.2 of NDBCLUSTER through 5.5.17-ndb-7.2.4.

MySQL 5.5 features.  This manual describes features that are not included in every edition of MySQL 5.5; such features may not be included in the edition of MySQL 5.5 licensed to you. If you have any questions about the features included in your edition of MySQL 5.5, refer to your MySQL 5.5 license agreement or contact your Oracle sales representative.

Document generated on: 2011-12-19 (revision: 28449)

For legal information, see the Legal Notice.

Table of Contents

Preface and Legal Notice
1. General Information
1.1. About This Manual
1.2. Typographical and Syntax Conventions
1.3. Overview of the MySQL Database Management System
1.3.1. What is MySQL?
1.3.2. History of MySQL
1.3.3. The Main Features of MySQL
1.4. What Is New in MySQL 5.5
1.4.1. Scalability Improvements
1.4.2. InnoDB I/O Subsystem Changes
1.4.3. Diagnostic and Monitoring Capabilities
1.4.4. Enhanced Solaris Support
1.5. MySQL Development History
1.6. MySQL Information Sources
1.6.1. MySQL Mailing Lists
1.6.2. MySQL Community Support at the MySQL Forums
1.6.3. MySQL Community Support on Internet Relay Chat (IRC)
1.6.4. MySQL Enterprise
1.7. How to Report Bugs or Problems
1.8. MySQL Standards Compliance
1.8.1. What Standards MySQL Follows
1.8.2. Selecting SQL Modes
1.8.3. Running MySQL in ANSI Mode
1.8.4. MySQL Extensions to Standard SQL
1.8.5. MySQL Differences from Standard SQL
1.8.6. How MySQL Deals with Constraints
1.9. Credits
1.9.1. Contributors to MySQL
1.9.2. Documenters and translators
1.9.3. Packages that support MySQL
1.9.4. Tools that were used to create MySQL
1.9.5. Supporters of MySQL
2. Installing and Upgrading MySQL
2.1. General Installation Guidance
2.1.1. Operating Systems Supported by MySQL Community Server
2.1.2. Choosing Which MySQL Distribution to Install
2.1.3. How to Get MySQL
2.1.4. Verifying Package Integrity Using MD5 Checksums or GnuPG
2.1.5. Installation Layouts
2.1.6. Compiler-Specific Build Characteristics
2.2. Installing MySQL from Generic Binaries on Unix/Linux
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. Installing MySQL on Microsoft Windows Using MySQL Installer
2.3.4. Installing MySQL on Microsoft Windows Using an MSI Package
2.3.5. MySQL Server Instance Configuration Wizard
2.3.6. Installing MySQL on Microsoft Windows Using a noinstall Zip Archive
2.3.7. Troubleshooting a MySQL Installation Under Windows
2.3.8. Upgrading MySQL on Windows
2.3.9. Windows Postinstallation Procedures
2.4. Installing MySQL on Mac OS X
2.4.1. General Notes on Installing MySQL on Mac OS X
2.4.2. Installing MySQL on Mac OS X Using Native Packages
2.4.3. Installing the MySQL Startup Item
2.4.4. Installing and Using the MySQL Preference Pane
2.4.5. Using the Bundled MySQL on Mac OS X Server
2.5. Installing MySQL on Linux
2.5.1. Installing MySQL from RPM Packages on Linux
2.5.2. Installing MySQL on Linux using Native Package Manager
2.6. Installing MySQL on Solaris and OpenSolaris
2.6.1. Installing MySQL on Solaris using a Solaris PKG
2.6.2. Installing MySQL on OpenSolaris using IPS
2.7. Installing MySQL on HP-UX
2.7.1. General Notes on Installing MySQL on HP-UX
2.7.2. Installing MySQL on HP-UX using DEPOT
2.8. Installing MySQL on FreeBSD
2.9. Installing MySQL from Source
2.9.1. MySQL Layout for Source Installation
2.9.2. Installing MySQL from a Standard Source Distribution
2.9.3. Installing MySQL from a Development Source Tree
2.9.4. MySQL Source-Configuration Options
2.9.5. Dealing with Problems Compiling MySQL
2.9.6. MySQL Configuration and Third-Party Tools
2.10. Postinstallation Setup and Testing
2.10.1. Unix Postinstallation Procedures
2.10.2. Securing the Initial MySQL Accounts
2.11. Upgrading or Downgrading MySQL
2.11.1. Upgrading MySQL
2.11.2. Downgrading MySQL
2.11.3. Checking Whether Tables or Indexes Must Be Rebuilt
2.11.4. Rebuilding or Repairing Tables or Indexes
2.11.5. Copying MySQL Databases to Another Machine
2.12. Environment Variables
2.13. Perl Installation Notes
2.13.1. Installing Perl on Unix
2.13.2. Installing ActiveState Perl on Windows
2.13.3. Problems Using the Perl DBI/DBD Interface
3. Tutorial
3.1. Connecting to and Disconnecting from the Server
3.2. Entering Queries
3.3. Creating and Using a Database
3.3.1. Creating and Selecting a Database
3.3.2. Creating a Table
3.3.3. Loading Data into a Table
3.3.4. Retrieving Information from a Table
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.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. Connecting to the MySQL Server
4.2.3. Specifying Program Options
4.2.4. Setting Environment Variables
4.3. MySQL Server and Server-Startup Programs
4.3.1. mysqld — The MySQL Server
4.3.2. mysqld_safe — MySQL Server Startup Script
4.3.3. mysql.server — MySQL Server Startup Script
4.3.4. mysqld_multi — Manage Multiple MySQL Servers
4.4. MySQL Installation-Related Programs
4.4.1. comp_err — Compile MySQL Error Message File
4.4.2. mysqlbug — Generate Bug Report
4.4.3. mysql_install_db — Initialize MySQL Data Directory
4.4.4. mysql_plugin — Configure MySQL Server Plugins
4.4.5. mysql_secure_installation — Improve MySQL Installation Security
4.4.6. mysql_tzinfo_to_sql — Load the Time Zone Tables
4.4.7. mysql_upgrade — Check Tables for MySQL Upgrade
4.5. MySQL Client Programs
4.5.1. mysql — The MySQL Command-Line Tool
4.5.2. mysqladmin — Client for Administering a MySQL Server
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. mysqlshow — Display Database, Table, and Column Information
4.5.7. mysqlslap — Load Emulation Client
4.6. MySQL Administrative and Utility Programs
4.6.1. innochecksum — Offline InnoDB File Checksum Utility
4.6.2. myisam_ftdump — Display Full-Text Index information
4.6.3. myisamchk — MyISAM Table-Maintenance Utility
4.6.4. myisamlog — Display MyISAM Log File Contents
4.6.5. myisampack — Generate Compressed, Read-Only MyISAM Tables
4.6.6. mysqlaccess — Client for Checking Access Privileges
4.6.7. mysqlbinlog — Utility for Processing Binary Log Files
4.6.8. mysqldumpslow — Summarize Slow Query Log Files
4.6.9. mysqlhotcopy — A Database Backup Program
4.6.10. mysql_convert_table_format — Convert Tables to Use a Given Storage Engine
4.6.11. mysql_find_rows — Extract SQL Statements from Files
4.6.12. mysql_fix_extensions — Normalize Table File Name Extensions
4.6.13. mysql_setpermission — Interactively Set Permissions in Grant Tables
4.6.14. mysql_waitpid — Kill Process and Wait for Its Termination
4.6.15. mysql_zap — Kill Processes That Match a Pattern
4.7. MySQL Program Development Utilities
4.7.1. msql2mysql — Convert mSQL Programs for Use with MySQL
4.7.2. mysql_config — Get Compile Options for Compiling Clients
4.7.3. my_print_defaults — Display Options from Option Files
4.7.4. resolve_stack_dump — Resolve Numeric Stack Trace Dump to Symbols
4.8. Miscellaneous Programs
4.8.1. perror — Explain Error Codes
4.8.2. replace — A String-Replacement Utility
4.8.3. resolveip — Resolve Host name to IP Address or Vice Versa
5. MySQL Server Administration
5.1. The MySQL Server
5.1.1. Server Option and Variable Reference
5.1.2. Server Command Options
5.1.3. Server System Variables
5.1.4. Using System Variables
5.1.5. Server Status Variables
5.1.6. Server SQL Modes
5.1.7. Server Plugins
5.1.8. Server-Side Help
5.1.9. Server Response to Signals
5.1.10. The Shutdown Process
5.2. MySQL Server Logs
5.2.1. Selecting General Query and Slow Query Log Output Destinations
5.2.2. The Error Log
5.2.3. The General Query Log
5.2.4. The Binary Log
5.2.5. The Slow Query Log
5.2.6. Server Log Maintenance
5.3. General Security Issues
5.3.1. General Security Guidelines
5.3.2. Password Security in MySQL
5.3.3. Making MySQL Secure Against Attackers
5.3.4. Security-Related mysqld Options
5.3.5. Security Issues with LOAD DATA LOCAL
5.3.6. How to Run MySQL as a Normal User
5.4. The MySQL Access Privilege System
5.4.1. Privileges Provided by MySQL
5.4.2. Privilege System Grant Tables
5.4.3. Specifying Account Names
5.4.4. Access Control, Stage 1: Connection Verification
5.4.5. Access Control, Stage 2: Request Verification
5.4.6. When Privilege Changes Take Effect
5.4.7. Causes of Access-Denied Errors
5.5. MySQL User Account Management
5.5.1. User Names and Passwords
5.5.2. Adding User Accounts
5.5.3. Removing User Accounts
5.5.4. Setting Account Resource Limits
5.5.5. Assigning Account Passwords
5.5.6. Pluggable Authentication
5.5.7. Proxy Users
5.5.8. Using SSL for Secure Connections
5.5.9. Connecting to MySQL Remotely from Windows with SSH
5.5.10. Auditing MySQL Account Activity
5.6. Running Multiple MySQL Instances on One Machine
5.6.1. Setting Up Multiple Data Directories
5.6.2. Running Multiple MySQL Instances on Windows
5.6.3. Running Multiple MySQL Instances on Unix
5.6.4. Using Client Programs in a Multiple-Server Environment
5.7. Tracing mysqld Using DTrace
5.7.1. mysqld DTrace Probe Reference
6. Backup and Recovery
6.1. Backup and Recovery Types
6.2. Database Backup Methods
6.3. Example Backup and Recovery Strategy
6.3.1. Establishing a Backup Policy
6.3.2. Using Backups for Recovery
6.3.3. Backup Strategy Summary
6.4. Using mysqldump for Backups
6.4.1. Dumping Data in SQL Format with mysqldump
6.4.2. Reloading SQL-Format Backups
6.4.3. Dumping Data in Delimited-Text Format with mysqldump
6.4.4. Reloading Delimited-Text Format Backups
6.4.5. mysqldump Tips
6.5. Point-in-Time (Incremental) Recovery Using the Binary Log
6.5.1. Point-in-Time Recovery Using Event Times
6.5.2. Point-in-Time Recovery Using Event Positions
6.6. MyISAM Table Maintenance and Crash Recovery
6.6.1. Using myisamchk for Crash Recovery
6.6.2. How to Check MyISAM Tables for Errors
6.6.3. How to Repair MyISAM Tables
6.6.4. MyISAM Table Optimization
6.6.5. Setting Up a MyISAM Table Maintenance Schedule
7. Optimization
7.1. Optimization Overview
7.2. Optimizing SQL Statements
7.2.1. Optimizing SELECT Statements
7.2.2. Optimizing DML Statements
7.2.3. Optimizing Database Privileges
7.2.4. Optimizing INFORMATION_SCHEMA Queries
7.2.5. Other Optimization Tips
7.3. Optimization and Indexes
7.3.1. How MySQL Uses Indexes
7.3.2. Using Primary Keys
7.3.3. Using Foreign Keys
7.3.4. Column Indexes
7.3.5. Multiple-Column Indexes
7.3.6. Verifying Index Usage
7.3.7. InnoDB and MyISAM Index Statistics Collection
7.3.8. Comparison of B-Tree and Hash Indexes
7.4. Optimizing Database Structure
7.4.1. Optimizing Data Size
7.4.2. Optimizing MySQL Data Types
7.4.3. Optimizing for Many Tables
7.5. Optimizing for InnoDB Tables
7.5.1. Optimizing Storage Layout for InnoDB Tables
7.5.2. Optimizing InnoDB Transaction Management
7.5.3. Optimizing InnoDB Logging
7.5.4. Bulk Data Loading for InnoDB Tables
7.5.5. Optimizing InnoDB Queries
7.5.6. Optimizing InnoDB DDL Operations
7.5.7. Optimizing InnoDB Disk I/O
7.5.8. Optimizing InnoDB Configuration Variables
7.5.9. Optimizing InnoDB for Systems with Many Tables
7.6. Optimizing for MyISAM Tables
7.6.1. Optimizing MyISAM Queries
7.6.2. Bulk Data Loading for MyISAM Tables
7.6.3. Speed of REPAIR TABLE Statements
7.7. Optimizing for MEMORY Tables
7.8. Understanding the Query Execution Plan
7.8.1. Optimizing Queries with EXPLAIN
7.8.2. EXPLAIN Output Format
7.8.3. Estimating Query Performance
7.8.4. Controlling the Query Optimizer
7.9. Buffering and Caching
7.9.1. The InnoDB Buffer Pool
7.9.2. The MyISAM Key Cache
7.9.3. The MySQL Query Cache
7.10. Optimizing Locking Operations
7.10.1. Internal Locking Methods
7.10.2. Table Locking Issues
7.10.3. Concurrent Inserts
7.10.4. Metadata Locking Within Transactions
7.10.5. External Locking
7.11. Optimizing the MySQL Server
7.11.1. System Factors and Startup Parameter Tuning
7.11.2. Tuning Server Parameters
7.11.3. Optimizing Disk I/O
7.11.4. Optimizing Memory Use
7.11.5. Optimizing Network Use
7.11.6. The Thread Pool Plugin
7.12. Measuring Performance (Benchmarking)
7.12.1. Measuring the Speed of Expressions and Functions
7.12.2. The MySQL Benchmark Suite
7.12.3. Using Your Own Benchmarks
7.12.4. Measuring Performance with performance_schema
7.12.5. Examining Thread Information
7.13. Internal Details of MySQL Optimizations
7.13.1. Range Optimization
7.13.2. Index Merge Optimization
7.13.3. Engine Condition Pushdown Optimization
7.13.4. IS NULL Optimization
7.13.5. LEFT JOIN and RIGHT JOIN Optimization
7.13.6. Nested-Loop Join Algorithms
7.13.7. Nested Join Optimization
7.13.8. Outer Join Simplification
7.13.9. ORDER BY Optimization
7.13.10. GROUP BY Optimization
7.13.11. DISTINCT Optimization
7.13.12. Optimizing IN/=ANY Subqueries
8. Language Structure
8.1. Literal Values
8.1.1. String Literals
8.1.2. Number Literals
8.1.3. Date and Time Literals
8.1.4. Hexadecimal Literals
8.1.5. Boolean Literals
8.1.6. Bit-Field Literals
8.1.7. NULL Values
8.2. Schema Object Names
8.2.1. Identifier Qualifiers
8.2.2. Identifier Case Sensitivity
8.2.3. Mapping of Identifiers to File Names
8.2.4. Function Name Parsing and Resolution
8.3. Reserved Words
8.4. User-Defined Variables
8.5. Expression Syntax
8.6. Comment Syntax
9. Globalization
9.1. Character Set Support
9.1.1. Character Sets and Collations in General
9.1.2. Character Sets and Collations in MySQL
9.1.3. Specifying Character Sets and Collations
9.1.4. Connection Character Sets and Collations
9.1.5. Configuring the Character Set and Collation for Applications
9.1.6. Character Set for Error Messages
9.1.7. Collation Issues
9.1.8. String Repertoire
9.1.9. Operations Affected by Character Set Support
9.1.10. Unicode Support
9.1.11. Upgrading from Previous to Current Unicode Support
9.1.12. UTF-8 for Metadata
9.1.13. Column Character Set Conversion
9.1.14. Character Sets and Collations That MySQL Supports
9.2. Setting the Error Message Language
9.3. Adding a Character Set
9.3.1. Character Definition Arrays
9.3.2. String Collating Support for Complex Character Sets
9.3.3. Multi-Byte Character Support for Complex Character Sets
9.4. Adding a Collation to a Character Set
9.4.1. Collation Implementation Types
9.4.2. Choosing a Collation ID
9.4.3. Adding a Simple Collation to an 8-Bit Character Set
9.4.4. Adding a UCA Collation to a Unicode Character Set
9.5. Character Set Configuration
9.6. MySQL Server Time Zone Support
9.6.1. Staying Current with Time Zone Changes
9.6.2. Time Zone Leap Second Support
9.7. MySQL Server Locale Support
10. Data Types
10.1. Data Type Overview
10.1.1. Numeric Type Overview
10.1.2. Date and Time Type Overview
10.1.3. String Type Overview
10.1.4. Data Type Default Values
10.2. Numeric Types
10.2.1. Integer Types (Exact Value)
10.2.2. Fixed-Point Types (Exact Value)
10.2.3. Floating-Point Types (Approximate Value)
10.2.4. Bit-Value Type
10.2.5. Numeric Type Attributes
10.2.6. Out-of-Range and Overflow Handling
10.3. Date and Time Types
10.3.1. The DATE, DATETIME, and TIMESTAMP Types
10.3.2. The TIME Type
10.3.3. The YEAR Type
10.3.4. Fractional Seconds in Time Values
10.3.5. Conversion Between Date and Time Types
10.3.6. Two-Digit Years in Dates
10.4. String Types
10.4.1. The CHAR and VARCHAR Types
10.4.2. The BINARY and VARBINARY Types
10.4.3. The BLOB and TEXT Types
10.4.4. The ENUM Type
10.4.5. The SET Type
10.5. Data Type Storage Requirements
10.6. Choosing the Right Type for a Column
10.7. Using Data Types from Other Database Engines
11. Functions and Operators
11.1. Function and Operator Reference
11.2. Type Conversion in Expression Evaluation
11.3. Operators
11.3.1. Operator Precedence
11.3.2. Comparison Functions and Operators
11.3.3. Logical Operators
11.3.4. Assignment Operators
11.4. Control Flow Functions
11.5. String Functions
11.5.1. String Comparison Functions
11.5.2. Regular Expressions
11.6. Numeric Functions and Operators
11.6.1. Arithmetic Operators
11.6.2. Mathematical Functions
11.7. Date and Time Functions
11.8. What Calendar Is Used By MySQL?
11.9. Full-Text Search Functions
11.9.1. Natural Language Full-Text Searches
11.9.2. Boolean Full-Text Searches
11.9.3. Full-Text Searches with Query Expansion
11.9.4. Full-Text Stopwords
11.9.5. Full-Text Restrictions
11.9.6. Fine-Tuning MySQL Full-Text Search
11.9.7. Adding a Collation for Full-Text Indexing
11.10. Cast Functions and Operators
11.11. XML Functions
11.12. Bit Functions
11.13. Encryption and Compression Functions
11.14. Information Functions
11.15. Miscellaneous Functions
11.16. Functions and Modifiers for Use with GROUP BY Clauses
11.16.1. GROUP BY (Aggregate) Functions
11.16.2. GROUP BY Modifiers
11.16.3. GROUP BY and HAVING with Hidden Columns
11.17. Spatial Extensions
11.17.1. Introduction to MySQL Spatial Support
11.17.2. The OpenGIS Geometry Model
11.17.3. Supported Spatial Data Formats
11.17.4. Creating a Spatially Enabled MySQL Database
11.17.5. Spatial Analysis Functions
11.17.6. Optimizing Spatial Analysis
11.17.7. MySQL Conformance and Compatibility
11.18. Precision Math
11.18.1. Types of Numeric Values
11.18.2. DECIMAL Data Type Changes
11.18.3. Expression Handling
11.18.4. Rounding Behavior
11.18.5. Precision Math Examples
12. SQL Statement Syntax
12.1. Data Definition Statements
12.1.1. ALTER DATABASE Syntax
12.1.2. ALTER EVENT Syntax
12.1.4. ALTER FUNCTION Syntax
12.1.5. ALTER PROCEDURE Syntax
12.1.6. ALTER SERVER Syntax
12.1.7. ALTER TABLE Syntax
12.1.9. ALTER VIEW Syntax
12.1.10. CREATE DATABASE Syntax
12.1.11. CREATE EVENT Syntax
12.1.12. The CREATE FUNCTION Statement
12.1.13. CREATE INDEX Syntax
12.1.16. CREATE SERVER Syntax
12.1.17. CREATE TABLE Syntax
12.1.19. CREATE TRIGGER Syntax
12.1.20. CREATE VIEW Syntax
12.1.21. DROP DATABASE Syntax
12.1.22. DROP EVENT Syntax
12.1.23. DROP FUNCTION Syntax
12.1.24. DROP INDEX Syntax
12.1.25. DROP LOGFILE GROUP Syntax
12.1.27. DROP SERVER Syntax
12.1.28. DROP TABLE Syntax
12.1.29. DROP TABLESPACE Syntax
12.1.30. DROP TRIGGER Syntax
12.1.31. DROP VIEW Syntax
12.1.32. RENAME TABLE Syntax
12.1.33. TRUNCATE TABLE Syntax
12.2. Data Manipulation Statements
12.2.1. CALL Syntax
12.2.2. DELETE Syntax
12.2.3. DO Syntax
12.2.4. HANDLER Syntax
12.2.5. INSERT Syntax
12.2.6. LOAD DATA INFILE Syntax
12.2.7. LOAD XML Syntax
12.2.8. REPLACE Syntax
12.2.9. SELECT Syntax
12.2.10. Subquery Syntax
12.2.11. UPDATE Syntax
12.3. MySQL Transactional and Locking Statements
12.3.2. Statements That Cannot Be Rolled Back
12.3.3. Statements That Cause an Implicit Commit
12.3.6. SET TRANSACTION Syntax
12.3.7. XA Transactions
12.4. Replication Statements
12.4.1. SQL Statements for Controlling Master Servers
12.4.2. SQL Statements for Controlling Slave Servers
12.5. SQL Syntax for Prepared Statements
12.5.1. PREPARE Syntax
12.5.2. EXECUTE Syntax
12.5.4. Automatic Prepared Statement Repreparation
12.6. MySQL Compound-Statement Syntax
12.6.1. BEGIN ... END Compound-Statement Syntax
12.6.2. Statement Label Syntax
12.6.3. DECLARE Syntax
12.6.4. Variables in Stored Programs
12.6.5. Flow Control Statements
12.6.6. Cursors
12.6.7. Condition Handling
12.7. Database Administration Statements
12.7.1. Account Management Statements
12.7.2. Table Maintenance Statements
12.7.3. Plugin and User-Defined Function Statements
12.7.4. SET Syntax
12.7.5. SHOW Syntax
12.7.6. Other Administrative Statements
12.8. MySQL Utility Statements
12.8.1. DESCRIBE Syntax
12.8.2. EXPLAIN Syntax
12.8.3. HELP Syntax
12.8.4. USE Syntax
13. Storage Engines
13.1. Setting the Storage Engine
13.2. Overview of MySQL Storage Engine Architecture
13.2.1. Pluggable Storage Engine Architecture
13.2.2. The Common Database Server Layer
13.3. The InnoDB Storage Engine
13.3.1. InnoDB as the Default MySQL Storage Engine
13.3.2. Configuring InnoDB
13.3.3. Using Per-Table Tablespaces
13.3.4. InnoDB Startup Options and System Variables
13.3.5. Creating and Using InnoDB Tables
13.3.6. Adding, Removing, or Resizing InnoDB Data and Log Files
13.3.7. Backing Up and Recovering an InnoDB Database
13.3.8. Moving an InnoDB Database to Another Machine
13.3.9. The InnoDB Transaction Model and Locking
13.3.10. InnoDB Multi-Versioning
13.3.11. InnoDB Table and Index Structures
13.3.12. InnoDB Disk I/O and File Space Management
13.3.13. InnoDB Error Handling
13.3.14. InnoDB Performance Tuning and Troubleshooting
13.3.15. Limits on InnoDB Tables
13.4. New Features of InnoDB 1.1
13.4.1. Introduction to InnoDB 1.1
13.4.2. Fast Index Creation in the InnoDB Storage Engine
13.4.3. InnoDB Data Compression
13.4.4. InnoDB File-Format Management
13.4.5. How InnoDB Stores Variable-Length Columns
13.4.6. InnoDB INFORMATION_SCHEMA tables
13.4.7. InnoDB Performance and Scalability Enhancements
13.4.8. Changes for Flexibility, Ease of Use and Reliability
13.4.9. Installing the InnoDB Storage Engine
13.4.10. Upgrading the InnoDB Storage Engine
13.4.11. Downgrading the InnoDB Storage Engine
13.4.12. InnoDB Storage Engine Change History
13.4.13. Third-Party Software
13.4.14. List of Parameters Changed in InnoDB 1.1 and InnoDB Plugin 1.0
13.5. The MyISAM Storage Engine
13.5.1. MyISAM Startup Options
13.5.2. Space Needed for Keys
13.5.3. MyISAM Table Storage Formats
13.5.4. MyISAM Table Problems
13.6. The MEMORY Storage Engine
13.7. The CSV Storage Engine
13.7.1. Repairing and Checking CSV Tables
13.7.2. CSV Limitations
13.8. The ARCHIVE Storage Engine
13.9. The BLACKHOLE Storage Engine
13.10. The MERGE Storage Engine
13.10.1. MERGE Table Advantages and Disadvantages
13.10.2. MERGE Table Problems
13.11. The FEDERATED Storage Engine
13.11.1. FEDERATED Storage Engine Overview
13.11.2. How to Create FEDERATED Tables
13.11.3. FEDERATED Storage Engine Notes and Tips
13.11.4. FEDERATED Storage Engine Resources
13.12. The EXAMPLE Storage Engine
13.13. Other Storage Engines
14. High Availability and Scalability
14.1. Oracle VM Template for MySQL Enterprise Edition
14.2. Using MySQL with DRBD
14.2.1. Configuring the DRBD Environment
14.2.2. Configuring MySQL for DRBD
14.2.3. Optimizing Performance and Reliability
14.3. Using Linux HA Heartbeat
14.3.1. Heartbeat Configuration
14.3.2. Using Heartbeat with MySQL and DRBD
14.3.3. Using Heartbeat with DRBD and dopd
14.3.4. Dealing with System Level Errors
14.4. Using MySQL within an Amazon EC2 Instance
14.4.1. Setting Up MySQL on an EC2 AMI
14.4.2. EC2 Instance Limitations
14.4.3. Deploying a MySQL Database Using EC2
14.5. Using ZFS Replication
14.5.1. Using ZFS for File System Replication
14.5.2. Configuring MySQL for ZFS Replication
14.5.3. Handling MySQL Recovery with ZFS
14.6. Using MySQL with memcached
14.6.1. Installing memcached
14.6.2. Using memcached
14.6.3. memcached Interfaces
14.6.4. Getting memcached Statistics
14.6.5. memcached FAQ
14.7. MySQL Proxy
14.7.1. MySQL Proxy Supported Platforms
14.7.2. Installing MySQL Proxy
14.7.3. MySQL Proxy Command Options
14.7.4. MySQL Proxy Scripting
14.7.5. Using MySQL Proxy
14.7.6. MySQL Proxy FAQ
15. Replication
15.1. Replication Configuration
15.1.1. How to Set Up Replication
15.1.2. Replication Formats
15.1.3. Replication and Binary Logging Options and Variables
15.1.4. Common Replication Administration Tasks
15.2. Replication Implementation
15.2.1. Replication Implementation Details
15.2.2. Replication Relay and Status Logs
15.2.3. How Servers Evaluate Replication Filtering Rules
15.3. Replication Solutions
15.3.1. Using Replication for Backups
15.3.2. Using Replication with Different Master and Slave Storage Engines
15.3.3. Using Replication for Scale-Out
15.3.4. Replicating Different Databases to Different Slaves
15.3.5. Improving Replication Performance
15.3.6. Switching Masters During Failover
15.3.7. Setting Up Replication Using SSL
15.3.8. Semisynchronous Replication
15.4. Replication Notes and Tips
15.4.1. Replication Features and Issues
15.4.2. Replication Compatibility Between MySQL Versions
15.4.3. Upgrading a Replication Setup
15.4.4. Replication FAQ
15.4.5. Troubleshooting Replication
15.4.6. How to Report Replication Bugs or Problems
16. MySQL Cluster NDB 7.2
16.1. MySQL Cluster Overview
16.1.1. MySQL Cluster Core Concepts
16.1.2. MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
16.1.3. MySQL Cluster Hardware, Software, and Networking Requirements
16.1.4. MySQL Cluster Development History
16.1.5. MySQL Server using InnoDB Compared with MySQL Cluster
16.1.6. Known Limitations of MySQL Cluster
16.2. MySQL Cluster Installation
16.2.1. Installing MySQL Cluster on Linux
16.2.2. Installing MySQL Cluster on Windows
16.2.3. Initial Configuration of MySQL Cluster
16.2.4. Initial Startup of MySQL Cluster
16.2.5. MySQL Cluster Example with Tables and Data
16.2.6. Safe Shutdown and Restart of MySQL Cluster
16.3. MySQL Cluster Configuration
16.3.1. Quick Test Setup of MySQL Cluster
16.3.2. MySQL Cluster Configuration Files
16.3.3. Overview of MySQL Cluster Configuration Parameters
16.3.4. MySQL Server Options and Variables for MySQL Cluster
16.3.5. Using High-Speed Interconnects with MySQL Cluster
16.4. MySQL Cluster Programs
16.4.1. MySQL Server Usage for MySQL Cluster
16.4.2. ndbd — The MySQL Cluster Data Node Daemon
16.4.3. ndbmtd — The MySQL Cluster Data Node Daemon (Multi-Threaded)
16.4.4. ndb_mgmd — The MySQL Cluster Management Server Daemon
16.4.5. ndb_mgm — The MySQL Cluster Management Client
16.4.6. ndb_config — Extract MySQL Cluster Configuration Information
16.4.7. ndb_cpcd — Automate Testing for NDB Development
16.4.8. ndb_delete_all — Delete All Rows from an NDB Table
16.4.9. ndb_desc — Describe NDB Tables
16.4.10. ndb_drop_index — Drop Index from an NDB Table
16.4.11. ndb_drop_table — Drop an NDB Table
16.4.12. ndb_error_reporter — NDB Error-Reporting Utility
16.4.13. ndb_print_backup_file — Print NDB Backup File Contents
16.4.14. ndb_print_schema_file — Print NDB Schema File Contents
16.4.15. ndb_print_sys_file — Print NDB System File Contents
16.4.16. ndbd_redo_log_reader — Check and Print Content of Cluster Redo Log
16.4.17. ndb_restore — Restore a MySQL Cluster Backup
16.4.18. ndb_select_all — Print Rows from an NDB Table
16.4.19. ndb_select_count — Print Row Counts for NDB Tables
16.4.20. ndb_show_tables — Display List of NDB Tables
16.4.21. — NDBCLUSTER Size Requirement Estimator
16.4.22. ndb_waiter — Wait for MySQL Cluster to Reach a Given Status
16.4.23. Options Common to MySQL Cluster Programs
16.5. Management of MySQL Cluster
16.5.1. Summary of MySQL Cluster Start Phases
16.5.2. Commands in the MySQL Cluster Management Client
16.5.3. Online Backup of MySQL Cluster
16.5.4. Performing a Rolling Restart of a MySQL Cluster
16.5.5. Event Reports Generated in MySQL Cluster
16.5.6. MySQL Cluster Log Messages
16.5.7. MySQL Cluster Single User Mode
16.5.8. Quick Reference: MySQL Cluster SQL Statements
16.5.9. The ndbinfo MySQL Cluster Information Database
16.5.10. MySQL Cluster Security Issues
16.5.11. MySQL Cluster Disk Data Tables
16.5.12. Adding MySQL Cluster Data Nodes Online
16.5.13. Distributed MySQL Privileges for MySQL Cluster
16.5.14. NDB API Statistics Counters and Variables
16.6. MySQL Cluster Replication
16.6.1. MySQL Cluster Replication: Abbreviations and Symbols
16.6.2. General Requirements for MySQL Cluster Replication
16.6.3. Known Issues in MySQL Cluster Replication
16.6.4. MySQL Cluster Replication Schema and Tables
16.6.5. Preparing the MySQL Cluster for Replication
16.6.6. Starting MySQL Cluster Replication (Single Replication Channel)
16.6.7. Using Two Replication Channels for MySQL Cluster Replication
16.6.8. Implementing Failover with MySQL Cluster Replication
16.6.9. MySQL Cluster Backups With MySQL Cluster Replication
16.6.10. MySQL Cluster Replication: Multi-Master and Circular Replication
16.6.11. MySQL Cluster Replication Conflict Resolution
16.7. Changes in MySQL Cluster
16.7.1. Changes in MySQL Cluster NDB 7.2
17. Partitioning
17.1. Overview of Partitioning in MySQL
17.2. Partitioning Types
17.2.1. RANGE Partitioning
17.2.2. LIST Partitioning
17.2.3. COLUMNS Partitioning
17.2.4. HASH Partitioning
17.2.5. KEY Partitioning
17.2.6. Subpartitioning
17.2.7. How MySQL Partitioning Handles NULL
17.3. Partition Management
17.3.1. Management of RANGE and LIST Partitions
17.3.2. Management of HASH and KEY Partitions
17.3.3. Maintenance of Partitions
17.3.4. Obtaining Information About Partitions
17.4. Partition Pruning
17.5. Restrictions and Limitations on Partitioning
17.5.1. Partitioning Keys, Primary Keys, and Unique Keys
17.5.2. Partitioning Limitations Relating to Storage Engines
17.5.3. Partitioning Limitations Relating to Functions
18. Stored Programs and Views
18.1. Defining Stored Programs
18.2. Using Stored Routines (Procedures and Functions)
18.2.1. Stored Routine Syntax
18.2.2. Stored Routines and MySQL Privileges
18.2.3. Stored Routine Metadata
18.2.4. Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()
18.3. Using Triggers
18.3.1. Trigger Syntax
18.3.2. Trigger Metadata
18.4. Using the Event Scheduler
18.4.1. Event Scheduler Overview
18.4.2. Event Scheduler Configuration
18.4.3. Event Syntax
18.4.4. Event Metadata
18.4.5. Event Scheduler Status
18.4.6. The Event Scheduler and MySQL Privileges
18.5. Using Views
18.5.1. View Syntax
18.5.2. View Processing Algorithms
18.5.3. Updatable and Insertable Views
18.5.4. View Metadata
18.6. Access Control for Stored Programs and Views
18.7. Binary Logging of Stored Programs
19.29. INFORMATION_SCHEMA Tables for InnoDB
19.30. Thread Pool INFORMATION_SCHEMA Tables
19.31. Other INFORMATION_SCHEMA Tables
19.32. Extensions to SHOW Statements
20. MySQL Performance Schema
20.1. Performance Schema Quick Start
20.2. Performance Schema Configuration
20.2.1. Performance Schema Build Configuration
20.2.2. Performance Schema Startup Configuration
20.2.3. Performance Schema Runtime Configuration
20.3. Performance Schema Queries
20.4. Performance Schema Instrument Naming Conventions
20.5. Performance Schema Status Monitoring
20.6. Performance Schema General Table Characteristics
20.7. Performance Schema Table Descriptions
20.7.1. Performance Schema Setup Tables
20.7.2. Performance Schema Instance Tables
20.7.3. Performance Schema Wait Event Tables
20.7.4. Performance Schema Summary Tables
20.7.5. Performance Schema Miscellaneous Tables
20.8. Performance Schema System Variables
20.9. Performance Schema Status Variables
20.10. Performance Schema and Plugins
20.11. Using the Performance Schema to Diagnose Problems
21. Connectors and APIs
21.1. MySQL Connector/ODBC
21.1.1. Connector/ODBC Versions
21.1.2. Connector/ODBC Introduction
21.1.3. Connector/ODBC Installation
21.1.4. Connector/ODBC Configuration
21.1.5. Connector/ODBC Examples
21.1.6. Connector/ODBC Reference
21.1.7. Connector/ODBC Notes and Tips
21.1.8. Connector/ODBC Support
21.2. MySQL Connector/Net
21.2.1. Connector/Net Versions
21.2.2. Connector/Net Installation
21.2.3. Connector/Net Visual Studio Integration
21.2.4. Connector/Net Tutorials
21.2.5. Connector/Net Programming
21.2.6. Connector/Net Connection String Options Reference
21.2.7. Connector/Net API Reference
21.2.8. Connector/Net Support
21.2.9. Connector/Net FAQ
21.3. MySQL Connector/J
21.3.1. Connector/J Versions
21.3.2. Connector/J Installation
21.3.3. Connector/J Examples
21.3.4. Connector/J (JDBC) Reference
21.3.5. Connector/J Notes and Tips
21.3.6. Connector/J Support
21.4. MySQL Connector/MXJ
21.4.1. Connector/MXJ Overview
21.4.2. Connector/MXJ Versions
21.4.3. Connector/MXJ Installation
21.4.4. Connector/MXJ Configuration
21.4.5. Connector/MXJ Reference
21.4.6. Connector/MXJ Notes and Tips
21.4.7. Connector/MXJ Samples
21.4.8. Connector/MXJ Support
21.5. MySQL Connector/C++
21.5.1. MySQL Connector/C++ Binary Installation
21.5.2. MySQL Connector/C++ Source Installation
21.5.3. MySQL Connector/C++ Building Windows applications with Microsoft Visual Studio
21.5.4. MySQL Connector/C++ Building Linux applications with NetBeans
21.5.5. MySQL Connector/C++ Getting Started: Usage Examples
21.5.6. MySQL Connector/C++ Tutorials
21.5.7. MySQL Connector/C++ Debug Tracing
21.5.8. MySQL Connector/C++ Usage Notes
21.5.9. MySQL Connector/C++ Known Bugs and Issues
21.5.10. MySQL Connector/C++ Feature requests
21.5.11. MySQL Connector/C++ Support
21.5.12. MySQL Connector/C++ FAQ
21.6. MySQL Connector/C
21.6.1. Building MySQL Connector/C from the Source Code
21.6.2. Testing MySQL Connector/C
21.6.3. MySQL Connector/C FAQ
21.7. MySQL Connector/
21.7.1. Installation
21.7.2. Getting Started: Connecting to MySQL
21.7.3. Getting Started: Usage Examples
21.7.4. References
21.7.5. Known Bugs
21.7.6. Contact
21.8. libmysqld, the Embedded MySQL Server Library
21.8.1. Compiling Programs with libmysqld
21.8.2. Restrictions When Using the Embedded MySQL Server
21.8.3. Options with the Embedded Server
21.8.4. Embedded Server Examples
21.8.5. Licensing the Embedded Server
21.9. MySQL C API
21.9.1. C API Data Structures
21.9.2. C API Function Overview
21.9.3. C API Function Descriptions
21.9.4. C API Prepared Statements
21.9.5. C API Prepared Statement Data Structures
21.9.6. C API Prepared Statement Function Overview
21.9.7. C API Prepared Statement Function Descriptions
21.9.8. C API Threaded Function Descriptions
21.9.9. C API Embedded Server Function Descriptions
21.9.10. C API Client Plugin Functions
21.9.11. Common Questions and Problems When Using the C API
21.9.12. Controlling Automatic Reconnection Behavior
21.9.13. C API Support for Multiple Statement Execution
21.9.14. C API Prepared Statement Problems
21.9.15. C API Prepared Statement Handling of Date and Time Values
21.9.16. C API Support for Prepared CALL Statements
21.9.17. Building Client Programs
21.10. MySQL PHP API
21.10.1. MySQL
21.10.2. MySQL Improved Extension (Mysqli)
21.10.3. MySQL Native Driver (Mysqlnd)
21.10.4. MySQL Functions (PDO_MYSQL)
21.10.5. Connector/PHP
21.10.6. Common Problems with MySQL and PHP
21.10.7. Enabling Both mysql and mysqli in PHP
21.11. MySQL Perl API
21.12. MySQL Python API
21.13. MySQL Ruby APIs
21.13.1. The MySQL/Ruby API
21.13.2. The Ruby/MySQL API
21.14. MySQL Tcl API
21.15. MySQL Eiffel Wrapper
22. Extending MySQL
22.1. MySQL Internals
22.1.1. MySQL Threads
22.1.2. The MySQL Test Suite
22.2. The MySQL Plugin API
22.2.1. Plugin API Characteristics
22.2.2. Plugin API Components
22.2.3. Types of Plugins
22.2.4. Writing Plugins
22.2.5. MySQL Services for Plugins
22.3. Adding New Functions to MySQL
22.3.1. Features of the User-Defined Function Interface
22.3.2. Adding a New User-Defined Function
22.3.3. Adding a New Native Function
22.4. Adding New Procedures to MySQL
22.4.2. Writing a Procedure
22.5. Debugging and Porting MySQL
22.5.1. Debugging a MySQL Server
22.5.2. Debugging a MySQL Client
22.5.3. The DBUG Package
23. MySQL Enterprise Monitor
24. MySQL Enterprise Backup
25. MySQL Workbench
A. Licenses for Third-Party Components
A.1. Ant-Contrib License
A.2. ANTLR 3.3 License
A.3. Boost Library License
A.4. dtoa.c License
A.5. Editline Library (libedit) License
A.6. FindGTest.cmake License
A.7. Fred Fish's Dbug Library License
A.8. getarg License
A.9. GLib License (for MySQL Proxy)
A.10. GNU General Public License Version 2.0, June 1991
A.11. GNU Lesser General Public License Version 2.1, February 1999
A.12. GNU Libtool License
A.13. GNU Readline License
A.14. Google Controlling Master Thread I/O Rate Patch License
A.15. Google Perftools (TCMalloc utility) License
A.16. Google SMP Patch License
A.17. License
A.18. libevent License
A.19. Linux-PAM License
A.20. LPeg Library License
A.21. Lua (liblua) License
A.22. LuaFileSystem Library License
A.23. md5 (Message-Digest Algorithm 5) License
A.24. nt_servc (Windows NT Service class library) License
A.25. OpenPAM License
A.26. PCRE License
A.27. Percona Multiple I/O Threads Patch License
A.28. RegEX-Spencer Library License
A.29. RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License
A.30. Richard A. O'Keefe String Library License
A.31. SHA-1 in C License
A.32. Simple Logging Facade for Java (SLF4J) License
A.33. zlib License
A.34. ZLIB.NET License
B. MySQL 5.5 Frequently Asked Questions
B.1. MySQL 5.5 FAQ: General
B.2. MySQL 5.5 FAQ: Storage Engines
B.3. MySQL 5.5 FAQ: Server SQL Mode
B.4. MySQL 5.5 FAQ: Stored Procedures and Functions
B.5. MySQL 5.5 FAQ: Triggers
B.6. MySQL 5.5 FAQ: Views
B.8. MySQL 5.5 FAQ: Migration
B.9. MySQL 5.5 FAQ: Security
B.10. MySQL 5.5 FAQ: MySQL Cluster
B.11. MySQL 5.5 FAQ: MySQL Chinese, Japanese, and Korean Character Sets
B.12. MySQL 5.5 FAQ: Connectors & APIs
B.13. MySQL 5.5 FAQ: Replication
B.14. MySQL 5.5 FAQ: MySQL, DRBD, and Heartbeat
B.14.1. Distributed Replicated Block Device (DRBD)
B.14.2. Linux Heartbeat
B.14.3. DRBD Architecture
B.14.4. DRBD and MySQL Replication
B.14.5. DRBD and File Systems
B.14.6. DRBD and LVM
B.14.7. DRBD and Virtualization
B.14.8. DRBD and Security
B.14.9. DRBD and System Requirements
B.14.10. DRBD and Support and Consulting
C. Errors, Error Codes, and Common Problems
C.1. Sources of Error Information
C.2. Types of Error Values
C.3. Server Error Codes and Messages
C.4. Client Error Codes and Messages
C.5. Problems and Common Errors
C.5.1. How to Determine What Is Causing a Problem
C.5.2. Common Errors When Using MySQL Programs
C.5.3. Installation-Related Issues
C.5.4. Administration-Related Issues
C.5.5. Query-Related Issues
C.5.6. Optimizer-Related Issues
C.5.7. Table Definition-Related Issues
C.5.8. Known Issues in MySQL
D. MySQL Change History
D.1. Changes in Release 5.5.x (Production)
D.1.1. Changes in MySQL 5.5.20 (Not yet released)
D.1.2. Changes in MySQL 5.5.19 (08 December 2011)
D.1.3. Changes in MySQL 5.5.18 (16 November 2011)
D.1.4. Changes in MySQL 5.5.17 (19 October 2011)
D.1.5. Changes in MySQL 5.5.16 (15 September 2011)
D.1.6. Changes in MySQL 5.5.15 (28 July 2011)
D.1.7. Changes in MySQL 5.5.14 (05 July 2011)
D.1.8. Changes in MySQL 5.5.13 (31 May 2011)
D.1.9. Changes in MySQL 5.5.12 (05 May 2011)
D.1.10. Changes in MySQL 5.5.11 (07 April 2011)
D.1.11. Changes in MySQL 5.5.10 (15 March 2011)
D.1.12. Changes in MySQL 5.5.9 (07 February 2011)
D.1.13. Changes in MySQL 5.5.8 (03 December 2010 General Availability)
D.1.14. Changes in MySQL 5.5.7 (14 October 2010)
D.1.15. Changes in MySQL 5.5.6 (13 September 2010 Release Candidate)
D.1.16. Changes in MySQL 5.5.5 (06 July 2010)
D.1.17. Changes in MySQL 5.5.4 (09 April 2010)
D.1.18. Changes in MySQL 5.5.3 (24 March 2010 Milestone 3)
D.1.19. Changes in MySQL 5.5.2 (12 February 2010)
D.1.20. Changes in MySQL 5.5.1 (04 January 2010)
D.1.21. Changes in MySQL 5.5.0 (07 December 2009 Milestone 2)
D.2. MySQL Connector/ODBC (MyODBC) Change History
D.2.1. Changes in MySQL Connector/ODBC Version 5.1.x
D.2.2. Changes in MySQL Connector/ODBC Version 5.0.x
D.2.3. Changes in MySQL Connector/ODBC Version 3.51.x
D.3. MySQL Connector/Net Change History
D.3.1. Changes in MySQL Connector/Net Version 6.4.x
D.3.2. Changes in MySQL Connector/Net Version 6.3.x
D.3.3. Changes in MySQL Connector/Net Version 6.2.x
D.3.4. Changes in MySQL Connector/Net Version 6.1.x
D.3.5. Changes in MySQL Connector/Net Version 6.0.x
D.3.6. Changes in MySQL Connector/Net Version 5.3.x
D.3.7. Changes in MySQL Connector/Net Version 5.2.x
D.3.8. Changes in MySQL Connector/Net Version 5.1.x
D.3.9. Changes in MySQL Connector/Net Version 5.0.x
D.3.10. Changes in MySQL Connector/Net Version 1.0.x
D.3.11. Changes in MySQL Connector/Net Version 0.9.0 (30 August 2004)
D.3.12. Changes in MySQL Connector/Net Version 0.76
D.3.13. Changes in MySQL Connector/Net Version 0.75
D.3.14. Changes in MySQL Connector/Net Version 0.74
D.3.15. Changes in MySQL Connector/Net Version 0.71
D.3.16. Changes in MySQL Connector/Net Version 0.70
D.3.17. Changes in MySQL Connector/Net Version 0.68
D.3.18. Changes in MySQL Connector/Net Version 0.65
D.3.19. Changes in MySQL Connector/Net Version 0.60
D.3.20. Changes in MySQL Connector/Net Version 0.50
D.4. MySQL Visual Studio Plugin Change History
D.4.1. Changes in MySQL Visual Studio Plugin 1.0.3 (Not yet released)
D.4.2. Changes in MySQL Visual Studio Plugin 1.0.2 (Not yet released)
D.4.3. Changes in MySQL Visual Studio Plugin 1.0.1 (04 October 2006)
D.4.4. Changes in MySQL Visual Studio Plugin 1.0.0 (04 October 2006)
D.5. MySQL Connector/J Change History
D.5.1. Changes in MySQL Connector/J 5.1.x
D.5.2. Changes in MySQL Connector/J 5.0.x
D.5.3. Changes in MySQL Connector/J 3.1.x
D.5.4. Changes in MySQL Connector/J 3.0.x
D.5.5. Changes in MySQL Connector/J 2.0.x
D.5.6. Changes in MySQL Connector/J 1.2.x and lower
D.6. MySQL Connector/MXJ Change History
D.6.1. Changes in MySQL Connector/MXJ 5.0.12 (07 July 2011)
D.6.2. Changes in MySQL Connector/MXJ 5.0.11 (24 November 2009)
D.6.3. Changes in MySQL Connector/MXJ 5.0.10 (Not released)
D.6.4. Changes in MySQL Connector/MXJ 5.0.9 (19 August 2008)
D.6.5. Changes in MySQL Connector/MXJ 5.0.8 (06 August 2007)
D.6.6. Changes in MySQL Connector/MXJ 5.0.7 (27 May 2007)
D.6.7. Changes in MySQL Connector/MXJ 5.0.6 (04 May 2007)
D.6.8. Changes in MySQL Connector/MXJ 5.0.5 (14 March 2007)
D.6.9. Changes in MySQL Connector/MXJ 5.0.4 (28 January 2007)
D.6.10. Changes in MySQL Connector/MXJ 5.0.3 (24 June 2006)
D.6.11. Changes in MySQL Connector/MXJ 5.0.2 (15 June 2006)
D.6.12. Changes in MySQL Connector/MXJ 5.0.1 (Not released)
D.6.13. Changes in MySQL Connector/MXJ 5.0.0 (09 December 2005)
D.7. MySQL Connector/C++ Change History
D.7.1. Changes in MySQL Connector/C++ 1.1.x
D.7.2. Changes in MySQL Connector/C++ 1.0.x
D.8. MySQL Proxy Change History
D.8.1. Changes in MySQL Proxy 0.8.2 (18 August 2011)
D.8.2. Changes in MySQL Proxy 0.8.1 (13 September 2010)
D.8.3. Changes in MySQL Proxy 0.8.0 (21 January 2010)
D.8.4. Changes in MySQL Proxy 0.7.2 (30 June 2009)
D.8.5. Changes in MySQL Proxy 0.7.1 (15 May 2009)
D.8.6. Changes in MySQL Proxy 0.7.0 (Not Released)
D.8.7. Changes in MySQL Proxy 0.6.1 (06 February 2008)
D.8.8. Changes in MySQL Proxy 0.6.0 (11 September 2007)
D.8.9. Changes in MySQL Proxy 0.5.1 (30 June 2007)
D.8.10. Changes in MySQL Proxy 0.5.0 (19 June 2007)
E. Restrictions and Limits
E.1. Restrictions on Stored Programs
E.2. Restrictions on Condition Handling
E.3. Restrictions on Server-Side Cursors
E.4. Restrictions on Subqueries
E.5. Restrictions on Views
E.6. Restrictions on XA Transactions
E.7. Restrictions on Character Sets
E.8. Restrictions on Performance Schema
E.9. Restrictions on Pluggable Authentication
E.10. Limits in MySQL
E.10.1. Limits of Joins
E.10.2. Limits on Number of Databases and Tables
E.10.3. Limits on Table Size
E.10.4. Table Column-Count and Row-Size Limits
E.10.5. Windows Platform Limitations
Standard Index
C Function Index
Command Index
Function Index
Transaction Isolation Level Index
JOIN Types Index
Operator Index
Option Index
Privileges Index
SQL Modes Index
Status Variable Index
Statement/Syntax Index
System Variable Index

List of Figures

2.1. MySQL Installer - Welcome Screen
2.2. MySQL Installer - License Agreement
2.3. MySQL Installer - Find latest products
2.4. MySQL Installer - Choose Setup Type
2.5. MySQL Installer - Check Requirements
2.6. MySQL Installer - Installation Progress
2.7. MySQL Installer - Installation Progress status
2.8. MySQL Installer - Configuration Overview
2.9. MySQL Installer - MySQL Server Configuration: Choose a platform
2.10. MySQL Installer - MySQL Server Configuration: Basic settings
2.11. MySQL Installer - Installation Complete
2.12. MySQL Installer - Maintenance Screen
2.13. Installation Workflow for Windows using MSI Installer
5.1. The MySQL Architecture Using Pluggable Storage Engines
13.1. MySQL Architecture with Pluggable Storage Engines
13.2. FEDERATED Table Structure
14.1. Tradeoffs: Cost and Complexity versus Availability
14.2. High Availability Architectures for Common Application Types
14.3. DRBD Architecture Overview
14.4. DRBD Architecture Using Separate Network Interfaces
14.5. Heartbeat Architecture
14.6. memcached Architecture Overview
14.7. memcached Hash Selection
14.8. memcached Hash Selection with New memcached instance
14.9. Memory Allocation in memcached
14.10. Typical memcached Application Flowchart
15.1. Using Replication to Improve Performance During Scale-Out
15.2. Using Replication to Replicate Databases to Separate Replication Slaves
15.3. Using an Additional Replication Host to Improve Performance
15.4. Redundancy Using Replication, Initial Structure
15.5. Redundancy Using Replication, After Master Failure
21.1. Add Connection Context Menu
21.2. Choose Data Source
21.3. Add Connection Dialog
21.4. New Data Connection
21.5. Editing New Table
21.6. Choose Table Name
21.7. Newly Created Table
21.8. Table Designer Main Menu
21.9. Indexes Dialog
21.10. Foreign Key Relationships Dialog
21.11. Table Properties Menu Item
21.12. Table Properties
21.13. Editing View SQL
21.14. View SQL Added
21.15. View SQL Saved
21.16. Edit Stored Procedure SQL
21.17. Stored Procedure SQL Saved
21.18. MySQL Website Configuration Tool
21.19. MySQL Website Configuration Tool - Membership
21.20. MySQL Website Configuration Tool - Connection String Editor
21.21. MySQL Website Configuration Tool - Advanced Options
21.22. MySQL Website Configuration Tool - Roles
21.23. MySQL Website Configuration Tool - Profiles
21.24. MySQL Website Configuration Tool - Session State
21.25. MySQL Website Configuration Tool - Tables
21.26. MySQL SQL Editor - New File
21.27. MySQL SQL Editor - Query
21.28. DDL T4 Template Macro - Model Properties
21.29. DDL T4 Template Macro - Generate Database Wizard
21.30. World Database Application
21.31. Authentication Type
21.32. Select Membership and Role Provider
21.33. Membership and Role Provider Tables
21.34. Security Tab
21.35. Create User
21.36. Membership and Roles Table Contents
21.37. Simple Profile Application
21.38. Add Entity Data Model
21.39. Entity Data Model Wizard Screen 1
21.40. Entity Data Model Wizard Screen 2
21.41. Entity Data Model Wizard Screen 3
21.42. Entity Data Model Diagram
21.43. Entity Data Source Configuration Wizard Screen 1
21.44. Entity Data Source Configuration Wizard Screen 2
21.45. Entity Data Source Configuration Wizard Screen 3
21.46. Data Sources
21.47. Data Form Designer
21.48. Adding Code to the Form
21.49. The Populated Grid Control
21.50. Save Button Enabled
21.51. Adding Save Code to the Form
21.52. The Design Tab
21.53. Drop Down List
21.54. Enable AutoPostBack
21.55. Grid View Control
21.56. Placed Grid Vew Control
21.57. Source Code
21.58. The Working Web Site
21.59. Windows Installer Welcome Screen
21.60. Windows Installer Overview Screen
21.61. Windows Installer Custom Setup Screen
21.62. Creating a New Project
21.63. The New Project Dialog Box
21.64. The Win32 Application Wizard
21.65. Selecting the Release Build
21.66. Selecting Project Properties from the Main Menu
21.67. Setting Properties
21.68. MySQL Include Directory
21.69. Select Directory Dialog
21.70. Typical Contents of MySQL lib/opt Directory
21.71. Additional Library Directories
21.72. Additional Library Directories Dialog
21.74. Adding Additional Dependencies
21.75. Setting the CPPCONN_PUBLIC_FUNC Define
21.76. The NetBeans IDE
21.77. Setting the Header Include Directory
21.78. Setting the Static Library Directories and File Names
21.79. Setting the Dynamic Library Directory and File Name
21.80. The Example Application Running
21.81. Adding an Extension
21.82. Selecting the Database
21.83. Selecting the connection type
21.84. Entering Connection Settings
21.85. Setting Up User Authentication
21.86. After Connecting to the Database
21.87. Entering the Database File Name
21.88. Listing Tables
B.1. Active-Master MySQL Server

List of Tables

2.1. MySQL Package and Signature Files
2.2. MySQL Installation Layout for Generic Unix/Linux Binary Package
2.3. MySQL Installation Layout for Windows
2.4. MySQL Server Instance Config Wizard Command Line Options
2.5. MySQL Server Instance Config Wizard Parameters
2.6. Return Value from MySQL Server Instance Config Wizard
2.7. MySQL Unix Socket Locations on Mac OS X by Installation Type
2.8. MySQL Installation Layout on Mac OS X
2.9. MySQL Versions Preinstalled with Mac OS X Server
2.10. MySQL Directory Layout for Preinstalled MySQL Installations on Mac OS X Server
2.11. MySQL Installation Layout for Linux RPM
2.12. MySQL Linux Installation Packages
2.13. MySQL Installation Packages for Linux CPU Identifier
2.14. MySQL Source-Configuration Option Reference (CMake)
2.15. MySQL Startup scripts and supported server option groups
4.1. mysqld_safe Options
4.2. mysql Options
4.3. mysqladmin Options
4.4. mysqlcheck Options
4.5. mysqldump Options
4.6. mysqlimport Options
4.7. mysqlshow Options
4.8. mysqlslap Options
4.9. myisamchk Options
4.10. mysqlaccess Options
4.11. mysqlbinlog Options
4.12. mysqldumpslow Options
4.13. mysqlhotcopy Options
5.1. Option/Variable Summary
5.2. System Variable Summary
5.3. Dynamic Variable Summary
5.4. Status Variable Summary
5.5. Security Option/Variable Summary
5.6. Permissible Privileges for GRANT and REVOKE
5.7. user and db Table Columns
5.8. tables_priv and columns_priv Table Columns
5.9. procs_priv Table Columns
5.10. Grant Table Scope Column Types
5.11. Set-Type Privilege Column Values
5.12. MySQL Native Password Authentication Plugin
5.13. MySQL Native Old-Password Authentication Plugin
5.14. MySQL PAM Authentication Plugin
5.15. MySQL Windows Authentication Plugin
5.16. MySQL Clear Text Authentication Plugin
5.17. MySQL Socket Peer-Credential Authentication Plugin
5.18. MySQL Test Authentication Plugin
5.19. SSL Option/Variable Summary
5.20. MySQL DTrace Probes
7.1. EXPLAIN Output Columns
8.1. Special Character Escape Sequences
9.1. MySQL Character Sets Available for User-Defined UCA Collations
11.1. Functions/Operators
11.2. Operators
11.3. Comparison Operators
11.4. Logical Operators
11.5. Assignment Operators
11.6. Flow Control Operators
11.7. String Operators
11.8. String Comparison Operators
11.9. String Regular Expression Operators
11.10. Numeric Functions and Operators
11.11. Arithmetic Operators
11.12. Mathematical Functions
11.13. Date/Time Functions
11.14. Cast Functions
11.15. XML Functions
11.16. Bitwise Functions
11.17. Encryption Functions
11.18. Information Functions
11.19. Miscellaneous Functions
11.20. Aggregate (GROUP BY) Functions
12.1. Permissible Privileges for GRANT and REVOKE
13.1. Storage Engines Feature Summary
13.2. InnoDB Storage Engine Features
13.3. InnoDB Option/Variable Reference
13.4. Meaning of CREATE TABLE and ALTER TABLE options
13.5. CREATE/ALTER TABLE Warnings and Errors when InnoDB Strict Mode is OFF
13.6. InnoDB Data File Compatibility and Related InnoDB Parameters
13.7. Changes to innodb_thread_concurrency
13.8. InnoDB 1.1 New Parameter Summary
13.9. InnoDB Parameters with New Defaults
13.10. MyISAM Storage Engine Features
13.11. MyISAM Option/Variable Reference
13.12. MEMORY Storage Engine Features
13.13. ARCHIVE Storage Engine Features
14.1. memcached Command Reference
14.2. memcached Protocol Responses
14.3. mysql-proxy Help Options
14.4. mysql-proxy Admin Options
14.5. mysql-proxy Proxy Options
14.6. mysql-proxy Applications Options
15.1. Replication Option/Variable Summary
15.2. Binary Logging Option/Variable Summary
16.1. Data Node Configuration Parameters
16.2. Management Node Configuration Parameters
16.3. SQL Node/API Node Configuration Parameters
16.4. COMPUTER Configuration Parameters
16.5. TCP Configuration Parameters
16.6. SHM Configuration Parameters
16.7. SCI Configuration Parameters
16.8. MySQL Server Option and Variable Reference for MySQL Cluster
16.9. ndbd Command Line Options
16.10. ndb_mgmd Command Line Options
16.11. ndb_mgm Command Line Options
16.12. ndb_config Command Line Options
16.13. ndbd_redo_log_reader Command Line Options
16.14. ndb_restore Command Line Options
16.15. ndb_show_tables Command Line Options
16.16. Command Line Options
16.17. ndb_waiter Command Line Options
16.18. Command Line Options Common to MySQL Cluster Programs
19.1. Columns of INNODB_CMP and INNODB_CMP_RESET
19.3. INNODB_TRX Columns
19.4. INNODB_LOCKS Columns
19.6. WAIT_TYPE Values
20.1. Performance Schema Variable Reference
21.1. MySQL APIs and Interfaces
21.2. MySQL Connector Versions and MySQL Server Versions
21.3. Mapping of MySQL Error Numbers to SQLStates
21.4. C API Function Names and Descriptions
21.5. ext/mysql compile time support matrix
21.6. MySQL Configuration Options
21.7. MySQL client constants
21.8. MySQL fetch constants
21.9. mysqli compile time support matrix
21.10. MySQLi Configuration Options
21.11. Possible mysqli_info return values
21.12. Valid options
21.13. Supported flags
21.14. Attribute values
21.15. Type specification chars
21.16. Return Values
21.17. Changelog
21.18. Object attributes
21.19. Object properties
21.20. Object properties
21.21. Supported flags
21.22. Changelog
21.23. MySQL Native Driver Configuration Options
21.24. Changelog
21.25. PDO_MYSQL Configuration Options
22.1. Server Plugin Status Variable Types
22.2. Server Plugin System Variable Flags
22.3. Full-Text Parser Token Types

List of Examples

13.1. Using the Compression Information Schema Tables
13.2. Identifying Blocking Transactions
13.3. More Complex Example of Transaction Data in Information Schema Tables
21.1. Connector/J: Obtaining a connection from the DriverManager
21.2. Connector/J: Using java.sql.Statement to execute a SELECT query
21.3. Connector/J: Calling Stored Procedures
21.4. Connector/J: Using Connection.prepareCall()
21.5. Connector/J: Registering output parameters
21.6. Connector/J: Setting CallableStatement input parameters
21.7. Connector/J: Retrieving results and output parameter values
21.8. Connector/J: Retrieving AUTO_INCREMENT column values using Statement.getGeneratedKeys()
21.9. Connector/J: Retrieving AUTO_INCREMENT column values using SELECT LAST_INSERT_ID()
21.10. Connector/J: Retrieving AUTO_INCREMENT column values in Updatable ResultSets
21.11. Connector/J: Using a connection pool with a J2EE application server
21.12. Connector/J: Example of transaction with retry logic
21.13. insertdata.jsp
21.14. response.jsp
21.15. MySQL extension overview example
21.16. mysql_affected_rows example
21.17. mysql_affected_rows example using transactions
21.18. mysql_client_encoding example
21.19. mysql_close example
21.20. mysql_connect example
21.21. mysql_connect example using hostname:port syntax
21.22. mysql_connect example using ":/path/to/socket" syntax
21.23. mysql_create_db alternative example
21.24. mysql_data_seek example
21.25. mysql_db_name example
21.26. mysql_db_query alternative example
21.27. mysql_drop_db alternative example
21.28. mysql_errno example
21.29. mysql_error example
21.30. mysql_escape_string example
21.31. Query with aliased duplicate field names
21.32. mysql_fetch_array with MYSQL_NUM
21.33. mysql_fetch_array with MYSQL_ASSOC
21.34. mysql_fetch_array with MYSQL_BOTH
21.35. An expanded mysql_fetch_assoc example
21.36. mysql_fetch_field example
21.37. A mysql_fetch_lengths example
21.38. mysql_fetch_object example
21.39. mysql_fetch_object example
21.40. Fetching one row with mysql_fetch_row
21.41. A mysql_field_flags example
21.42. mysql_field_len example
21.43. mysql_field_name example
21.44. A mysql_field_table example
21.45. mysql_field_type example
21.46. A mysql_free_result example
21.47. mysql_get_client_info example
21.48. mysql_get_host_info example
21.49. mysql_get_proto_info example
21.50. mysql_get_server_info example
21.51. Relevant MySQL Statements
21.52. mysql_insert_id example
21.53. mysql_list_dbs example
21.54. Alternate to deprecated mysql_list_fields
21.55. mysql_list_processes example
21.56. mysql_list_tables alternative example
21.57. A mysql_num_fields example
21.58. mysql_num_rows example
21.59. A mysql_ping example
21.60. Invalid Query
21.61. Valid Query
21.62. Simple mysql_real_escape_string example
21.63. An example SQL Injection Attack
21.64. mysql_result example
21.65. mysql_select_db example
21.66. mysql_stat example
21.67. Alternative mysql_stat example
21.68. mysql_tablename example
21.69. mysql_thread_id example
21.70. mysqli->affected_rows example
21.71. mysqli::autocommit example
21.72. mysqli::change_user example
21.73. mysqli::character_set_name example
21.74. mysqli_get_client_info
21.75. mysqli_get_client_version
21.76. mysqli::commit example
21.77. mysqli->connect_errno example
21.78. mysqli->connect_error example
21.79. mysqli::__construct example
21.80. Generating a Trace File
21.81. mysqli->errno example
21.82. mysqli->error example
21.83. mysqli->field_count example
21.84. mysqli::get_charset example
21.85. mysqli_get_client_info
21.86. A mysqli_get_client_stats example
21.87. mysqli_get_client_version
21.88. A mysqli_get_connection_stats example
21.89. mysqli->host_info example
21.90. mysqli->protocol_version example
21.91. mysqli->server_info example
21.92. mysqli->server_version example
21.93. mysqli->info example
21.94. mysqli->insert_id example
21.95. mysqli::kill example
21.96. mysqli::multi_query example
21.97. mysqli::ping example
21.98. A mysqli_poll example
21.99. mysqli::prepare example
21.100. mysqli::query example
21.101. mysqli::real_connect example
21.102. mysqli::real_escape_string example
21.103. mysqli::rollback example
21.104. mysqli::select_db example
21.105. mysqli::set_charset example
21.106. mysqli::set_local_infile_handler example
21.107. mysqli->sqlstate example
21.108. mysqli::stat example
21.109. mysqli->thread_id example
21.110. mysqli::use_result example
21.111. mysqli->warning_count example
21.112. Object oriented style
21.113. Procedural style
21.114. Object oriented style
21.115. Procedural style
21.116. Object oriented style
21.117. Procedural style
21.118. Object oriented style
21.119. Procedural style
21.120. Object oriented style
21.121. Procedural style
21.122. Object oriented style
21.123. Procedural style
21.124. Object oriented style
21.125. Procedural style
21.126. Object oriented style
21.127. Procedural style
21.128. Object oriented style
21.129. Object oriented style
21.130. Procedural style
21.131. Object oriented style
21.132. Procedural style
21.133. Object oriented style
21.134. Procedural style
21.135. Object oriented style
21.136. Procedural style
21.137. Object oriented style
21.138. Object oriented style
21.139. Object oriented style
21.140. Object oriented style
21.141. Object oriented style
21.142. Object oriented style
21.143. Object oriented style
21.144. A MySQLi_Result example comparing iterator usage
21.145. Object oriented style
21.146. Object oriented style
21.147. Object oriented style
21.148. Object oriented style
21.149. Object oriented style
21.150. Object oriented style
21.151. Object oriented style
21.152. Object oriented style
21.153. Object oriented style
21.154. A mysqli_get_cache_stats example
21.155. Object oriented style
21.156. Forcing queries to be buffered in mysql
21.157. Setting the connection character set to UTF-8 prior to PHP 5.3.6
21.158. PDO_MYSQL DSN examples