MySQL 5.5 Reference Manual

Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark of Oracle Corporation and/or its affiliates, and shall not be used without Oracle's express written authorization. Other names may be trademarks of their respective owners.

This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

This documentation is in prerelease status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

The information contained in this document is for informational sharing purposes only and should be considered in your capacity as a customer advisory board member or pursuant to your beta trial agreement only. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described in this document remains at the sole discretion of Oracle.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms:

You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, except if you distribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to this documentation not expressly granted above.

For more information on the terms of this license, for details on how the MySQL documentation is built and produced, or if you are interested in doing a translation, please visit MySQL Contact & Questions.

For additional licensing information, including licenses for libraries used by MySQL products, see Preface and Notes.

If you want help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists where you can discuss your issues with other MySQL users.

For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

Abstract

This is the MySQL™ Reference Manual. It documents MySQL 5.5 through 5.5.9.

MySQL Cluster is currently not supported in MySQL 5.5. For information about MySQL Cluster, please see MySQL Cluster NDB 6.X/7.X.

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: 2010-12-15 (revision: 24467)


Table of Contents

Preface and Notes
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. MySQL Development History
1.5. What Is New in MySQL 5.5
1.5.1. Scalability Improvements
1.5.2. InnoDB I/O Subsystem Changes
1.5.3. Enhanced Solaris Support
1.5.4. Diagnostic and Monitoring Capabilities
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 the MSI Package
2.3.4. MySQL Server Instance Configuration Wizard
2.3.5. Installing MySQL from a Noinstall Zip Archive
2.3.6. Troubleshooting a MySQL Installation Under Windows
2.3.7. Upgrading MySQL on Windows
2.3.8. 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 IBM AIX
2.7.1. General Notes on Installing MySQL on AIX
2.8. Installing MySQL on HP-UX
2.8.1. General Notes on Installing MySQL on HP-UX
2.8.2. Installing MySQL on HP-UX using DEPOT
2.9. Installing MySQL on FreeBSD
2.10. Installing MySQL on i5/OS
2.11. Installing MySQL from Source
2.11.1. MySQL Layout for Source Installation
2.11.2. Installing MySQL from a Standard Source Distribution
2.11.3. Installing MySQL from a Development Source Tree
2.11.4. MySQL Source-Configuration Options
2.11.5. Dealing with Problems Compiling MySQL
2.11.6. MySQL Configuration and Third-Party Tools
2.12. Postinstallation Setup and Testing
2.12.1. Unix Postinstallation Procedures
2.12.2. Securing the Initial MySQL Accounts
2.13. Upgrading or Downgrading MySQL
2.13.1. Upgrading MySQL
2.13.2. Downgrading MySQL
2.13.3. Checking Whether Tables or Indexes Must Be Rebuilt
2.13.4. Rebuilding or Repairing Tables or Indexes
2.13.5. Copying MySQL Databases to Another Machine
2.14. Environment Variables
2.15. Perl Installation Notes
2.15.1. Installing Perl on Unix
2.15.2. Installing ActiveState Perl on Windows
2.15.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.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. 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. make_win_bin_dist — Package MySQL Distribution as ZIP Archive
4.4.3. mysqlbug — Generate Bug Report
4.4.4. mysql_install_db — Initialize MySQL Data Directory
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 Options for Loading Plugins
5.1.4. Server System Variables
5.1.5. Using System Variables
5.1.6. Server Status Variables
5.1.7. Server SQL Modes
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 Servers on the Same Machine
5.6.1. Running Multiple Servers on Windows
5.6.2. Running Multiple Servers on Unix
5.6.3. 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. 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. MyISAM Index Statistics Collection
7.6.3. Bulk Data Loading for MyISAM Tables
7.6.4. 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.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. Strings
8.1.2. Numbers
8.1.3. Date and Time Values
8.1.4. Hexadecimal Values
8.1.5. Boolean Values
8.1.6. Bit-Field Values
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. Internationalization and Localization
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 New Character Set
9.3.1. The Character Definition Arrays
9.3.2. String Collating Support
9.3.3. Multi-Byte Character Support
9.4. How to Add a New 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. Overview of Numeric Types
10.1.2. Overview of Date and Time Types
10.1.3. Overview of String Types
10.1.4. Data Type Default Values
10.2. Numeric Types
10.3. Date and Time Types
10.3.1. The DATETIME, DATE, and TIMESTAMP Types
10.3.2. The TIME Type
10.3.3. The YEAR Type
10.3.4. Year 2000 Issues and Date Types
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. Out-of-Range and Overflow Handling
10.7. Choosing the Right Type for a Column
10.8. 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. Analyzing Spatial Information
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.3. ALTER FUNCTION Syntax
12.1.4. ALTER PROCEDURE Syntax
12.1.5. ALTER SERVER Syntax
12.1.6. ALTER TABLE Syntax
12.1.7. ALTER VIEW Syntax
12.1.8. CREATE DATABASE Syntax
12.1.9. CREATE EVENT Syntax
12.1.10. The CREATE FUNCTION Statement
12.1.11. CREATE INDEX Syntax
12.1.12. CREATE PROCEDURE and CREATE FUNCTION Syntax
12.1.13. CREATE SERVER Syntax
12.1.14. CREATE TABLE Syntax
12.1.15. CREATE TRIGGER Syntax
12.1.16. CREATE VIEW Syntax
12.1.17. DROP DATABASE Syntax
12.1.18. DROP EVENT Syntax
12.1.19. DROP FUNCTION Syntax
12.1.20. DROP INDEX Syntax
12.1.21. DROP PROCEDURE and DROP FUNCTION Syntax
12.1.22. DROP SERVER Syntax
12.1.23. DROP TABLE Syntax
12.1.24. DROP TRIGGER Syntax
12.1.25. DROP VIEW Syntax
12.1.26. RENAME TABLE Syntax
12.1.27. 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.1. START TRANSACTION, COMMIT, and ROLLBACK Syntax
12.3.2. Statements That Cannot Be Rolled Back
12.3.3. Statements That Cause an Implicit Commit
12.3.4. SAVEPOINT and ROLLBACK TO SAVEPOINT Syntax
12.3.5. LOCK TABLES and UNLOCK TABLES Syntax
12.3.6. SET TRANSACTION Syntax
12.3.7. XA Transactions
12.4. Database Administration Statements
12.4.1. Account Management Statements
12.4.2. Table Maintenance Statements
12.4.3. Plugin and User-Defined Function Statements
12.4.4. SET Syntax
12.4.5. SHOW Syntax
12.4.6. Other Administrative Statements
12.5. Replication Statements
12.5.1. SQL Statements for Controlling Master Servers
12.5.2. SQL Statements for Controlling Slave Servers
12.6. SQL Syntax for Prepared Statements
12.6.1. PREPARE Syntax
12.6.2. EXECUTE Syntax
12.6.3. DEALLOCATE PREPARE Syntax
12.6.4. Automatic Prepared Statement Repreparation
12.7. MySQL Compound-Statement Syntax
12.7.1. BEGIN ... END Compound Statement Syntax
12.7.2. DECLARE Syntax
12.7.3. Variables in Stored Programs
12.7.4. Conditions and Handlers
12.7.5. Cursors
12.7.6. Flow Control Constructs
12.7.7. RETURN Syntax
12.7.8. SIGNAL and RESIGNAL
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. Comparing Transaction and Nontransaction Engines
13.2. Other Storage Engines
13.3. Setting the Storage Engine
13.4. Overview of MySQL Storage Engine Architecture
13.4.1. Pluggable Storage Engine Architecture
13.4.2. The Common Database Server Layer
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 InnoDB Storage Engine
13.6.1. InnoDB as the Default MySQL Storage Engine
13.6.2. Configuring InnoDB
13.6.3. Using Per-Table Tablespaces
13.6.4. InnoDB Startup Options and System Variables
13.6.5. Creating and Using InnoDB Tables
13.6.6. Adding, Removing, or Resizing InnoDB Data and Log Files
13.6.7. Backing Up and Recovering an InnoDB Database
13.6.8. Moving an InnoDB Database to Another Machine
13.6.9. The InnoDB Transaction Model and Locking
13.6.10. InnoDB Multi-Versioning
13.6.11. InnoDB Table and Index Structures
13.6.12. InnoDB Disk I/O and File Space Management
13.6.13. InnoDB Error Handling
13.6.14. InnoDB Performance Tuning and Troubleshooting
13.6.15. Limits on InnoDB Tables
13.7. New Features of InnoDB 1.1
13.7.1. Introduction to InnoDB 1.1
13.7.2. Fast Index Creation in the InnoDB Storage Engine
13.7.3. InnoDB Data Compression
13.7.4. InnoDB File Format Management
13.7.5. Storage of Variable-Length Columns
13.7.6. InnoDB INFORMATION_SCHEMA tables
13.7.7. Performance and Scalability Enhancements
13.7.8. Changes for Flexibility, Ease of Use and Reliability
13.7.9. Installing the InnoDB Storage Engine
13.7.10. Upgrading the InnoDB Storage Engine
13.7.11. Downgrading the InnoDB Storage Engine
13.7.12. InnoDB Storage Engine Change History
13.7.13. Third-Party Software
13.7.14. List of Parameters Changed in InnoDB 1.1 and InnoDB Plugin 1.0
13.8. The MERGE Storage Engine
13.8.1. MERGE Table Advantages and Disadvantages
13.8.2. MERGE Table Problems
13.9. The MEMORY Storage Engine
13.10. The EXAMPLE Storage Engine
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 ARCHIVE Storage Engine
13.13. The CSV Storage Engine
13.13.1. Repairing and Checking CSV Tables
13.13.2. CSV Limitations
13.14. The BLACKHOLE Storage Engine
14. High Availability and Scalability
14.1. Using MySQL with DRBD
14.1.1. Configuring the DRBD Environment
14.1.2. Configuring MySQL for DRBD
14.1.3. Optimizing Performance and Reliability
14.2. Using Linux HA Heartbeat
14.2.1. Heartbeat Configuration
14.2.2. Using Heartbeat with MySQL and DRBD
14.2.3. Using Heartbeat with DRBD and dopd
14.2.4. Dealing with System Level Errors
14.3. MySQL and Virtualization
14.3.1. Common Issues with Virtualization
14.3.2. Using MySQL within an Amazon EC2 Instance
14.3.3. Virtualization Resources
14.4. Using ZFS Replication
14.4.1. Using ZFS for Filesystem Replication
14.4.2. Configuring MySQL for ZFS Replication
14.4.3. Handling MySQL Recovery with ZFS
14.5. Using MySQL with memcached
14.5.1. Installing memcached
14.5.2. Using memcached
14.5.3. memcached Interfaces
14.5.4. Getting memcached Statistics
14.5.5. memcached FAQ
14.6. MySQL Proxy
14.6.1. MySQL Proxy Supported Platforms
14.6.2. Installing MySQL Proxy
14.6.3. MySQL Proxy Command Options
14.6.4. MySQL Proxy Scripting
14.6.5. Using MySQL Proxy
14.6.6. MySQL Proxy FAQ
15. MySQL Enterprise Monitor
15.1. Overview of the Service
15.1.1. The Service Architecture
15.1.2. Service Features
15.1.3. Security
15.2. Conventions Used in This Document
15.3. Installation and Upgrades
15.3.1. User Roles
15.3.2. Service Manager Installation
15.3.3. Monitor Agent Installation
15.3.4. Unattended Installation
15.3.5. Postinstallation Considerations
15.3.6. Upgrading, Re-Installing or Changing Your Installation
15.3.7. Uninstalling the MySQL Enterprise Monitor
15.4. MySQL Enterprise Dashboard
15.4.1. The Server Tree
15.4.2. The Server Graphs and Critical Events
15.4.3. The Heat Chart
15.5. The Settings Page
15.5.1. Global Settings
15.5.2. User Preferences
15.5.3. Manage Servers
15.5.4. Managing Users
15.5.5. Manage Notification Groups
15.5.6. Logs
15.5.7. The Product Information Screen
15.6. The What's New Page
15.6.1. Setting What's New Configuration
15.7. The Advisors Page
15.7.1. Installing and Updating Advisors
15.7.2. Scheduling Rules
15.7.3. Editing Built-in Rules
15.7.4. Creating Advisors and Rules
15.7.5. Creating a Custom Data Collection Item
15.7.6. Disabling and Unscheduling Rules
15.7.7. Advisor Blackout Periods
15.8. The Events Page
15.8.1. Closing an Event
15.8.2. Notification of Events
15.9. The Graphs Page
15.9.1. Displaying Graphs
15.9.2. Setting an Interval
15.9.3. Setting a Time Span
15.10. The Query Analyzer Page
15.10.1. Enabling Query Analyzer
15.10.2. Getting Detailed Query Information
15.10.3. Using Graphs to Identify Queries
15.10.4. Filtering Query Analyzer Data
15.10.5. Using Query Analyzer Data
15.10.6. Troubleshooting Query Analyzer
15.10.7. Query Analyzer Settings
15.11. The Replication Page
15.11.1. Replication Page Details
15.12. MySQL Enterprise Monitor Reference
15.12.1. MySQL Enterprise Monitor Limitations
15.12.2. Supported Browsers
15.12.3. Installation Requirements
15.12.4. Creating a new SSL KeyStore
15.12.5. Choosing Suitable MySQL Enterprise Service Manager Hardware Configurations
15.12.6. MySQL Enterprise Monitor Agent Reference
15.12.7. Configuring Tomcat Parameters
15.12.8. Backing up MySQL Enterprise Service Manager
15.12.9. Migrating 1.3.x Historical Data to MySQL Enterprise Monitor 2.0
15.12.10. Regular MySQL Enterprise Monitor Maintenance
15.12.11. Advisor/Graph Reference
15.13. MySQL Enterprise Monitor Frequently Asked Questions
16. MySQL Workbench
16.1. MySQL Workbench Editions
16.2. Installing and Launching MySQL Workbench
16.2.1. Hardware Requirements
16.2.2. Software Requirements
16.2.3. Starting MySQL Workbench
16.2.4. Activation Procedure (Commercial Version)
16.3. Getting Started Tutorial
16.3.1. Administering a MySQL Server
16.3.2. Creating a Model
16.3.3. Adding Data to Your Database
16.4. The Home Screen
16.4.1. Workbench Central
16.4.2. Workspace
16.4.3. Workbench Application Minimum Window Size
16.4.4. Workbench Preferences
16.5. SQL Development
16.5.1. Open Connection to start Querying
16.5.2. New Connection
16.5.3. Edit Table Data
16.5.4. Edit SQL Script
16.5.5. Manage Connections
16.5.6. Manage DB Connections Dialog
16.5.7. SQL Editor
16.6. Data Modeling
16.6.1. Open an Existing EER Model
16.6.2. Create new EER Model
16.6.3. Create EER Model from Existing Database
16.6.4. Create EER Model from SQL Script
16.6.5. Model Editor
16.6.6. EER Diagram Editor
16.6.7. Working with Models
16.6.8. Modeling Tutorials
16.6.9. Printing
16.6.10. MySQL Workbench Schema Validation Plugins (Commercial Version)
16.6.11. Customizing DBDoc Model Reporting Templates
16.7. Server Administration
16.7.1. Server Administration
16.7.2. New Server Instance
16.7.3. Manage Data Import/Export
16.7.4. Manage Security
16.7.5. Manage Server Instances
16.7.6. Creating and Managing Server Instances
16.7.7. Server Administration and Configuration
16.8. Extending Workbench
16.8.1. GRT and Workbench Data Organization
16.8.2. Modules
16.8.3. Plugins
16.8.4. Adding a GUI to a Plugin using MForms
16.8.5. The Workbench Scripting Shell
16.8.6. Tutorial: Writing Plugins
16.9. Keyboard Shortcuts
16.10. MySQL Workbench FAQ
17. Replication
17.1. Replication Configuration
17.1.1. How to Set Up Replication
17.1.2. Replication Formats
17.1.3. Replication and Binary Logging Options and Variables
17.1.4. Common Replication Administration Tasks
17.2. Replication Implementation
17.2.1. Replication Implementation Details
17.2.2. Replication Relay and Status Files
17.2.3. How Servers Evaluate Replication Filtering Rules
17.3. Replication Solutions
17.3.1. Using Replication for Backups
17.3.2. Using Replication with Different Master and Slave Storage Engines
17.3.3. Using Replication for Scale-Out
17.3.4. Replicating Different Databases to Different Slaves
17.3.5. Improving Replication Performance
17.3.6. Switching Masters During Failover
17.3.7. Setting Up Replication Using SSL
17.3.8. Semisynchronous Replication
17.4. Replication Notes and Tips
17.4.1. Replication Features and Issues
17.4.2. Replication Compatibility Between MySQL Versions
17.4.3. Upgrading a Replication Setup
17.4.4. Replication FAQ
17.4.5. Troubleshooting Replication
17.4.6. How to Report Replication Bugs or Problems
18. Partitioning
18.1. Overview of Partitioning in MySQL
18.2. Partitioning Types
18.2.1. RANGE Partitioning
18.2.2. LIST Partitioning
18.2.3. COLUMNS Partitioning
18.2.4. HASH Partitioning
18.2.5. KEY Partitioning
18.2.6. Subpartitioning
18.2.7. How MySQL Partitioning Handles NULL
18.3. Partition Management
18.3.1. Management of RANGE and LIST Partitions
18.3.2. Management of HASH and KEY Partitions
18.3.3. Maintenance of Partitions
18.3.4. Obtaining Information About Partitions
18.4. Partition Pruning
18.5. Restrictions and Limitations on Partitioning
18.5.1. Partitioning Keys, Primary Keys, and Unique Keys
18.5.2. Partitioning Limitations Relating to Storage Engines
18.5.3. Partitioning Limitations Relating to Functions
19. Stored Programs and Views
19.1. Defining Stored Programs
19.2. Using Stored Routines (Procedures and Functions)
19.2.1. Stored Routine Syntax
19.2.2. Stored Routines and MySQL Privileges
19.2.3. Stored Routine Metadata
19.2.4. Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()
19.3. Using Triggers
19.3.1. Trigger Syntax
19.3.2. Trigger Metadata
19.4. Using the Event Scheduler
19.4.1. Event Scheduler Overview
19.4.2. Event Scheduler Configuration
19.4.3. Event Syntax
19.4.4. Event Metadata
19.4.5. Event Scheduler Status
19.4.6. The Event Scheduler and MySQL Privileges
19.5. Using Views
19.5.1. View Syntax
19.5.2. View Processing Algorithms
19.5.3. Updatable and Insertable Views
19.5.4. View Metadata
19.6. Access Control for Stored Programs and Views
19.7. Binary Logging of Stored Programs
20. INFORMATION_SCHEMA Tables
20.1. The INFORMATION_SCHEMA SCHEMATA Table
20.2. The INFORMATION_SCHEMA TABLES Table
20.3. The INFORMATION_SCHEMA COLUMNS Table
20.4. The INFORMATION_SCHEMA STATISTICS Table
20.5. The INFORMATION_SCHEMA USER_PRIVILEGES Table
20.6. The INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
20.7. The INFORMATION_SCHEMA TABLE_PRIVILEGES Table
20.8. The INFORMATION_SCHEMA COLUMN_PRIVILEGES Table
20.9. The INFORMATION_SCHEMA CHARACTER_SETS Table
20.10. The INFORMATION_SCHEMA COLLATIONS Table
20.11. The INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Table
20.12. The INFORMATION_SCHEMA TABLE_CONSTRAINTS Table
20.13. The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table
20.14. The INFORMATION_SCHEMA ROUTINES Table
20.15. The INFORMATION_SCHEMA VIEWS Table
20.16. The INFORMATION_SCHEMA TRIGGERS Table
20.17. The INFORMATION_SCHEMA PLUGINS Table
20.18. The INFORMATION_SCHEMA ENGINES Table
20.19. The INFORMATION_SCHEMA PARTITIONS Table
20.20. The INFORMATION_SCHEMA EVENTS Table
20.21. The INFORMATION_SCHEMA FILES Table
20.22. The INFORMATION_SCHEMA TABLESPACES Table
20.23. The INFORMATION_SCHEMA PROCESSLIST Table
20.24. The INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Table
20.25. The INFORMATION_SCHEMA GLOBAL_STATUS and SESSION_STATUS Tables
20.26. The INFORMATION_SCHEMA GLOBAL_VARIABLES and SESSION_VARIABLES Tables
20.27. The INFORMATION_SCHEMA PARAMETERS Table
20.28. The INFORMATION_SCHEMA PROFILING Table
20.29. INFORMATION_SCHEMA Tables for InnoDB
20.29.1. The INFORMATION_SCHEMA INNODB_CMP and INNODB_CMP_RESET Tables
20.29.2. The INFORMATION_SCHEMA INNODB_CMPMEM and INNODB_CMPMEM_RESET Tables
20.29.3. The INFORMATION_SCHEMA INNODB_TRX Table
20.29.4. The INFORMATION_SCHEMA INNODB_LOCKS Table
20.29.5. The INFORMATION_SCHEMA INNODB_LOCK_WAITS Table
20.30. Other INFORMATION_SCHEMA Tables
20.31. Extensions to SHOW Statements
21. MySQL Performance Schema
21.1. Performance Schema Quick Start
21.2. Performance Schema Configuration
21.2.1. Performance Schema Build Configuration
21.2.2. Performance Schema Startup and Runtime Configuration
21.2.3. Event Collection Pre-Filtering and Post-Filtering
21.3. Performance Schema Status Monitoring
21.4. Performance Schema Event Timing
21.5. Performance Schema Event Instrument Naming Conventions
21.6. Performance Schema General Table Characteristics
21.7. Performance Schema Table Descriptions
21.7.1. Performance Schema Setup Tables
21.7.2. Performance Schema Events (Current) Table
21.7.3. Performance Schema History Tables
21.7.4. Performance Schema Summary Tables
21.7.5. Performance Schema Instance Tables
21.7.6. Performance Schema Miscellaneous Tables
21.8. Performance Schema and Plugins
21.9. Performance Schema System Variables
21.10. Performance Schema Status Variables
21.11. Using Performance Schema to Diagnose Problems
22. Connectors and APIs
22.1. MySQL Connector/ODBC
22.1.1. Connector/ODBC Versions
22.1.2. Connector/ODBC Introduction
22.1.3. Connector/ODBC Installation
22.1.4. Connector/ODBC Configuration
22.1.5. Connector/ODBC Examples
22.1.6. Connector/ODBC Reference
22.1.7. Connector/ODBC Notes and Tips
22.1.8. Connector/ODBC Support
22.2. MySQL Connector/NET
22.2.1. Connector/NET Versions
22.2.2. Connector/NET Installation
22.2.3. Connector/NET Visual Studio Integration
22.2.4. Connector/NET Tutorials
22.2.5. Connector/NET Programming
22.2.6. Connector/NET Connection String Options Reference
22.2.7. Connector/NET API Reference
22.2.8. Connector/NET Support
22.2.9. Connector/NET FAQ
22.3. MySQL Connector/J
22.3.1. Connector/J Versions
22.3.2. Connector/J Installation
22.3.3. Connector/J Examples
22.3.4. Connector/J (JDBC) Reference
22.3.5. Connector/J Notes and Tips
22.3.6. Connector/J Support
22.4. MySQL Connector/MXJ
22.4.1. Connector/MXJ Overview
22.4.2. Connector/MXJ Versions
22.4.3. Connector/MXJ Installation
22.4.4. Connector/MXJ Configuration
22.4.5. Connector/MXJ Reference
22.4.6. Connector/MXJ Notes and Tips
22.4.7. Connector/MXJ Samples
22.4.8. Connector/MXJ Support
22.5. MySQL Connector/C++
22.5.1. MySQL Connector/C++ Binary Installation
22.5.2. MySQL Connector/C++ Source Installation
22.5.3. MySQL Connector/C++ Building Windows applications with Microsoft Visual Studio
22.5.4. MySQL Connector/C++ Building Linux applications with NetBeans
22.5.5. MySQL Connector/C++ Getting Started: Usage Examples
22.5.6. MySQL Connector/C++ Tutorials
22.5.7. MySQL Connector/C++ Debug Tracing
22.5.8. MySQL Connector/C++ Usage Notes
22.5.9. MySQL Connector/C++ Known Bugs and Issues
22.5.10. MySQL Connector/C++ Feature requests
22.5.11. MySQL Connector/C++ Support
22.5.12. MySQL Connector/C++ FAQ
22.6. MySQL Connector/C
22.6.1. Building MySQL Connector/C from the Source Code
22.6.2. Testing MySQL Connector/C
22.6.3. MySQL Connector/C FAQ
22.7. MySQL Connector/OpenOffice.org
22.7.1. Installation
22.7.2. Getting Started: Connecting to MySQL
22.7.3. Getting Started: Usage Examples
22.7.4. References
22.7.5. Known Bugs
22.7.6. Contact
22.8. libmysqld, the Embedded MySQL Server Library
22.8.1. Compiling Programs with libmysqld
22.8.2. Restrictions When Using the Embedded MySQL Server
22.8.3. Options with the Embedded Server
22.8.4. Embedded Server Examples
22.8.5. Licensing the Embedded Server
22.9. MySQL C API
22.9.1. C API Data Structures
22.9.2. C API Function Overview
22.9.3. C API Function Descriptions
22.9.4. C API Prepared Statements
22.9.5. C API Prepared Statement Data Structures
22.9.6. C API Prepared Statement Function Overview
22.9.7. C API Prepared Statement Function Descriptions
22.9.8. C API Threaded Function Descriptions
22.9.9. C API Embedded Server Function Descriptions
22.9.10. C API Client Plugin Functions
22.9.11. Common Questions and Problems When Using the C API
22.9.12. Controlling Automatic Reconnection Behavior
22.9.13. C API Support for Multiple Statement Execution
22.9.14. C API Prepared Statement Problems
22.9.15. C API Prepared Statement Handling of Date and Time Values
22.9.16. C API Support for Prepared CALL Statements
22.9.17. Building Client Programs
22.10. MySQL PHP API
22.10.1. MySQL
22.10.2. MySQL Improved Extension (Mysqli)
22.10.3. MySQL Native Driver (Mysqlnd)
22.10.4. MySQL Functions (PDO_MYSQL)
22.10.5. Connector/PHP
22.10.6. Common Problems with MySQL and PHP
22.10.7. Enabling Both mysql and mysqli in PHP
22.11. MySQL Perl API
22.12. MySQL Python API
22.13. MySQL Ruby APIs
22.13.1. The MySQL/Ruby API
22.13.2. The Ruby/MySQL API
22.14. MySQL Tcl API
22.15. MySQL Eiffel Wrapper
23. Extending MySQL
23.1. MySQL Internals
23.1.1. MySQL Threads
23.1.2. The MySQL Test Suite
23.2. The MySQL Plugin API
23.2.1. Plugin API Characteristics
23.2.2. Plugin API Components
23.2.3. Types of Plugins
23.2.4. Plugin Data Structures and Functions
23.2.5. Writing Plugins
23.2.6. MySQL Services for Plugins
23.3. Adding New Functions to MySQL
23.3.1. Features of the User-Defined Function Interface
23.3.2. Adding a New User-Defined Function
23.3.3. Adding a New Native Function
23.4. Adding New Procedures to MySQL
23.4.1. PROCEDURE ANALYSE
23.4.2. Writing a Procedure
23.5. Debugging and Porting MySQL
23.5.1. Debugging a MySQL Server
23.5.2. Debugging a MySQL Client
23.5.3. The DBUG Package
A. Licenses for Third-Party Components
A.1. .NET Flat TabControl License
A.2. Ant-Contrib License
A.3. ANTLR 3 License
A.4. Apache Commons Chain
A.5. Apache Commons Collections License
A.6. Apache Commons DBCP License
A.7. Apache Commons Digester License
A.8. Apache Commons FileUpload License
A.9. Apache Commons IO License
A.10. Apache Commons Lang License
A.11. Apache Commons Logging License
A.12. Apache Commons Math License
A.13. Apache Commons Pool License
A.14. Apache Commons Validator License
A.15. Apache License Version 2.0, January 2004
A.16. Apache log4j License
A.17. Apache Tomcat License
A.18. ASM License
A.19. Boost Library License
A.20. cURL (libcurl) License
A.21. dtoa.c License
A.22. Editline Library (libedit) License
A.23. FindGTest.cmake License
A.24. Fred Fish's Dbug Library License
A.25. getarg License
A.26. GNU Readline License
A.27. Google Controlling Master Thread I/O Rate Patch License
A.28. Google Perftools (TCMalloc utility) License
A.29. Google SMP Patch License
A.30. JDOM Project License
A.31. jQuery License
A.32. jQuery UI License
A.33. lib_sql.cc License
A.34. libevent License
A.35. Linux-PAM License
A.36. LPeg Library License
A.37. Lua (liblua) License
A.38. LuaFileSystem Library License
A.39. md5 (Message-Digest Algorithm 5) License
A.40. nt_servc (Windows NT Service class library) License
A.41. OpenPAM License
A.42. OpenSSL v0.9.8o and Later License
A.43. PCRE License
A.44. Percona Multiple I/O Threads Patch License
A.45. Python License
A.46. RegEX-Spencer Library License
A.47. RFC 3174 - US Secure Hash Algorithm 1 (SHA1) License
A.48. Richard A. O'Keefe String Library License
A.49. SHA-1 in C License
A.50. Spring Framework License
A.51. StringTemplate Template Engine License
A.52. zlib 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.7. MySQL 5.5 FAQ: INFORMATION_SCHEMA
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. DBRD 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.8 (03 December 2010 General Availability)
D.1.2. Changes in MySQL 5.5.7 (14 October 2010)
D.1.3. Changes in MySQL 5.5.6 (13 September 2010 Release Candidate)
D.1.4. Changes in MySQL 5.5.5 (06 July 2010)
D.1.5. Changes in MySQL 5.5.4 (09 April 2010)
D.1.6. Changes in MySQL 5.5.3 (24 March 2010 Milestone 3)
D.1.7. Changes in MySQL 5.5.2 (12 February 2010)
D.1.8. Changes in MySQL 5.5.1 (04 January 2010)
D.1.9. Changes in MySQL 5.5.0 (07 December 2009 Milestone 2)
D.2. MySQL Enterprise Monitor Change History
D.2.1. Changes in MySQL Enterprise Monitor 2.1.2 (26 May 2010)
D.2.2. Changes in MySQL Enterprise Monitor 2.1.1 (10 February 2010)
D.2.3. Changes in MySQL Enterprise Monitor 2.1.0 (08 September 2009)
D.3. MySQL Connector/ODBC (MyODBC) Change History
D.3.1. Changes in MySQL Connector/ODBC 5.1.9 (Not released yet)
D.3.2. Changes in MySQL Connector/ODBC 5.1.8 (07 November 2010)
D.3.3. Changes in MySQL Connector/ODBC 5.1.7 (24 August 2010)
D.3.4. Changes in MySQL Connector/ODBC 5.1.6 (09 November 2009)
D.3.5. Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008)
D.3.6. Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008)
D.3.7. Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008)
D.3.8. Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008)
D.3.9. Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007)
D.3.10. Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007)
D.3.11. Changes in MySQL Connector/ODBC 5.0.12 (Never released)
D.3.12. Changes in MySQL Connector/ODBC 5.0.11 (31 January 2007)
D.3.13. Changes in MySQL Connector/ODBC 5.0.10 (14 December 2006)
D.3.14. Changes in MySQL Connector/ODBC 5.0.9 (22 November 2006)
D.3.15. Changes in MySQL Connector/ODBC 5.0.8 (17 November 2006)
D.3.16. Changes in MySQL Connector/ODBC 5.0.7 (08 November 2006)
D.3.17. Changes in MySQL Connector/ODBC 5.0.6 (03 November 2006)
D.3.18. Changes in MySQL Connector/ODBC 5.0.5 (17 October 2006)
D.3.19. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)
D.3.20. Changes in Connector/ODBC 5.0.2 (Never released)
D.3.21. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)
D.3.22. Changes in MySQL Connector/ODBC 3.51.28 (Not yet released)
D.3.23. Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008)
D.3.24. Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008)
D.3.25. Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008)
D.3.26. Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008)
D.3.27. Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008)
D.3.28. Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007)
D.3.29. Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007)
D.3.30. Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007)
D.3.31. Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007)
D.3.32. Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007)
D.3.33. Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007)
D.3.34. Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007)
D.3.35. Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007)
D.3.36. Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007)
D.3.37. Changes in MySQL Connector/ODBC 3.51.13 (Never released)
D.3.38. Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005)
D.3.39. Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005)
D.4. MySQL Connector/NET Change History
D.4.1. Changes in MySQL Connector/NET Version 6.4.x
D.4.2. Changes in MySQL Connector/NET Version 6.3.x
D.4.3. Changes in MySQL Connector/NET Version 6.2.x
D.4.4. Changes in MySQL Connector/NET Version 6.1.x
D.4.5. Changes in MySQL Connector/NET Version 6.0.x
D.4.6. Changes in MySQL Connector/NET Version 5.3.x
D.4.7. Changes in MySQL Connector/NET Version 5.2.x
D.4.8. Changes in MySQL Connector/NET Version 5.1.x
D.4.9. Changes in MySQL Connector/NET Version 5.0.x
D.4.10. Changes in MySQL Connector/NET Version 1.0.x
D.4.11. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)
D.4.12. Changes in MySQL Connector/NET Version 0.76
D.4.13. Changes in MySQL Connector/NET Version 0.75
D.4.14. Changes in MySQL Connector/NET Version 0.74
D.4.15. Changes in MySQL Connector/NET Version 0.71
D.4.16. Changes in MySQL Connector/NET Version 0.70
D.4.17. Changes in MySQL Connector/NET Version 0.68
D.4.18. Changes in MySQL Connector/NET Version 0.65
D.4.19. Changes in MySQL Connector/NET Version 0.60
D.4.20. Changes in MySQL Connector/NET Version 0.50
D.5. MySQL Visual Studio Plugin Change History
D.5.1. Changes in MySQL Visual Studio Plugin 1.0.3 (Not yet released)
D.5.2. Changes in MySQL Visual Studio Plugin 1.0.2 (Not yet released)
D.5.3. Changes in MySQL Visual Studio Plugin 1.0.1 (04 October 2006)
D.5.4. Changes in MySQL Visual Studio Plugin 1.0.0 (04 October 2006)
D.6. MySQL Connector/J Change History
D.6.1. Changes in MySQL Connector/J 5.1.x
D.6.2. Changes in MySQL Connector/J 5.0.x
D.6.3. Changes in MySQL Connector/J 3.1.x
D.6.4. Changes in MySQL Connector/J 3.0.x
D.6.5. Changes in MySQL Connector/J 2.0.x
D.6.6. Changes in MySQL Connector/J 1.2b (04 July 1999)
D.6.7. Changes in MySQL Connector/J 1.2.x and lower
D.7. MySQL Connector/MXJ Change History
D.7.1. Changes in MySQL Connector/MXJ 5.0.11 (24th November 2009)
D.7.2. Changes in MySQL Connector/MXJ 5.0.10 (Never released)
D.7.3. Changes in MySQL Connector/MXJ 5.0.9 (19 August 2008)
D.7.4. Changes in MySQL Connector/MXJ 5.0.8 (06 August 2007)
D.7.5. Changes in MySQL Connector/MXJ 5.0.7 (27 May 2007)
D.7.6. Changes in MySQL Connector/MXJ 5.0.6 (04 May 2007)
D.7.7. Changes in MySQL Connector/MXJ 5.0.5 (14 March 2007)
D.7.8. Changes in MySQL Connector/MXJ 5.0.4 (28 January 2007)
D.7.9. Changes in MySQL Connector/MXJ 5.0.3 (24 June 2006)
D.7.10. Changes in MySQL Connector/MXJ 5.0.2 (15 June 2006)
D.7.11. Changes in MySQL Connector/MXJ 5.0.1 (Never released)
D.7.12. Changes in MySQL Connector/MXJ 5.0.0 (09 December 2005)
D.8. MySQL Connector/C++ Change History
D.8.1. Changes in MySQL Connector/C++ 1.1.x
D.8.2. Changes in MySQL Connector/C++ 1.0.x
D.9. MySQL Proxy Change History
D.9.1. Changes in MySQL Proxy 0.8.1 (13 September 2010)
D.9.2. Changes in MySQL Proxy 0.8.0 (21 January 2010)
D.9.3. Changes in MySQL Proxy 0.7.2 (30 June 2009)
D.9.4. Changes in MySQL Proxy 0.7.1 (15 May 2009)
D.9.5. Changes in MySQL Proxy 0.7.0 (Not Released)
D.9.6. Changes in MySQL Proxy 0.6.1 (06 February 2008)
D.9.7. Changes in MySQL Proxy 0.6.0 (11 September 2007)
D.9.8. Changes in MySQL Proxy 0.5.1 (30 June 2007)
D.9.9. Changes in MySQL Proxy 0.5.0 (19 June 2007)
E. Restrictions and Limits
E.1. Restrictions on Stored Routines, Triggers, and Events
E.2. Restrictions on Signals
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. Performance Schema Restrictions
E.9. Limits in MySQL
E.9.1. Limits of Joins
E.9.2. The Maximum Number of Columns Per Table
E.9.3. Windows Platform Limitations
Index
Standard Index
C Function Index
Command Index
Function Index
INFORMATION_SCHEMA 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. 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. DRBD Architecture Overview
14.2. DRBD Architecture Using Separate Network Interfaces
14.3. Heartbeat Architecture
14.4. memcached Architecture Overview
14.5. memcached Hash Selection
14.6. memcached Hash Selection with New memcached instance
14.7. Memory Allocation in memcached
14.8. Typical memcached Application Flowchart
15.1. MySQL Enterprise Monitor Architecture
15.2. MySQL Enterprise Monitor: Installing Monitor on Windows: Language Selection
15.3. MySQL Enterprise Monitor: Installing Monitor on Windows: Installation Directory
15.4. MySQL Enterprise Monitor: Installing Monitor on Windows: Tomcat Server Options
15.5. MySQL Enterprise Monitor: Installing Monitor on Windows: Repository Configuration
15.6. MySQL Enterprise Monitor: Installing Monitor on OS X: Language Selection
15.7. MySQL Enterprise Monitor: Installing Monitor on OS X: Java Selection
15.8. MySQL Enterprise Monitor: Installing Monitor on OS X: Installation Directory
15.9. MySQL Enterprise Monitor: Installing Monitor on OS X: Tomcat Server Options
15.10. MySQL Enterprise Monitor: Installing Monitor on OS X: Repository Configuration
15.11. MySQL Enterprise Monitor: Initial Dashboard Log-In
15.12. MySQL Enterprise Monitor: Outgoing Email Settings
15.13. MySQL Enterprise Monitor: Installing Agent on Windows: Language Selection
15.14. MySQL Enterprise Monitor: Installing Agent on Windows: Installation Directory
15.15. MySQL Enterprise Monitor: Installing Agent on Windows: Monitored Database Information
15.16. MySQL Enterprise Monitor: Installing Agent on Windows: Query Analyzer Configuration
15.17. MySQL Enterprise Monitor: Installing Agent on Windows: MySQL Enterprise Service Manager Options
15.18. MySQL Enterprise Monitor: Installing Agent on Mac OS X: Language Selection
15.19. MySQL Enterprise Monitor: Installing Agent on Mac OS X: Installation Directory
15.20. MySQL Enterprise Monitor: Installing Agent on Mac OS X: Monitored Database Information
15.21. MySQL Enterprise Monitor: Installing Agent on Mac OS X: Monitored Database Information
15.22. MySQL Enterprise Monitor: Installing Agent on Mac OS X: Query Analyzer Configuration
15.23. MySQL Enterprise Monitor: Installing Agent on Mac OS X: MySQL Enterprise Service Manager Options
15.24. MySQL Enterprise Monitor: Server Update: Language Selection
15.25. MySQL Enterprise Monitor: Server Update: Previous Installation
15.26. MySQL Enterprise Monitor: Server Update: Backup of Previous Installation
15.27. MySQL Enterprise Monitor: Server Update: Completed installing files
15.28. MySQL Enterprise Monitor: Server Update: Final Setup
15.29. MySQL Enterprise Dashboard: The Graphs Screen
15.30. MySQL Enterprise Dashboard: The Heat Chart
15.31. MySQL Enterprise Dashboard: The Heat Chart Legend
15.32. MySQL Enterprise Dashboard: Settings
15.33. MySQL Enterprise Dashboard: User Preferences
15.34. MySQL Enterprise Dashboard: Manage Servers
15.35. MySQL Enterprise Dashboard: Server Renaming
15.36. MySQL Enterprise Dashboard: Manage Users
15.37. MySQL Enterprise Dashboard: Manage Notification Groups
15.38. MySQL Enterprise Dashboard: Edit Notification Groups
15.39. MySQL Enterprise Dashboard: Logs
15.40. The What's New Tab
15.41. What's New Configuration
15.42. MySQL Enterprise Dashboard: Scheduling Dialog
15.43. MySQL Enterprise Dashboard: Editing Rules
15.44. MySQL Enterprise Dashboard: Events Screen
15.45. MySQL Enterprise Dashboard: Query Analyzer
15.46. MySQL Enterprise Dashboard: Standard Agent/Monitor Topology
15.47. MySQL Enterprise Dashboard: Query Analyzer Agent/Monitor Topology
15.48. MySQL Enterprise Dashboard: Canonical Query Tab for a Query
15.49. MySQL Enterprise Dashboard: Example Query Tab for a Query
15.50. MySQL Enterprise Dashboard: Explain Query Tab for a Query
15.51. MySQL Enterprise Dashboard: Correlated Graphs
15.52. MySQL Enterprise Dashboard: Query Analyzer Configuration
15.53. MySQL Enterprise Dashboard: Replication Groups
15.54. MySQL Enterprise Monitor: Historical Data Migration Availability
15.55. MySQL Enterprise Monitor: Confirming Historical Data Migration
15.56. MySQL Enterprise Monitor: Historical Data Migration Progress
16.1. MySQL Workbench Mac OS X Installation Screen
16.2. Getting Started Tutorial - Home Screen
16.3. Getting Started Tutorial - Specify Host Machine
16.4. Getting Started Tutorial - Database Connection
16.5. Getting Started Tutorial - Connection Test
16.6. Getting Started Tutorial - Operating System
16.7. Getting Started Tutorial - Test Host Settings
16.8. Getting Started Tutorial - Review Settings
16.9. Getting Started Tutorial - Instance Name
16.10. Getting Started Tutorial - Home Screen Instance
16.11. Getting Started Tutorial - Admin Startup
16.12. Getting Started Tutorial - Home Screen
16.13. Getting Started Tutorial - New Schema
16.14. Getting Started Tutorial - Columns
16.15. Getting Started Tutorial - EER Diagram
16.16. Getting Started Tutorial - Manage Connections
16.17. Getting Started Tutorial - Review Script
16.18. Getting Started Tutorial - Edit Table Data
16.19. Getting Started Tutorial - Edit Data
16.20. Getting Started Tutorial - Results
16.21. The Home screen
16.22. The Preferences Dialog Box
16.23. Manage DB Connections - Dialog
16.24. Manage DB Connections - Advanced Tab
16.25. Manage DB Connections - Socket/Pipe Parameters
16.26. Manage DB Connections - SSH Parameters
16.27. SQL Editor
16.28. SQL Editor - Toolbar
16.29. SQL Editor - SQL Query Panel
16.30. SQL Editor - Main Tabsheets
16.31. SQL Editor - Snippets Palette
16.32. SQL Editor - Results Tabsheets
16.33. SQL Editor - Results Tabsheets Navigation Controls
16.34. SQL Editor - Live Editing Tabsheet Navigation Controls
16.35. SQL Editor - Connection Information Palette
16.36. SQL Editor - Default Schema Listbox
16.37. SQL Editor - Schemata Explorer
16.38. The MySQL Model page
16.39. The Find Window
16.40. Roles and Privileges
16.41. Role Editor
16.42. The Model Navigator Palette
16.43. The Vertical Toolbar
16.44. A Table on an EER Diagram
16.45. The Table Editor
16.46. The Columns Tab
16.47. The Indexes Tab
16.48. The Relationship Connector
16.49. The Split Connector
16.50. The Layer Object
16.51. Reverse Engineer Database Wizard
16.52. Connect to DBMS
16.53. Select Schemata
16.54. Fetch Object Info
16.55. Select Objects
16.56. Show Filter
16.57. Progress
16.58. Results
16.59. Message Log
16.60. SQL Export Options
16.61. SQL Object Export Filter
16.62. Review Generated Script
16.63. Options
16.64. Script
16.65. Catalog Validation
16.66. Options
16.67. Select Objects to Forward Engineer
16.68. Review Script
16.69. Set parameters for connecting to a DBMS
16.70. Set parameters for connecting to a DBMS
16.71. Model and Database Differences
16.72. Controlling Synchronization Direction
16.73. Update Model Button
16.74. Ignore Button
16.75. Update Source Button
16.76. Click arrows to change direction of synchronization
16.77. Catalog Sources
16.78. Catalog Diff Report
16.79. Adding Tables to the Canvas
16.80. The Default Schema
16.81. Adding an EER Diagram
16.82. The sakila EER Diagram
16.83. Manage Server Instances Dialog
16.84. Manage Server Instances Dialog
16.85. MySQL Workbench - Admin page
16.86. Administrator - Startup tab
16.87. Administrator - Configuration tab
16.88. Administrator - Accounts tab
16.89. Administrator - Connections tab
16.90. Administrator - Variables tab
16.91. Administrator - Export to Disk
16.92. Administrator - Import from Disk
16.93. Administrator - Advanced Options
16.94. Administrator - Logs tab
16.95. The Workbench Scripting Shell
17.1. Using Replication to Improve Performance During Scale-Out
17.2. Using Replication to Replicate Databases to Separate Replication Slaves
17.3. Using an Additional Replication Host to Improve Performance
17.4. Redundancy Using Replication, Initial Structure
17.5. Redundancy Using Replication, After Master Failure
22.1. Add Connection Context Menu
22.2. Choose Data Source
22.3. Add Connection Dialog
22.4. New Data Connection
22.5. Editing New Table
22.6. Choose Table Name
22.7. Newly Created Table
22.8. Table Designer Main Menu
22.9. Indexes Dialog
22.10. Foreign Key Relationships Dialog
22.11. Table Properties Menu Item
22.12. Table Properties
22.13. Editing View SQL
22.14. View SQL Added
22.15. View SQL Saved
22.16. Edit Stored Procedure SQL
22.17. Stored Procedure SQL Saved
22.18. MySQL Website Configuration Tool
22.19. MySQL Website Configuration Tool - Membership
22.20. MySQL Website Configuration Tool - Connection String Editor
22.21. MySQL Website Configuration Tool - Advanced Options
22.22. MySQL Website Configuration Tool - Roles
22.23. MySQL Website Configuration Tool - Profiles
22.24. MySQL Website Configuration Tool - Session State
22.25. MySQL Website Configuration Tool - Tables
22.26. MySQL SQL Editor - New File
22.27. MySQL SQL Editor - Query
22.28. DDL T4 Template Macro - Model Properties
22.29. DDL T4 Template Macro - Generate Database Wizard
22.30. World Database Application
22.31. Authentication Type
22.32. Select Membership and Role Provider
22.33. Membership and Role Provider Tables
22.34. Security Tab
22.35. Create User
22.36. Membership and Roles Table Contents
22.37. Simple Profile Application
22.38. Add Entity Data Model
22.39. Entity Data Model Wizard Screen 1
22.40. Entity Data Model Wizard Screen 2
22.41. Entity Data Model Wizard Screen 3
22.42. Entity Data Model Diagram
22.43. Entity Data Source Configuration Wizard Screen 1
22.44. Entity Data Source Configuration Wizard Screen 2
22.45. Entity Data Source Configuration Wizard Screen 3
22.46. Data Sources
22.47. Data Form Designer
22.48. Adding Code to the Form
22.49. The Populated Grid Control
22.50. Save Button Enabled
22.51. Adding Save Code to the Form
22.52. The Design Tab
22.53. Drop Down List
22.54. Enable AutoPostBack
22.55. Grid View Control
22.56. Placed Grid Vew Control
22.57. Source Code
22.58. The Working Web Site
22.59. Windows Installer Welcome Screen
22.60. Windows Installer Overview Screen
22.61. Windows Installer Custom Setup Screen
22.62. Creating a New Project
22.63. The New Project Dialog Box
22.64. The Win32 Application Wizard
22.65. Selecting the Release Build
22.66. Selecting Project Properties from the Main Menu
22.67. Setting Properties
22.68. MySQL Include Directory
22.69. Select Directory Dialog
22.70. Typical Contents of MySQL lib/opt Directory
22.71. Additional Library Directories
22.72. Additional Library Directories Dialog
22.73.
22.74. Adding Additional Dependencies
22.75. Setting the CPPCONN_PUBLIC_FUNC Define
22.76. The NetBeans IDE
22.77. Setting the Header Include Directory
22.78. Setting the Static Library Directories and File Names
22.79. Setting the Dynamic Library Directory and File Name
22.80. The Example Application Running
22.81. Adding an Extension
22.82. Selecting the Database
22.83. Selecting the connection type
22.84. Entering Connection Settings
22.85. Setting Up User Authentication
22.86. After Connecting to the Database
22.87. Entering the Database File Name
22.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. SSL Option/Variable Summary
5.13. MySQL DTrace Probes
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. MyISAM Storage Engine Features
13.3. MyISAM Option/Variable Reference
13.4. InnoDB Storage Engine Features
13.5. InnoDB Option/Variable Reference
13.6. Meaning of CREATE TABLE and ALTER TABLE options
13.7. CREATE/ALTER TABLE Warnings and Errors when InnoDB Strict Mode is OFF
13.8. InnoDB Data File Compatibility and Related InnoDB Parameters
13.9. Changes to innodb_thread_concurrency
13.10. InnoDB 1.1 New Parameter Summary
13.11. InnoDB Parameters with New Defaults
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. MySQL Enterprise Monitor: Wiki Formatting
15.2. mysql-monitor-agent Help Options
15.3. mysql-monitor-agent Admin Options
15.4. mysql-monitor-agent Agent Options
15.5. mysql-monitor-agent Monitor Options
15.6. mysql-monitor-agent Proxy Options
15.7. mysql-monitor-agent Application Options
17.1. Replication Option/Variable Summary
17.2. Binary Logging Option/Variable Summary
20.1. Columns of INNODB_CMP and INNODB_CMP_RESET
20.2. Columns of INNODB_CMPMEM and INNODB_CMPMEM_RESET
20.3. INNODB_TRX Columns
20.4. INNODB_LOCKS Columns
20.5. INNODB_LOCK_WAITS Columns
21.1. Performance Schema Variable Reference
22.1. MySQL APIs and Interfaces
22.2. MySQL Connector Versions and MySQL Server Versions
22.3. Mapping of MySQL Error Numbers to SQLStates
22.4. C API Function Names and Descriptions
22.5. MySQL Configuration Options
22.6. MySQL client constants
22.7. MySQL fetch constants
22.8. MySQLi Configuration Options
22.9. Possible mysqli_info return values
22.10. Valid options
22.11. Supported flags
22.12. Attribute values
22.13. Type specification chars
22.14. Return Values
22.15. Object attributes
22.16. Object properties
22.17. Object properties
22.18. Supported flags
22.19. MySQL Native Driver Configuration Options
22.20. PDO_MYSQL Configuration Options
23.1. Plugin Status Variable Types
23.2. Plugin System Variable Flags
23.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
22.1. Connector/J: Obtaining a connection from the DriverManager
22.2. Connector/J: Using java.sql.Statement to execute a SELECT query
22.3. Connector/J: Calling Stored Procedures
22.4. Connector/J: Using Connection.prepareCall()
22.5. Connector/J: Registering output parameters
22.6. Connector/J: Setting CallableStatement input parameters
22.7. Connector/J: Retrieving results and output parameter values
22.8. Connector/J: Retrieving AUTO_INCREMENT column values using Statement.getGeneratedKeys()
22.9. Connector/J: Retrieving AUTO_INCREMENT column values using SELECT LAST_INSERT_ID()
22.10. Connector/J: Retrieving AUTO_INCREMENT column values in Updatable ResultSets
22.11. Connector/J: Using a connection pool with a J2EE application server
22.12. Connector/J: Example of transaction with retry logic
22.13. insertdata.jsp
22.14. response.jsp
22.15. MySQL extension overview example
22.16. mysql_affected_rows example
22.17. mysql_affected_rows example using transactions
22.18. mysql_client_encoding example
22.19. mysql_close example
22.20. mysql_connect example
22.21. mysql_connect example using hostname:port syntax
22.22. mysql_connect example using ":/path/to/socket" syntax
22.23. mysql_create_db alternative example
22.24. mysql_data_seek example
22.25. mysql_db_name example
22.26. mysql_db_query alternative example
22.27. mysql_drop_db alternative example
22.28. mysql_errno example
22.29. mysql_error example
22.30. mysql_escape_string example
22.31. Query with aliased duplicate field names
22.32. mysql_fetch_array with MYSQL_NUM
22.33. mysql_fetch_array with MYSQL_ASSOC
22.34. mysql_fetch_array with MYSQL_BOTH
22.35. An expanded mysql_fetch_assoc example
22.36. mysql_fetch_field example
22.37. A mysql_fetch_lengths example
22.38. mysql_fetch_object example
22.39. mysql_fetch_object example
22.40. Fetching one row with mysql_fetch_row
22.41. A mysql_field_flags example
22.42. mysql_field_len example
22.43. mysql_field_name example
22.44. A mysql_field_table example
22.45. mysql_field_type example
22.46. A mysql_free_result example
22.47. mysql_get_client_info example
22.48. mysql_get_host_info example
22.49. mysql_get_proto_info example
22.50. mysql_get_server_info example
22.51. Relevant MySQL Statements
22.52. mysql_insert_id example
22.53. mysql_list_dbs example
22.54. Alternate to deprecated mysql_list_fields
22.55. mysql_list_processes example
22.56. mysql_list_tables alternative example
22.57. A mysql_num_fields example
22.58. mysql_num_rows example
22.59. A mysql_ping example
22.60. Invalid Query
22.61. Valid Query
22.62. Simple mysql_real_escape_string example
22.63. An example SQL Injection Attack
22.64. mysql_result example
22.65. mysql_select_db example
22.66. mysql_stat example
22.67. Alternative mysql_stat example
22.68. mysql_tablename example
22.69. mysql_thread_id example
22.70. mysqli->affected_rows example
22.71. mysqli::autocommit example
22.72. mysqli::change_user example
22.73. mysqli::character_set_name example
22.74. mysqli_get_client_info
22.75. mysqli_get_client_version
22.76. mysqli::commit example
22.77. mysqli->connect_errno example
22.78. mysqli->connect_error example
22.79. mysqli::__construct example
22.80. Generating a Trace File
22.81. mysqli->errno example
22.82. mysqli->error example
22.83. mysqli->field_count example
22.84. mysqli::get_charset example
22.85. mysqli_get_client_info
22.86. A mysqli_get_client_stats example
22.87. mysqli_get_client_version
22.88. A mysqli_get_connection_stats example
22.89. mysqli->host_info example
22.90. mysqli->protocol_version example
22.91. mysqli->server_info example
22.92. mysqli->server_version example
22.93. mysqli->info example
22.94. mysqli->insert_id example
22.95. mysqli::kill example
22.96. mysqli::multi_query example
22.97. mysqli::ping example
22.98. A mysqli_poll example
22.99. mysqli::prepare example
22.100. mysqli::query example
22.101. mysqli::real_connect example
22.102. mysqli::real_escape_string example
22.103. mysqli::rollback example
22.104. mysqli::select_db example
22.105. mysqli::set_charset example
22.106. mysqli::set_local_infile_handler example
22.107. mysqli->sqlstate example
22.108. mysqli::stat example
22.109. mysqli->thread_id example
22.110. mysqli::use_result example
22.111. mysqli->warning_count example
22.112. Object oriented style
22.113. Procedural style
22.114. Object oriented style
22.115. Procedural style
22.116. Object oriented style
22.117. Procedural style
22.118. Object oriented style
22.119. Procedural style
22.120. Object oriented style
22.121. Procedural style
22.122. Object oriented style
22.123. Procedural style
22.124. Object oriented style
22.125. Procedural style
22.126. Object oriented style
22.127. Procedural style
22.128. Object oriented style
22.129. Procedural style
22.130. Object oriented style
22.131. Procedural style
22.132. Object oriented style
22.133. Procedural style
22.134. Object oriented style
22.135. Procedural style
22.136. Object oriented style
22.137. Object oriented style
22.138. Object oriented style
22.139. Object oriented style
22.140. Object oriented style
22.141. Object oriented style
22.142. Object oriented style
22.143. Object oriented style
22.144. Object oriented style
22.145. Object oriented style
22.146. Object oriented style
22.147. Object oriented style
22.148. Object oriented style
22.149. Object oriented style
22.150. Object oriented style
22.151. Object oriented style
22.152. A mysqli_get_cache_stats example
22.153. Object oriented style
22.154. Forcing queries to be buffered in mysql
22.155. PDO_MYSQL DSN examples