• Table of Contents
  • Preface
  • General Information
    • About This Manual
    • Conventions Used in This Manual
    • Overview of MySQL AB
    • Overview of the MySQL Database Management System
      • History of MySQL
      • The Main Features of MySQL
      • MySQL Stability
      • How Large MySQL Tables Can Be
      • Year 2000 Compliance
    • Overview of the MaxDB Database Management System
      • What is MaxDB?
      • History of MaxDB
      • Features of MaxDB
      • Licensing and Support
      • Feature Differences Between MaxDB and MySQL
      • Interoperability Features Between MaxDB and MySQL
      • MaxDB-Related Links
    • MySQL Development Roadmap
      • What's New in MySQL 5.0
    • MySQL Information Sources
      • MySQL Mailing Lists
        • Guidelines for Using the Mailing Lists
      • MySQL Community Support at the MySQL Forums
      • MySQL Community Support on Internet Relay Chat (IRC)
    • How to Report Bugs or Problems
    • MySQL Standards Compliance
      • What Standards MySQL Follows
      • Selecting SQL Modes
      • Running MySQL in ANSI Mode
      • MySQL Extensions to Standard SQL
      • MySQL Differences from Standard SQL
        • Subquery Support
        • SELECT INTO TABLE
        • Transactions and Atomic Operations
        • Stored Routines and Triggers
        • Foreign Keys
        • Views
        • '--' as the Start of a Comment
      • How MySQL Deals with Constraints
        • PRIMARY KEY and UNIQUE Index Constraints
        • Constraints on Invalid Data
        • ENUM and SET Constraints
  • Installing and Upgrading MySQL
    • General Installation Issues
      • Operating Systems Supported by MySQL
      • Choosing Which MySQL Distribution to Install
        • Choosing Which Version of MySQL to Install
        • Choosing a Distribution Format
        • How and When Updates Are Released
        • Release Philosophy¡ªNo Known Bugs in Releases
        • MySQL Binaries Compiled by MySQL AB
      • How to Get MySQL
      • Verifying Package Integrity Using MD5 Checksums or GnuPG
        • Verifying the MD5 Checksum
        • Signature Checking Using GnuPG
        • Signature Checking Using RPM
      • Installation Layouts
    • Standard MySQL Installation Using a Binary Distribution
    • Installing MySQL on Windows
      • Choosing An Installation Package
      • Installing MySQL with the Automated Installer
      • Using the MySQL Installation Wizard
        • Introduction to the Installation Wizard
        • Downloading and Starting the MySQL Installation Wizard
        • Choosing an Install Type
        • The Custom Install Dialog
        • The Confirmation Dialog
        • Changes Made by MySQL Installation Wizard
        • Upgrading MySQL with the Installation Wizard
      • Using the Configuration Wizard
        • Introduction to the Configuration Wizard
        • Starting the MySQL Configuration Wizard
        • Choosing a Maintenance Option
        • Choosing a Configuration Type
        • The Server Type Dialog
        • The Database Usage Dialog
        • The InnoDB Tablespace Dialog
        • The Concurrent Connections Dialog
        • The Networking and Strict Mode Options Dialog
        • The Character Set Dialog
        • The Service Options Dialog
        • The Security Options Dialog
        • The Confirmation Dialog
        • The Location of the my.ini File
        • Editing the my.ini File
      • Installing MySQL from a Noinstall Zip Archive
      • Extracting the Install Archive
      • Creating an Option File
      • Selecting a MySQL Server type
      • Starting the Server for the First Time
      • Starting MySQL from the Windows Command Line
      • Starting MySQL as a Windows Service
      • Testing The MySQL Installation
      • Troubleshooting a MySQL Installation Under Windows
      • Upgrading MySQL on Windows
      • MySQL on Windows Compared to MySQL on Unix
    • Installing MySQL on Linux
    • Installing MySQL on Mac OS X
    • Installing MySQL on Solaris
    • Installing MySQL on NetWare
    • Installing MySQL on Other Unix-Like Systems
    • MySQL Installation Using a Source Distribution
      • Source Installation Overview
      • Typical configure Options
      • Installing from the Development Source Tree
      • Dealing with Problems Compiling MySQL
      • MIT-pthreads Notes
      • Installing MySQL from Source on Windows
        • Building MySQL Using VC++
        • Creating a Windows Source Package from the Latest Development Source
      • Compiling MySQL Clients on Windows
    • Post-Installation Setup and Testing
      • Windows Post-Installation Procedures
      • Unix Post-Installation Procedures
        • Problems Running mysql_install_db
        • Starting and Stopping MySQL Automatically
        • Starting and Troubleshooting the MySQL Server
      • Securing the Initial MySQL Accounts
    • Upgrading MySQL
      • Upgrading from MySQL 5.0 to 5.1
      • Upgrading from MySQL 4.1 to 5.0
      • Copying MySQL Databases to Another Machine
    • Downgrading MySQL
      • Downgrading to MySQL 4.1
    • Operating System-Specific Notes
      • Linux Notes
        • Linux Operating System Notes
        • Linux Binary Distribution Notes
        • Linux Source Distribution Notes
        • Linux Post-Installation Notes
        • Linux x86 Notes
        • Linux SPARC Notes
        • Linux Alpha Notes
        • Linux PowerPC Notes
        • Linux MIPS Notes
        • Linux IA-64 Notes
        • SELinux Notes
      • Mac OS X Notes
        • Mac OS X 10.x (Darwin)
        • Mac OS X Server 1.2 (Rhapsody)
      • Solaris Notes
        • Solaris 2.7/2.8 Notes
        • Solaris x86 Notes
      • BSD Notes
        • FreeBSD Notes
        • NetBSD Notes
        • OpenBSD 2.5 Notes
        • BSD/OS Version 2.x Notes
        • BSD/OS Version 3.x Notes
        • BSD/OS Version 4.x Notes
      • Other Unix Notes
        • HP-UX Version 10.20 Notes
        • HP-UX Version 11.x Notes
        • IBM-AIX notes
        • SunOS 4 Notes
        • Alpha-DEC-UNIX Notes (Tru64)
        • Alpha-DEC-OSF/1 Notes
        • SGI Irix Notes
        • SCO UNIX and OpenServer 5.0.x Notes
        • SCO OpenServer 6.0.x Notes
        • SCO UnixWare 7.1.x and OpenUNIX 8.0.0 Notes
      • OS/2 Notes
    • Perl Installation Notes
      • Installing Perl on Unix
      • Installing ActiveState Perl on Windows
      • Problems Using the Perl DBI/DBD Interface
  • Tutorial
    • Connecting to and Disconnecting from the Server
    • Entering Queries
    • Creating and Using a Database
      • Creating and Selecting a Database
      • Creating a Table
      • Loading Data into a Table
      • Retrieving Information from a Table
        • Selecting All Data
        • Selecting Particular Rows
        • Selecting Particular Columns
        • Sorting Rows
        • Date Calculations
        • Working with NULL Values
        • Pattern Matching
        • Counting Rows
        • Using More Than one Table
    • Getting Information About Databases and Tables
    • Using mysql in Batch Mode
    • Examples of Common Queries
      • The Maximum Value for a Column
      • The Row Holding the Maximum of a Certain Column
      • Maximum of Column per Group
      • The Rows Holding the Group-wise Maximum of a Certain Field
      • Using User-Defined Variables
      • Using Foreign Keys
      • Searching on Two Keys
      • Calculating Visits Per Day
      • Using AUTO_INCREMENT
    • Queries from the Twin Project
      • Find All Non-distributed Twins
      • Show a Table of Twin Pair Status
    • Using MySQL with Apache
  • Using MySQL Programs
    • Overview of MySQL Programs
    • Invoking MySQL Programs
    • Specifying Program Options
      • Using Options on the Command Line
      • Using Option Files
        • Preconfigured Option Files
      • Using Environment Variables to Specify Options
      • Using Options to Set Program Variables
  • Database Administration
    • Overview of Server-Side Programs
    • mysqld ?The MySQL Server
      • mysqld Command Options
      • Server System Variables
      • Using System Variables
        • Structured System Variables
        • Dynamic System Variables
      • Server Status Variables
      • The Server SQL Mode
      • The MySQL Server Shutdown Process
      • MySQL Server-Side Help Support
    • The mysqld-max Extended MySQL Server
    • MySQL Server Startup Programs
      • mysqld_safe ?MySQL Server Startup Script
      • mysql.server ?MySQL Server Startup Script
      • mysqld_multi ?Manage Multiple MySQL Servers
    • mysqlmanager ?The MySQL Instance Manager
      • Starting the MySQL Server with MySQL Instance Manager
      • Connecting to the MySQL Instance Manager and Creating User Accounts
        • Instance Manager Users and Passwords
        • MySQL Server Accounts for Status Monitoring
      • MySQL Instance Manager Command Options
      • MySQL Instance Manager Configuration Files
      • Commands Recognized by the MySQL Instance Manager
    • Installation-Related Programs
      • mysql_fix_privilege_tables ?Upgrade MySQL System Tables
      • mysql_upgrade ?Check Tables for MySQL Upgrade
    • General Security Issues
      • General Security Guidelines
      • Making MySQL Secure Against Attackers
      • Security-Related mysqld Options
      • Security Issues with LOAD DATA LOCAL
      • How to Run MySQL as a Normal User
    • The MySQL Access Privilege System
      • What the Privilege System Does
      • How the Privilege System Works
      • Privileges Provided by MySQL
      • Connecting to the MySQL Server
      • Access Control, Stage 1: Connection Verification
      • Access Control, Stage 2: Request Verification
      • When Privilege Changes Take Effect
      • Causes of Access denied Errors
      • Password Hashing as of MySQL 4.1
        • Implications of Password Hashing Changes for Application Programs
    • MySQL User Account Management
      • MySQL Usernames and Passwords
      • Adding New User Accounts to MySQL
      • Removing User Accounts from MySQL
      • Limiting Account Resources
      • Assigning Account Passwords
      • Keeping Your Password Secure
      • Using Secure Connections
        • Basic SSL Concepts
        • Using SSL Connections
        • SSL Command Options
        • Setting Up SSL Certificates for MySQL
        • Connecting to MySQL Remotely from Windows with SSH
    • Backup and Recovery
      • Database Backups
      • Example Backup and Recovery Strategy
        • Backup Policy
        • Using Backups for Recovery
        • Backup Strategy Summary
      • Point-in-Time Recovery
        • Specifying Times for Recovery
        • Specifying Positions for Recovery
      • Table Maintenance and Crash Recovery
        • Using myisamchk for Crash Recovery
        • How to Check MyISAM Tables for Errors
        • How to Repair Tables
        • Table Optimization
        • Getting Information About a Table
        • Setting Up a Table Maintenance Schedule
    • MySQL Localization and International Usage
      • The Character Set Used for Data and Sorting
        • Using the German Character Set
      • Setting the Error Message Language
      • Adding a New Character Set
      • The Character Definition Arrays
      • String Collating Support
      • Multi-Byte Character Support
      • Problems With Character Sets
      • MySQL Server Time Zone Support
    • MySQL Server Logs
      • The Error Log
      • The General Query Log
      • The Binary Log
      • The Slow Query Log
      • Server Log Maintenance
    • Running Multiple MySQL Servers on the Same Machine
      • Running Multiple Servers on Windows
        • Starting Multiple Windows Servers at the Command Line
        • Starting Multiple Windows Servers as Services
      • Running Multiple Servers on Unix
      • Using Client Programs in a Multiple-Server Environment
    • The MySQL Query Cache
      • How the Query Cache Operates
      • Query Cache SELECT Options
      • Query Cache Configuration
      • Query Cache Status and Maintenance
  • Replication
    • Introduction to Replication
    • Replication Implementation Overview
    • Replication Implementation Details
      • Replication Master Thread States
      • Replication Slave I/O Thread States
      • Replication Slave SQL Thread States
      • Replication Relay and Status Files
    • How to Set Up Replication
    • Replication Compatibility Between MySQL Versions
    • Upgrading a Replication Setup
      • Upgrading Replication to 5.0
    • Replication Features and Known Problems
    • Replication Startup Options
    • How Servers Evaluate Replication Rules
    • Replication FAQ
    • Troubleshooting Replication
    • How to Report Replication Bugs or Problems
    • Auto-Increment in Multiple-Master Replication
  • Optimization
    • Optimization Overview
      • MySQL Design Limitations and Tradeoffs
      • Designing Applications for Portability
      • What We Have Used MySQL For
      • The MySQL Benchmark Suite
      • Using Your Own Benchmarks
    • Optimizing SELECT and Other Statements
      • Optimizing Queries with EXPLAIN
      • Estimating Query Performance
      • Speed of SELECT Queries
      • WHERE Clause Optimization
      • Range Optimization
        • The Range Access Method for Single-Part Indexes
        • The Range Access Method for Multiple-Part Indexes
      • Index Merge Optimization
        • The Index Merge Intersection Access Algorithm
        • The Index Merge Union Access Algorithm
        • The Index Merge Sort-Union Access Algorithm
      • IS NULL Optimization
      • DISTINCT Optimization
      • LEFT JOIN and RIGHT JOIN Optimization
      • Nested Join Optimization
      • Outer Join Simplification
      • ORDER BY Optimization
      • GROUP BY Optimization
        • Loose index scan
        • Tight index scan
      • LIMIT Optimization
      • How to Avoid Table Scans
      • Speed of INSERT Statements
      • Speed of UPDATE Statements
      • Speed of DELETE Statements
      • Other Optimization Tips
    • Locking Issues
      • Locking Methods
      • Table Locking Issues
      • Concurrent Inserts
    • Optimizing Database Structure
      • Design Choices
      • Make Your Data as Small as Possible
      • Column Indexes
      • Multiple-Column Indexes
      • How MySQL Uses Indexes
      • The MyISAM Key Cache
        • Shared Key Cache Access
        • Multiple Key Caches
        • Midpoint Insertion Strategy
        • Index Preloading
        • Key Cache Block Size
        • Restructuring a Key Cache
      • MyISAM Index Statistics Collection
      • How MySQL Opens and Closes Tables
      • Drawbacks to Creating Many Tables in the Same Database
    • Optimizing the MySQL Server
      • System Factors and Startup Parameter Tuning
      • Tuning Server Parameters
      • Controlling Query Optimizer Performance
      • How Compiling and Linking Affects the Speed of MySQL
      • How MySQL Uses Memory
      • How MySQL Uses DNS
    • Disk Issues
      • Using Symbolic Links
        • Using Symbolic Links for Databases on Unix
        • Using Symbolic Links for Tables on Unix
        • Using Symbolic Links for Databases on Windows
  • Client and Utility Programs
    • Overview of Client and Utility Programs
    • myisam_ftdump ?Display Full-Text Index information
    • myisamchk ?MyISAM Table-Maintenance Utility
      • myisamchk General Options
      • myisamchk Check Options
      • myisamchk Repair Options
      • Other myisamchk Options
      • myisamchk Memory Usage
    • myisamlog ?Display MyISAM Log File Contents
    • myisampack ?Generate Compressed, Read-Only MyISAM Tables
    • mysql ?The MySQL Command-Line Tool
      • mysql Options
      • mysql Commands
      • mysql Server-Side Help
      • Executing SQL Statements from a Text File
      • mysql Tips
        • Displaying Query Results Vertically
        • Using the --safe-updates Option
        • Disabling mysql Auto-Reconnect
    • mysql_explain_log ?Use EXPLAIN on Statements in Query Log
    • mysqlaccess ?Client for Checking Access Privileges
    • mysqladmin ?Client for Administering a MySQL Server
    • mysqlbinlog ?Utility for Processing Binary Log Files
    • mysqlcheck ?A Table Maintenance and Repair Program
    • mysqldump ?A Database Backup Program
    • mysqlhotcopy ?A Database Backup Program
    • mysqlimport ?A Data Import Program
    • mysqlshow ?Display Database, Table, and Column Information
    • mysql_zap ?Kill Processes That Match a Pattern
    • perror ?Explain Error Codes
    • replace ?A String-Replacement Utility
  • Language Structure
    • Literal Values
      • Strings
      • Numbers
      • Hexadecimal Values
      • Boolean Values
      • Bit-Field Values
      • NULL Values
    • Database, Table, Index, Column, and Alias Names
      • Identifier Qualifiers
      • Identifier Case Sensitivity
    • User-Defined Variables
    • Comment Syntax
    • Treatment of Reserved Words in MySQL
  • Character Set Support
    • Character Sets and Collations in General
    • Character Sets and Collations in MySQL
    • Specifying Character Sets and Collations
      • Server Character Set and Collation
      • Database Character Set and Collation
      • Table Character Set and Collation
      • Column Character Set and Collation
      • Character String Literal Character Set and Collation
      • National Character Set
      • Examples of Character Set and Collation Assignment
      • Compatibility with Other DBMSs
    • Connection Character Sets and Collations
    • Collation Issues
      • Using COLLATE in SQL Statements
      • COLLATE Clause Precedence
      • BINARY Operator
      • Some Special Cases Where the Collation Determination Is Tricky
      • Collations Must Be for the Right Character Set
      • An Example of the Effect of Collation
    • Operations Affected by Character Set Support
      • Result Strings
      • CONVERT() and CAST()
      • SHOW Statements and INFORMATION_SCHEMA
    • Unicode Support
    • UTF-8 for Metadata
    • Character Sets and Collations That MySQL Supports
      • Unicode Character Sets
      • West European Character Sets
      • Central European Character Sets
      • South European and Middle East Character Sets
      • Baltic Character Sets
      • Cyrillic Character Sets
      • Asian Character Sets
        • The cp932 Character Set
    • FAQ: MySQL Chinese, Japanese, and Korean Character Sets
      • SELECT shows non-Latin characters as "?"s. Why?
      • Troubles with GB character sets (Chinese)
      • Troubles with big5 character set (Chinese)
      • Troubles with character-set conversions (Japanese)
      • The Great Yen Sign problem (Japanese)
      • Troubles with euckr character set (Korean)
      • The “Data truncated?message
      • Troubles with Access, Perl, PHP, etc.
      • How can I get old MySQL 4.0 behaviour back?
      • Why do some LIKE and FULLTEXT searches fail?
      • What CJK character sets are available?
      • Is character X available in all character sets?
      • Strings don't sort correctly in Unicode (I)
      • Strings don't sort correctly in Unicode (II)
      • My supplementary characters get rejected
      • Shouldn't it be CJKV (V for Vietnamese)?
      • Will MySQL fix any CJK problems in version 5.1?
      • When will MySQL translate the manual again?
      • Whom can I talk to?
  • Data Types
    • Data Type Overview
      • Overview of Numeric Types
      • Overview of Date and Time Types
      • Overview of String Types
      • Data Type Default Values
    • Numeric Types
    • Date and Time Types
      • The DATETIME, DATE, and TIMESTAMP Types
        • TIMESTAMP Properties as of MySQL 4.1
      • The TIME Type
      • The YEAR Type
      • Y2K Issues and Date Types
    • String Types
      • The CHAR and VARCHAR Types
      • The BINARY and VARBINARY Types
      • The BLOB and TEXT Types
      • The ENUM Type
      • The SET Type
    • Data Type Storage Requirements
    • Choosing the Right Type for a Column
    • Using Data Types from Other Database Engines
  • Functions and Operators
    • Operators
      • Operator Precedence
      • Type Conversion in Expression Evaluation
      • Comparison Functions and Operators
      • Logical Operators
    • Control Flow Functions
    • String Functions
      • String Comparison Functions
    • Numeric Functions
      • Arithmetic Operators
      • Mathematical Functions
    • Date and Time Functions
    • What Calendar Is Used By MySQL?
    • Full-Text Search Functions
      • Boolean Full-Text Searches
      • Full-Text Searches with Query Expansion
      • Full-Text Stopwords
      • Full-Text Restrictions
      • Fine-Tuning MySQL Full-Text Search
    • Cast Functions and Operators
    • Other Functions
      • Bit Functions
      • Encryption and Compression Functions
      • Information Functions
      • Miscellaneous Functions
    • Functions and Modifiers for Use with GROUP BY Clauses
      • GROUP BY (Aggregate) Functions
      • GROUP BY Modifiers
      • GROUP BY and HAVING with Hidden Fields
  • SQL Statement Syntax
    • Data Definition Statements
      • ALTER DATABASE Syntax
      • ALTER TABLE Syntax
      • CREATE DATABASE Syntax
      • CREATE INDEX Syntax
      • CREATE TABLE Syntax
        • Silent Column Specification Changes
      • DROP DATABASE Syntax
      • DROP INDEX Syntax
      • DROP TABLE Syntax
      • RENAME TABLE Syntax
    • Data Manipulation Statements
      • DELETE Syntax
      • DO Syntax
      • HANDLER Syntax
      • INSERT Syntax
        • INSERT ... SELECT Syntax
        • INSERT DELAYED Syntax
        • INSERT ... ON DUPLICATE KEY UPDATE Syntax
      • LOAD DATA INFILE Syntax
      • REPLACE Syntax
      • SELECT Syntax
        • JOIN Syntax
        • UNION Syntax
      • Subquery Syntax
        • The Subquery as Scalar Operand
        • Comparisons Using Subqueries
        • Subqueries with ANY, IN, and SOME
        • Subqueries with ALL
        • Row Subqueries
        • EXISTS and NOT EXISTS
        • Correlated Subqueries
        • Subqueries in the FROM clause
        • Subquery Errors
        • Optimizing Subqueries
        • Rewriting Subqueries as Joins for Earlier MySQL Versions
      • TRUNCATE Syntax
      • UPDATE Syntax
    • MySQL Utility Statements
      • DESCRIBE Syntax
      • HELP Syntax
      • USE Syntax
    • MySQL Transactional and Locking Statements
      • START TRANSACTION, COMMIT, and ROLLBACK Syntax
      • Statements That Cannot Be Rolled Back
      • Statements That Cause an Implicit Commit
      • SAVEPOINT and ROLLBACK TO SAVEPOINT Syntax
      • LOCK TABLES and UNLOCK TABLES Syntax
      • SET TRANSACTION Syntax
      • XA Transactions
        • XA Transaction SQL Syntax
        • XA Transaction States
    • Database Administration Statements
      • Account Management Statements
        • CREATE USER Syntax
        • DROP USER Syntax
        • GRANT Syntax
        • RENAME USER Syntax
        • REVOKE Syntax
        • SET PASSWORD Syntax
      • Table Maintenance Statements
        • ANALYZE TABLE Syntax
        • BACKUP TABLE Syntax
        • CHECK TABLE Syntax
        • CHECKSUM TABLE Syntax
        • OPTIMIZE TABLE Syntax
        • REPAIR TABLE Syntax
        • RESTORE TABLE Syntax
      • SET Syntax
      • SHOW Syntax
        • SHOW CHARACTER SET Syntax
        • SHOW COLLATION Syntax
        • SHOW COLUMNS Syntax
        • SHOW CREATE DATABASE Syntax
        • SHOW CREATE PROCEDURE and SHOW CREATE FUNCTION Syntax
        • SHOW CREATE TABLE Syntax
        • SHOW CREATE VIEW Syntax
        • SHOW DATABASES Syntax
        • SHOW ENGINE Syntax
        • SHOW ENGINES Syntax
        • SHOW ERRORS Syntax
        • SHOW GRANTS Syntax
        • SHOW INDEX Syntax
        • SHOW INNODB STATUS Syntax
        • SHOW LOGS Syntax
        • SHOW OPEN TABLES Syntax
        • SHOW PRIVILEGES Syntax
        • SHOW PROCEDURE STATUS and SHOW FUNCTION STATUS Syntax
        • SHOW PROCESSLIST Syntax
        • SHOW STATUS Syntax
        • SHOW TABLE STATUS Syntax
        • SHOW TABLES Syntax
        • SHOW TRIGGERS Syntax
        • SHOW VARIABLES Syntax
        • SHOW WARNINGS Syntax
      • Other Administrative Statements
        • CACHE INDEX Syntax
        • FLUSH Syntax
        • KILL Syntax
        • LOAD INDEX INTO CACHE Syntax
        • RESET Syntax
    • Replication Statements
      • SQL Statements for Controlling Master Servers
        • PURGE MASTER LOGS Syntax
        • RESET MASTER Syntax
        • SET SQL_LOG_BIN Syntax
        • SHOW BINLOG EVENTS Syntax
        • SHOW BINARY LOGS Syntax
        • SHOW MASTER STATUS Syntax
        • SHOW SLAVE HOSTS Syntax
      • SQL Statements for Controlling Slave Servers
        • CHANGE MASTER TO Syntax
        • LOAD DATA FROM MASTER Syntax
        • LOAD TABLE tbl_name FROM MASTER Syntax
        • MASTER_POS_WAIT() Syntax
        • RESET SLAVE Syntax
        • SET GLOBAL SQL_SLAVE_SKIP_COUNTER Syntax
        • SHOW SLAVE STATUS Syntax
        • START SLAVE Syntax
        • STOP SLAVE Syntax
    • SQL Syntax for Prepared Statements
  • Storage Engines and Table Types
    • The MyISAM Storage Engine
      • MyISAM Startup Options
      • Space Needed for Keys
      • MyISAM Table Storage Formats
        • Static (Fixed-Length) Table Characteristics
        • Dynamic Table Characteristics
        • Compressed Table Characteristics
      • MyISAM Table Problems
        • Corrupted MyISAM Tables
        • Problems from Tables Not Being Closed Properly
    • The InnoDB Storage Engine
      • InnoDB Overview
      • InnoDB Contact Information
      • InnoDB Configuration
        • Using Per-Table Tablespaces
        • Using Raw Devices for the Shared Tablespace
      • InnoDB Startup Options and System Variables
      • Creating the InnoDB Tablespace
        • Dealing with InnoDB Initialization Problems
      • Creating and Using InnoDB Tables
        • How to Use Transactions in InnoDB with Different APIs
        • Converting MyISAM Tables to InnoDB
        • How AUTO_INCREMENT Columns Work in InnoDB
        • FOREIGN KEY Constraints
        • InnoDB and MySQL Replication
      • Adding and Removing InnoDB Data and Log Files
      • Backing Up and Recovering an InnoDB Database
        • Forcing InnoDB Recovery
        • Checkpoints
      • Moving an InnoDB Database to Another Machine
      • InnoDB Transaction Model and Locking
        • InnoDB Lock Modes
        • InnoDB and AUTOCOMMIT
        • InnoDB and TRANSACTION ISOLATION LEVEL
        • Consistent Non-Locking Read
        • SELECT ... FOR UPDATE and SELECT ... LOCK IN SHARE MODE Locking Reads
        • Next-Key Locking: Avoiding the Phantom Problem
        • An Example of Consistent Read in InnoDB
        • Locks Set by Different SQL Statements in InnoDB
        • Implicit Transaction Commit and Rollback
        • Deadlock Detection and Rollback
        • How to Cope with Deadlocks
      • InnoDB Performance Tuning Tips
        • SHOW ENGINE INNODB STATUS and the InnoDB Monitors
      • Implementation of Multi-Versioning
      • InnoDB Table and Index Structures
        • Physical Structure of an Index
        • Insert Buffering
        • Adaptive Hash Indexes
        • Physical Row Structure
      • InnoDB File Space Management and Disk I/O
        • InnoDB Disk I/O
        • File Space Management
        • Defragmenting a Table
      • InnoDB Error Handling
        • InnoDB Error Codes
        • Operating System Error Codes
      • Restrictions on InnoDB Tables
      • InnoDB Troubleshooting
        • Troubleshooting InnoDB Data Dictionary Operations
    • The MERGE Storage Engine
      • MERGE Table Problems
    • The MEMORY (HEAP) Storage Engine
    • The BDB (BerkeleyDB) Storage Engine
      • Operating Systems Supported by BDB
      • Installing BDB
      • BDB Startup Options
      • Characteristics of BDB Tables
      • Things We Need to Fix for BDB
      • Restrictions on BDB Tables
      • Errors That May Occur When Using BDB Tables
    • The EXAMPLE Storage Engine
    • The FEDERATED Storage Engine
      • Description of the FEDERATED Storage Engine
      • How to use FEDERATED Tables
      • Limitations of the FEDERATED Storage Engine
    • The ARCHIVE Storage Engine
    • The CSV Storage Engine
    • The BLACKHOLE Storage Engine
  • MySQL Cluster
    • MySQL Cluster Overview
    • Basic MySQL Cluster Concepts
      • MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
    • Simple Multi-Computer How-To
      • Hardware, Software, and Networking
      • Multi-Computer Installation
      • Multi-Computer Configuration
      • Initial Startup
      • Loading Sample Data and Performing Queries
      • Safe Shutdown and Restart
    • MySQL Cluster Configuration
      • Building MySQL Cluster from Source Code
      • Installing the Software
      • Quick Test Setup of MySQL Cluster
      • Configuration File
        • Basic Example Configuration for a MySQL Cluster
        • The MySQL Cluster connectstring
        • Defining the Computers Making up a MySQL Cluster
        • Defining the MySQL Cluster Management Server
        • Defining MySQL Cluster Data Nodes
        • Defining the SQL Nodes in a MySQL Cluster
        • MySQL Cluster TCP/IP Connections
        • MySQL Cluster TCP/IP Connections Using Direct Connections
        • MySQL Cluster Shared-Memory Connections
        • MySQL Cluster SCI Transport Connections
      • Overview of Cluster Configuration Parameters
        • Cluster Data Node Configuration Parameters
        • Cluster Management Node Configuration Parameters
        • Cluster SQL Node Configuration Parameters
      • Configuring Parameters for Local Checkpoints
    • Upgrading and Downgrading MySQL Cluster
      • Performing a Rolling Upgrade or Downgrade
      • Cluster Upgrade and Downgrade Compatibility
    • Process Management in MySQL Cluster
      • MySQL Server Process Usage for MySQL Cluster
      • ndbd, the Storage Engine Node Process
      • ndb_mgmd, the Management Server Process
      • ndb_mgm, the Management Client Process
      • Command Options for MySQL Cluster Processes
        • MySQL Cluster-Related Command Options for mysqld
        • Command Options for ndbd
        • Command Options for ndb_mgmd
        • Command Options for ndb_mgm
    • Management of MySQL Cluster
      • MySQL Cluster Startup Phases
      • Commands in the Management Client
      • Event Reports Generated in MySQL Cluster
        • Logging Management Commands
        • Log Events
        • Using CLUSTERLOG STATISTICS
      • Single-User Mode
    • On-line Backup of MySQL Cluster
      • Cluster Backup Concepts
      • Using The Management Client to Create a Backup
      • How to Restore a Cluster Backup
      • Configuration for Cluster Backup
      • Backup Troubleshooting
    • Using High-Speed Interconnects with MySQL Cluster
      • Configuring MySQL Cluster to use SCI Sockets
      • Understanding the Impact of Cluster Interconnects
    • Known Limitations of MySQL Cluster
    • MySQL Cluster Development Roadmap
      • MySQL Cluster Changes in MySQL 5.0
      • MySQL 5.1 Development Roadmap for MySQL Cluster
    • MySQL Cluster FAQ
    • MySQL Cluster Glossary
  • Spatial Extensions
    • Introduction to MySQL Spatial Support
    • The OpenGIS Geometry Model
      • The Geometry Class Hierarchy
      • Class Geometry
      • Class Point
      • Class Curve
      • Class LineString
      • Class Surface
      • Class Polygon
      • Class GeometryCollection
      • Class MultiPoint
      • Class MultiCurve
      • Class MultiLineString
      • Class MultiSurface
      • Class MultiPolygon
    • Supported Spatial Data Formats
      • Well-Known Text (WKT) Format
      • Well-Known Binary (WKB) Format
    • Creating a Spatially Enabled MySQL Database
      • MySQL Spatial Data Types
      • Creating Spatial Values
        • Creating Geometry Values Using WKT Functions
        • Creating Geometry Values Using WKB Functions
        • Creating Geometry Values Using MySQL-Specific Functions
      • Creating Spatial Columns
      • Populating Spatial Columns
      • Fetching Spatial Data
    • Analyzing Spatial Information
      • Geometry Format Conversion Functions
      • Geometry Functions
        • General Geometry Functions
        • Point Functions
        • LineString Functions
        • MultiLineString Functions
        • Polygon Functions
        • MultiPolygon Functions
        • GeometryCollection Functions
      • Functions That Create New Geometries from Existing Ones
        • Geometry Functions That Produce New Geometries
        • Spatial Operators
      • Functions for Testing Spatial Relations Between Geometric Objects
      • Relations on Geometry Minimal Bounding Rectangles (MBRs)
      • Functions That Test Spatial Relationships Between Geometries
    • Optimizing Spatial Analysis
      • Creating Spatial Indexes
      • Using a Spatial Index
    • MySQL Conformance and Compatibility
  • Stored Procedures and Functions
    • Stored Routines and the Grant Tables
    • Stored Routine Syntax
      • CREATE PROCEDURE and CREATE FUNCTION Syntax
      • ALTER PROCEDURE and ALTER FUNCTION Syntax
      • DROP PROCEDURE and DROP FUNCTION Syntax
      • CALL Statement Syntax
      • BEGIN ... END Compound Statement Syntax
      • DECLARE Statement Syntax
      • Variables in Stored Routines
        • DECLARE Local Variables
        • Variable SET Statement
        • SELECT ... INTO Statement
      • Conditions and Handlers
        • DECLARE Conditions
        • DECLARE Handlers
      • Cursors
        • Declaring Cursors
        • Cursor OPEN Statement
        • Cursor FETCH Statement
        • Cursor CLOSE Statement
      • Flow Control Constructs
        • IF Statement
        • CASE Statement
        • LOOP Statement
        • LEAVE Statement
        • ITERATE Statement
        • REPEAT Statement
        • WHILE Statement
    • Stored Procedures, Functions, Triggers, and Replication: Frequently Asked Questions
    • Binary Logging of Stored Routines and Triggers
  • Triggers
    • CREATE TRIGGER Syntax
    • DROP TRIGGER Syntax
    • Using Triggers
  • Views
    • ALTER VIEW Syntax
    • CREATE VIEW Syntax
    • DROP VIEW Syntax
  • The INFORMATION_SCHEMA Database
    • The INFORMATION_SCHEMA SCHEMATA Table
    • The INFORMATION_SCHEMA TABLES Table
    • The INFORMATION_SCHEMA COLUMNS Table
    • The INFORMATION_SCHEMA STATISTICS Table
    • The INFORMATION_SCHEMA USER_PRIVILEGES Table
    • The INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table
    • The INFORMATION_SCHEMA TABLE_PRIVILEGES Table
    • The INFORMATION_SCHEMA COLUMN_PRIVILEGES Table
    • The INFORMATION_SCHEMA CHARACTER_SETS Table
    • The INFORMATION_SCHEMA COLLATIONS Table
    • The INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY Table
    • The INFORMATION_SCHEMA TABLE_CONSTRAINTS Table
    • The INFORMATION_SCHEMA KEY_COLUMN_USAGE Table
    • The INFORMATION_SCHEMA ROUTINES Table
    • The INFORMATION_SCHEMA VIEWS Table
    • The INFORMATION_SCHEMA TRIGGERS Table
    • Other INFORMATION_SCHEMA Tables
    • Extensions to SHOW Statements
  • Precision Math
    • Types of Numeric Values
    • DECIMAL Data Type Changes
    • Expression Handling
    • Rounding Behavior
    • Precision Math Examples
  • APIs and Libraries
    • libmysqld, the Embedded MySQL Server Library
    • MySQL C API
      • C API Data types
      • C API Function Overview
      • C API Function Descriptions
        • mysql_affected_rows()
        • mysql_autocommit()
        • mysql_change_user()
        • mysql_character_set_name()
        • mysql_close()
        • mysql_commit()
        • mysql_connect()
        • mysql_create_db()
        • mysql_data_seek()
        • mysql_debug()
        • mysql_drop_db()
        • mysql_dump_debug_info()
        • mysql_eof()
        • mysql_errno()
        • mysql_error()
        • mysql_escape_string()
        • mysql_fetch_field()
        • mysql_fetch_field_direct()
        • mysql_fetch_fields()
        • mysql_fetch_lengths()
        • mysql_fetch_row()
        • mysql_field_count()
        • mysql_field_seek()
        • mysql_field_tell()
        • mysql_free_result()
        • mysql_get_character_set_info()
        • mysql_get_client_info()
        • mysql_get_client_version()
        • mysql_get_host_info()
        • mysql_get_proto_info()
        • mysql_get_server_info()
        • mysql_get_server_version()
        • mysql_hex_string()
        • mysql_info()
        • mysql_init()
        • mysql_insert_id()
        • mysql_kill()
        • mysql_library_end()
        • mysql_library_init()
        • mysql_list_dbs()
        • mysql_list_fields()
        • mysql_list_processes()
        • mysql_list_tables()
        • mysql_more_results()
        • mysql_next_result()
        • mysql_num_fields()
        • mysql_num_rows()
        • mysql_options()
        • mysql_ping()
        • mysql_query()
        • mysql_real_connect()
        • mysql_real_escape_string()
        • mysql_real_query()
        • mysql_refresh()
        • mysql_reload()
        • mysql_rollback()
        • mysql_row_seek()
        • mysql_row_tell()
        • mysql_select_db()
        • mysql_set_character_set()
        • mysql_set_local_infile_default()
        • mysql_set_local_infile_handler()
        • mysql_set_server_option()
        • mysql_shutdown()
        • mysql_sqlstate()
        • mysql_ssl_set()
        • mysql_stat()
        • mysql_store_result()
        • mysql_thread_id()
        • mysql_use_result()
        • mysql_warning_count()
      • C API Prepared Statements
      • C API Prepared Statement Data types
      • C API Prepared Statement Function Overview
      • C API Prepared Statement Function Descriptions
        • mysql_stmt_affected_rows()
        • mysql_stmt_attr_get()
        • mysql_stmt_attr_set()
        • mysql_stmt_bind_param()
        • mysql_stmt_bind_result()
        • mysql_stmt_close()
        • mysql_stmt_data_seek()
        • mysql_stmt_errno()
        • mysql_stmt_error()
        • mysql_stmt_execute()
        • mysql_stmt_fetch()
        • mysql_stmt_fetch_column()
        • mysql_stmt_field_count()
        • mysql_stmt_free_result()
        • mysql_stmt_init()
        • mysql_stmt_insert_id()
        • mysql_stmt_num_rows()
        • mysql_stmt_param_count()
        • mysql_stmt_param_metadata()
        • mysql_stmt_prepare()
        • mysql_stmt_reset()
        • mysql_stmt_result_metadata()
        • mysql_stmt_row_seek()
        • mysql_stmt_row_tell()
        • mysql_stmt_send_long_data()
        • mysql_stmt_sqlstate()
        • mysql_stmt_store_result()
      • C API Prepared statement problems
      • C API Handling of Multiple Statement Execution
      • C API Handling of Date and Time Values
      • C API Threaded Function Descriptions
        • my_init()
        • mysql_thread_init()
        • mysql_thread_end()
        • mysql_thread_safe()
      • C API Embedded Server Function Descriptions
        • mysql_server_init()
        • mysql_server_end()
      • Common Questions and Problems When Using the C API
        • Why mysql_store_result() Sometimes Returns NULL After mysql_query() Returns Success
        • What Results You Can Get from a Query
        • How to Get the Unique ID for the Last Inserted Row
        • Problems Linking with the C API
      • Building Client Programs
      • How to Make a Threaded Client
    • MySQL PHP API
      • Common Problems with MySQL and PHP
      • Enabling Both mysql and mysqli in PHP
    • MySQL Perl API
    • MySQL C++ API
      • Borland C++
    • MySQL Python API
    • MySQL Tcl API
    • MySQL Eiffel Wrapper
    • MySQL Program Development Utilities
      • msql2mysql ?Convert mSQL Programs for Use with MySQL
      • mysql_config ?Get Compile Options for Compiling Clients
  • Connectors
    • MySQL Connector/ODBC
      • Introduction to MyODBC
        • MyODBC Versions
        • General Information About ODBC and MyODBC
          • MyODBC Architecture
          • ODBC Driver Managers
      • How to Install MyODBC
        • Where to Get MyODBC
        • Supported Platforms
        • Installing MyODBC from a binary distribution
          • Installing MyODBC from a Binary Distribution on Windows
            • Installing the Windows MyODBC Driver using an installer
            • Installing the Windows MyODBC Driver using the Zipped DLL package
            • Handling Installation Errors
          • Installing MyODBC from a Binary Distribution on Unix
            • Installing MyODBC from a Binary Tarball Distribution
            • Installing MyODBC from an RPM Distribution
          • Installing MyODBC on Mac OS X
            • Installing the MyODBC Driver
        • Installing MyODBC from a source distribution
          • Installing MyODBC from a Source Distribution on Windows
            • Building MyODBC 3.51
            • Testing
            • Building MyODBC 2.50
          • Installing MyODBC from a Source Distribution on Unix
            • Typical configure Options
            • Additional configure Options
            • Building and Compilation
            • Building Shared Libraries
            • Installing Driver Libraries
            • Testing MyODBC on Unix
            • Building MyODBC from Source on Mac OS X
            • Building MyODBC from Source on HP-UX
            • Building MyODBC from Source on AIX
          • Installing MyODBC from the Development Source Tree
      • MyODBC Configuration
        • Data Source Names
        • Configuring a MyODBC DSN on Windows
          • Adding a MyODBC DSN on Windows
          • Checking MyODBC DSN Configuration on Windows
          • MyODBC DSN Configuration Options
          • Errors and Debugging
        • Configuring a MyODBC DSN on Mac OS X
        • Configuring a MyODBC DSN on Unix
        • MyODBC Connection Parameters
        • Connecting Without a Predefined DSN
        • ODBC Connection Pooling
        • Getting an ODBC Trace File
          • Enabling ODBC Tracing on Windows
          • Enabling ODBC Tracing on Mac OS X
          • Enabling ODBC Tracing on Unix
          • Enabling a MyODBC Log
      • MyODBC Examples
        • Basic MyODBC Application Steps
        • Step-by-step Guide to Connecting to a MySQL Database through MyODBC
        • MyODBC and Third-Party ODBC Tools
          • Applications Tested with MyODBC
          • Using MyODBC with Microsoft Word or Excel
          • Using MyODBC and Microsoft Access
            • Exporting Access Data to MySQL
            • Importing MySQL Data to Access
            • Linking MySQL Data to Access Tables
        • MyODBC Programming Examples
          • Using MyODBC with Visual Basic Using ADO, DAO and RDO
            • ADO: rs.addNew, rs.delete, and rs.update
            • DAO: rs.addNew, rs.update, and Scrolling
            • RDO: rs.addNew and rs.update
          • Using MyODBC with .NET
            • Using MyODBC with ODBC.NET and C# (C sharp)
            • Using MyODBC with ODBC.NET and Visual Basic
      • MyODBC Reference
        • MyODBC API Reference
        • MyODBC Data Types
        • MyODBC Error Codes
      • MyODBC Notes and Tips
        • MyODBC General Functionality
          • Obtaining Auto-Increment Values
          • Dynamic Cursor Support
          • MyODBC Performance
          • Setting ODBC Query Timeout in Windows
        • MyODBC Application Specific Tips
          • Using MyODBC with Microsoft Applications
            • Microsoft Access
            • Microsoft Excel and Column Types
            • Microsoft Visual Basic
            • Microsoft Visual InterDev
            • Visual Objects
            • Microsoft ADO
            • Using MyODBC with Active Server Pages (ASP)
            • Using MyODBC with Visual Basic (ADO, DAO and RDO) and ASP
          • Using MyODBC with Borland Applications
            • Using MyODBC with Borland Builder 4
            • Using MyODBC with Delphi
            • Using MyODBC with C++ Builder
          • Using MyODBC with ColdFusion
          • Using MyODBC with OpenOffice
          • Using MyODBC with Sambar Server
          • Using MyODBC with Pervasive Software DataJunction
          • Using MyODBC with SunSystems Vision
        • MyODBC Errors and Resolutions
      • MyODBC Support
        • MyODBC Community Support
        • How to Report MyODBC Problems or Bugs
        • How to Submit a MyODBC Patch
        • MyODBC Change History
        • Credits
    • Connector/NET
      • Connector/NET Versions
      • How to install Connector/NET
        • Installing Connector/NET on Windows
          • Installing Connector/NET using the Installer
          • Installing Connector/NET using the Zip package
        • Installing Connector/NET on Unix with Mono
        • Installing Connector/NET using the Source
      • Connector/NET Examples
        • MySqlCommand
          • Class MySqlCommand Constructor Form 1
          • Class MySqlCommand Constructor Form 2
          • Class MySqlCommand Constructor Form 3
          • Class MySqlCommand Constructor Form 4
          • ExecuteNonQuery
          • ExecuteReader1
          • ExecuteReader
          • Prepare
          • ExecuteScalar
          • CommandText
          • CommandTimeout
          • CommandType
          • Connection
          • IsPrepared
          • Parameters
          • Transaction
          • UpdatedRowSource
        • MySqlCommandBuilder
          • Class MySqlCommandBuilder Constructor
          • Class MySqlCommandBuilder Constructor Form 1
          • Class MySqlCommandBuilder Constructor Form 2
          • Class MySqlCommandBuilder Constructor Form 3
          • DataAdapter
          • QuotePrefix
          • QuoteSuffix
          • DeriveParameters
          • GetDeleteCommand
          • GetInsertCommand
          • GetUpdateCommand
          • RefreshSchema
        • MySqlConnection
          • Class MySqlConnection Constructor (Default)
          • Class MySqlConnection Constructor Form 1
          • Open
          • Database
          • State
          • ServerVersion
          • Close
          • CreateCommand
          • BeginTransaction
          • BeginTransaction1
          • ChangeDatabase
          • StateChange
          • InfoMessage
          • ConnectionTimeout
          • ConnectionString
        • MySqlDataAdapter
          • Class MySqlDataAdapter Constructor
          • Class MySqlDataAdapter Constructor Form 1
          • Class MySqlDataAdapter Constructor Form 2
          • Class MySqlDataAdapter Constructor Form 3
          • DeleteCommand
          • InsertCommand
          • UpdateCommand
          • SelectCommand
        • MySqlDataReader
          • GetBytes
          • GetTimeSpan
          • GetDateTime
          • GetMySqlDateTime
          • GetString
          • GetDecimal
          • GetDouble
          • GetFloat
          • GetGiud
          • GetInt16
          • GetInt32
          • GetInt64
          • GetUInt16
          • GetUInt32
          • GetUInt64
        • MySqlException
        • MySqlParameter
        • MySqlParameterCollection
        • MySqlTransaction
          • Rollback
          • Commit
      • Connector/NET Reference
        • MySql.Data.MySqlClient
          • MySql.Data.MySqlClientHierarchy
          • MySqlCommand Class
            • MySqlCommand Members
          • MySqlCommandBuilder Class
            • MySqlCommandBuilder Members
          • MySqlException Class
            • MySqlException Members
          • MySqlHelper Class
            • MySqlHelper Members
          • MySqlErrorCode Enumeration
        • MySql.Data.Types
          • MySql.Data.TypesHierarchy
          • MySqlConversionException Class
            • MySqlConversionException Members
          • MySqlDateTime Class
            • MySqlDateTime Members
      • Connector/NET Notes and Tips
        • Connecting to MySQL Using Connector/NET
          • Introduction
          • Creating a Connection String
          • Opening a Connection
          • Handling Connection Errors
        • Using the Connector/NET with Prepared Statements
          • Introduction
          • Preparing Statements in Connector/NET
        • Accessing Stored Procedures with Connector/NET
          • Introduction
          • Creating Stored Procedures from Connector/NET
          • Calling a Stored Procedure from Connector/NET
        • Handling BLOB Data With Connector/NET
          • Introduction
          • Preparing the MySQL Server
          • Writing a File to the Database
          • Reading a BLOB from the Database to a File on Disk
        • Using Connector/NET with Crystal Reports
          • Introduction
          • Creating a Data Source
          • Creating the Report
          • Displaying the Report
        • Handling Date and Time Information in Connector/NET
          • Introduction
          • Problems when Using Invalid Dates
          • Restricting Invalid Dates
          • Handling Invalid Dates
          • Handling NULL Dates
      • Connector/NET Support
        • Connector/NET Community Support
        • How to report Connector/NET Problems or Bugs
        • Connector/NET Change History
    • MySQL Connector/J
      • Basic JDBC concepts
        • Connecting to MySQL Using the DriverManager Interface
        • Using Statements to Execute SQL
        • Using CallableStatements to Execute Stored Procedures
        • Retrieving AUTO_INCREMENT Column Values
      • Installing Connector/J
        • Required Software Versions
          • Java Versions Supported
          • MySQL Server Version Guidelines
          • Installing the Driver and Configuring the CLASSPATH
        • Upgrading from an Older Version
          • Upgrading from MySQL Connector/J 3.0 to 3.1
          • JDBC-Specific Issues When Upgrading to MySQL Server 4.1 or Newer
        • Installing from the Development Source Tree
      • JDBC Reference
        • Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J
        • JDBC API Implementation Notes
        • Java, JDBC and MySQL Types
        • Using Character Sets and Unicode
        • Connecting Securely Using SSL
        • Using Master/Slave Replication with ReplicationConnection
      • Using Connector/J with J2EE and Other Java Frameworks
        • General J2EE Concepts
          • Understanding Connection Pooling
        • Using Connector/J with Tomcat
        • Using Connector/J with JBoss
      • Diagnosing Connector/J Problems
        • Common Problems and Solutions
        • How to Report Connector/J Bugs or Problems
      • MySQL Connector/J Change History
        • Changes in MySQL Connector/J 5.0.3 (26 July 2006)
        • Changes in MySQL Connector/J 5.0.2-beta (11 July 2006)
        • Changes in MySQL Connector/J 5.0.1-beta (Not Released)
        • Changes in MySQL Connector/J 5.0.0-beta (22 December 2005)
        • Changes in MySQL Connector/J 3.1.14 (not yet released)
        • Changes in MySQL Connector/J 3.1.13 (26 May 2006)
        • Changes in MySQL Connector/J 3.1.12 (30 November 2005)
        • Changes in MySQL Connector/J 3.1.11-stable (07 October 2005)
        • Changes in MySQL Connector/J 3.1.10-stable (23 June 2005)
        • Changes in MySQL Connector/J 3.1.9-stable (22 June 2005)
        • Changes in MySQL Connector/J 3.1.8-stable (14 April 2005)
        • Changes in MySQL Connector/J 3.1.7-stable (18 February 2005)
        • Changes in MySQL Connector/J 3.1.6-stable (23 December 2004)
        • Changes in MySQL Connector/J 3.1.5-gamma (02 December 2004)
        • Changes in MySQL Connector/J 3.1.4-beta (04 September 2004)
        • Changes in MySQL Connector/J 3.1.3-beta (07 July 2004)
        • Changes in MySQL Connector/J 3.1.2-alpha (09 June 2004)
        • Changes in MySQL Connector/J 3.1.1-alpha (14 February 2004)
        • Changes in MySQL Connector/J 3.1.0-alpha (18 February 2003)
        • Changes in MySQL Connector/J 3.0.17-ga (23 June 2005)
        • Changes in MySQL Connector/J 3.0.16-ga (15 November 2004)
        • Changes in MySQL Connector/J 3.0.15-production (04 September 2004)
        • Changes in MySQL Connector/J 3.0.14-production (28 May 2004)
        • Changes in MySQL Connector/J 3.0.13-production (27 May 2004)
        • Changes in MySQL Connector/J 3.0.12-production (18 May 2004)
        • Changes in MySQL Connector/J 3.0.11-stable (19 February 2004)
        • Changes in MySQL Connector/J 3.0.10-stable (13 January 2004)
        • Changes in MySQL Connector/J 3.0.9-stable (07 October 2003)
        • Changes in MySQL Connector/J 3.0.8-stable (23 May 2003)
        • Changes in MySQL Connector/J 3.0.7-stable (08 April 2003)
        • Changes in MySQL Connector/J 3.0.6-stable (18 February 2003)
        • Changes in MySQL Connector/J 3.0.5-gamma (22 January 2003)
        • Changes in MySQL Connector/J 3.0.4-gamma (06 January 2003)
        • Changes in MySQL Connector/J 3.0.3-dev (17 December 2002)
        • Changes in MySQL Connector/J 3.0.2-dev (08 November 2002)
        • Changes in MySQL Connector/J 3.0.1-dev (21 September 2002)
        • Changes in MySQL Connector/J 3.0.0-dev (31 July 2002)
        • Changes in MySQL Connector/J 2.0.14 (16 May 2002)
        • Changes in MySQL Connector/J 2.0.13 (24 April 2002)
        • Changes in MySQL Connector/J 2.0.12 (07 April 2002)
        • Changes in MySQL Connector/J 2.0.11 (27 January 2002)
        • Changes in MySQL Connector/J 2.0.10 (24 January 2002)
        • Changes in MySQL Connector/J 2.0.9 (13 January 2002)
        • Changes in MySQL Connector/J 2.0.8 (25 November 2001)
        • Changes in MySQL Connector/J 2.0.7 (24 October 2001)
        • Changes in MySQL Connector/J 2.0.6 (16 June 2001)
        • Changes in MySQL Connector/J 2.0.5 (13 June 2001)
        • Changes in MySQL Connector/J 2.0.3 (03 December 2000)
        • Changes in MySQL Connector/J 2.0.1 (06 April 2000)
        • Changes in MySQL Connector/J 2.0.0pre5 (21 February 2000)
        • Changes in MySQL Connector/J 2.0.0pre4 (10 January 2000)
        • Changes in MySQL Connector/J 2.0.0pre (17 August 1999)
        • Changes in MySQL Connector/J 1.2b (04 July 1999)
        • Changes in MySQL Connector/J 1.2a (14 April 1999)
        • Changes in MySQL Connector/J 1.1i (24 March 1999)
        • Changes in MySQL Connector/J 1.1h (08 March 1999)
        • Changes in MySQL Connector/J 1.1g (19 February 1999)
        • Changes in MySQL Connector/J 1.1f (31 December 1998)
        • Changes in MySQL Connector/J 1.1b (03 November 1998)
        • Changes in MySQL Connector/J 1.1 (02 September 1998)
        • Changes in MySQL Connector/J 1.0 (24 August 1998)
        • Changes in MySQL Connector/J 0.9d (04 August 1998)
        • Changes in MySQL Connector/J 0.9 (28 July 1998)
        • Changes in MySQL Connector/J 0.8 (06 July 1998)
        • Changes in MySQL Connector/J 0.7 (01 July 1998)
        • Changes in MySQL Connector/J 0.6 (21 May 1998)
    • MySQL Connector/MXJ
      • Introduction
      • Supported Platforms
      • JUnit Test Requirements
      • Running the JUnit Tests
      • Running as part of the JDBC Driver
      • Running within a Java Object
      • The MysqldResource API
      • Running within a JMX Agent (custom)
      • Deployment in a standard JMX Agent environment (JBoss)
      • Installation
    • Connector/PHP
  • Extending MySQL
    • MySQL Internals
      • MySQL Threads
      • MySQL Test Suite
    • Adding New Functions to MySQL
      • Features of the User-Defined Function Interface
      • CREATE FUNCTION Syntax
      • DROP FUNCTION Syntax
      • Adding a New User-Defined Function
        • UDF Calling Sequences for Simple Functions
        • UDF Calling Sequences for Aggregate Functions
        • UDF Argument Processing
        • UDF Return Values and Error Handling
        • Compiling and Installing User-Defined Functions
        • User-Defined Function Security Precautions
      • Adding a New Native Function
    • Adding New Procedures to MySQL
      • Procedure Analyse
      • Writing a Procedure
  • Problems and Common Errors
    • How to Determine What Is Causing a Problem
    • Common Errors When Using MySQL Programs
      • Access denied
      • Can't connect to [local] MySQL server
        • Connection to MySQL Server Failing on Windows
      • Client does not support authentication protocol
      • Password Fails When Entered Interactively
      • Host 'host_name' is blocked
      • Too many connections
      • Out of memory
      • MySQL server has gone away
      • Packet too large
      • Communication Errors and Aborted Connections
      • The table is full
      • Can't create/write to file
      • Commands out of sync
      • Ignoring user
      • Table 'tbl_name' doesn't exist
      • Can't initialize character set
      • File Not Found
    • Installation-Related Issues
      • Problems Linking to the MySQL Client Library
      • Problems with File Permissions
    • Administration-Related Issues
      • How to Reset the Root Password
      • What to Do If MySQL Keeps Crashing
      • How MySQL Handles a Full Disk
      • Where MySQL Stores Temporary Files
      • How to Protect or Change the MySQL Unix Socket File
      • Time Zone Problems
    • Query-Related Issues
      • Case Sensitivity in Searches
      • Problems Using DATE Columns
      • Problems with NULL Values
      • Problems with Column Aliases
      • Rollback Failure for Non-Transactional Tables
      • Deleting Rows from Related Tables
      • Solving Problems with No Matching Rows
      • Problems with Floating-Point Comparisons
    • Optimizer-Related Issues
    • Table Definition-Related Issues
      • Problems with ALTER TABLE
      • How to Change the Order of Columns in a Table
      • TEMPORARY TABLE Problems
    • Known Issues in MySQL
      • Open Issues in MySQL
  • Error Codes and Messages
    • Server Error Codes and Messages
    • Client Error Codes and Messages
  • Credits
    • Developers at MySQL AB
    • Contributors to MySQL
    • Documenters and translators
    • Libraries used by and included with MySQL
    • Packages that support MySQL
    • Tools that were used to create MySQL
    • Supporters of MySQL
  • MySQL Change History
    • Changes in release 5.0.x (Production)
      • Changes in release 5.0.25 (Not yet released)
      • Changes in release 5.0.24 (Not yet released)
      • Changes in release 5.0.23 (Not released)
      • Changes in release 5.0.22 (24 May 2006)
      • Changes in release 5.0.21 (02 May 2006)
      • Changes in release 5.0.20a (18 April 2006)
      • Changes in release 5.0.20 (31 March 2006)
      • Changes in release 5.0.19 (04 March 2006)
      • Changes in release 5.0.18 (21 December 2005)
      • Changes in release 5.0.17 (14 December 2005)
      • Changes in release 5.0.16 (10 November 2005)
      • Changes in release 5.0.15 (19 October 2005: Production)
      • Changes in release 5.0.14 (Not released)
      • Changes in release 5.0.13 (22 September 2005: Release Candidate)
      • Changes in release 5.0.12 (02 September 2005)
      • Changes in release 5.0.11 (06 August 2005)
      • Changes in release 5.0.10 (27 July 2005)
      • Changes in release 5.0.9 (15 July 2005)
      • Changes in release 5.0.8 (Not released)
      • Changes in release 5.0.7 (10 June 2005)
      • Changes in release 5.0.6 (26 May 2005)
      • Changes in release 5.0.5 (Not released)
      • Changes in release 5.0.4 (16 April 2005)
      • Changes in release 5.0.3 (23 March 2005: Beta)
      • Changes in release 5.0.2 (01 December 2004)
      • Changes in release 5.0.1 (27 July 2004)
      • Changes in release 5.0.0 (22 December 2003: Alpha)
    • Changes in MySQL Cluster
      • Changes in MySQL Cluster-5.0.7 (10 June 2005)
      • Changes in MySQL Cluster-5.0.6 (26 May 2005)
      • Changes in MySQL Cluster-5.0.5 (Not released)
      • Changes in MySQL Cluster-5.0.4 (16 April 2005)
      • Changes in MySQL Cluster-5.0.3 (23 March 2005: Beta)
      • Changes in MySQL Cluster-5.0.1 (27 July 2004)
      • Changes in MySQL Cluster-4.1.13 (15 July 2005)
      • Changes in MySQL Cluster-4.1.12 (13 May 2005)
      • Changes in MySQL Cluster-4.1.11 (01 April 2005)
      • Changes in MySQL Cluster-4.1.10 (12 February 2005)
      • Changes in MySQL Cluster-4.1.9 (13 January 2005)
      • Changes in MySQL Cluster-4.1.8 (14 December 2004)
      • Changes in MySQL Cluster-4.1.7 (23 October 2004)
      • Changes in MySQL Cluster-4.1.6 (10 October 2004)
      • Changes in MySQL Cluster-4.1.5 (16 September 2004)
      • Changes in MySQL Cluster-4.1.4 (31 August 2004)
      • Changes in MySQL Cluster-4.1.3 (28 June 2004)
    • MySQL Connector/ODBC (MyODBC) Change History
      • Changes in MyODBC 3.51.13
      • Changes in MyODBC 3.51.12
      • Changes in MyODBC 3.51.11
    • MySQL Connector/NET Change History
      • Version 1.0.8
      • Version 1.0.7
      • Version 1.0.6
      • Version 1.0.5
      • Version 1.0.4 1-20-05
      • Version 1.0.3-gamma 12-10-04
      • Version 1.0.2-gamma 04-11-15
      • Version 1.0.1-beta2 04-10-27
      • Version 1.0.0 04-09-01
      • Version 0.9.0 04-08-30
      • Version 0.76
      • Version 0.75
      • Version 0.74
      • Version 0.71
      • Version 0.70
      • Version 0.68
      • Version 0.65
      • Version 0.60
      • Version 0.50
  • Porting to Other Systems
    • Debugging a MySQL Server
      • Compiling MySQL for Debugging
      • Creating Trace Files
      • Debugging mysqld under gdb
      • Using a Stack Trace
      • Using Server Logs to Find Causes of Errors in mysqld
      • Making a Test Case If You Experience Table Corruption
    • Debugging a MySQL Client
    • The DBUG Package
    • Comments about RTS Threads
    • Differences Between Thread Packages
  • Environment Variables
  • Regular Expressions
  • Limits in MySQL
    • Limits of Joins
  • Feature Restrictions
    • Restrictions on Stored Routines and Triggers
    • Restrictions on Server-Side Cursors
    • Restrictions on Subqueries
    • Restrictions on Views
    • Restrictions on XA Transactions
  • GNU General Public License
  • MySQL FLOSS License Exception