MySQL 3.23, 4.0, 4.1 Reference Manual

Copyright © 1997-2008 MySQL AB, 2009 Sun Microsystems, Inc. All rights reserved. U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard license agreement and applicable provisions of the FAR and its supplements. Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java, Solaris, StarOffice, MySQL Enterprise Monitor 2.0, MySQL logo™ and MySQL™ are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.

Copyright © 1997-2008 MySQL AB, 2009 Sun Microsystems, Inc. Tous droits réservés. L'utilisation est soumise aux termes du contrat de licence.Sun, Sun Microsystems, le logo Sun, Java, Solaris, StarOffice, MySQL Enterprise Monitor 2.0, MySQL logo™ et MySQL™ sont des marques de fabrique ou des marques déposées de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. UNIX est une marque déposée aux Etats-Unis et dans d'autres pays et licenciée exlusivement par X/Open Company, Ltd.

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 Sun 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 Sun Microsystems, Inc. Sun Microsystems, Inc. and MySQL AB 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 contact the Documentation Team.

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, CHM, and PDF formats, see MySQL Documentation Library.

Abstract

This is the MySQL Reference Manual. It documents MySQL 3.23 through MySQL 4.1.26.

MySQL 3.23, MySQL 4.0, and MySQL 4.1 features.  This manual describes features that are not included in every edition of MySQL 3.23, MySQL 4.0, and MySQL 4.1; such features may not be included in the edition of MySQL 3.23, MySQL 4.0, or MySQL 4.1; licensed to you. If you have any questions about the features included in your edition of MySQL 3.23, MySQL 4.0, or MySQL 4.1, refer to your MySQL 3.23, MySQL 4.0, or MySQL 4.1 agreement or contact your Sun Microsystems sales representative.

Document generated on: 2009-07-19 (revision: 15748)

End of Product LifecycleActive development and support for MySQL database server versions 3.23, 4.0, and 4.1 has ended. However, for MySQL 4.0 and 4.1, there is still extended support available. For details, see http://www.mysql.com/company/legal/lifecycle/#calendar. According to the MySQL Lifecycle Policy (see http://www.mysql.com/company/legal/lifecycle/#policy), only Security and Severity Level 1 issues will still be fixed for MySQL 4.0 and 4.1. Please consider upgrading to a recent version (MySQL 5.0 or 5.1).


Table of Contents

Preface, Notes, Licenses
1. MySQL Copyright Notice
2. regex Library License
3. RSA MD5 Algorithm License
4. libedit License
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 Roadmap
1.4.1. MySQL 4.0 in a Nutshell
1.4.2. MySQL 4.1 in a Nutshell
1.4.3. What Is New in MySQL 5.0
1.5. MySQL Information Sources
1.5.1. MySQL Mailing Lists
1.5.2. MySQL Community Support at the MySQL Forums
1.5.3. MySQL Community Support on Internet Relay Chat (IRC)
1.5.4. MySQL Enterprise
1.6. How to Report Bugs or Problems
1.7. MySQL Standards Compliance
1.7.1. What Standards MySQL Follows
1.7.2. Selecting SQL Modes
1.7.3. Running MySQL in ANSI Mode
1.7.4. MySQL Extensions to Standard SQL
1.7.5. MySQL Differences from Standard SQL
1.7.6. How MySQL Deals with Constraints
1.8. Credits
1.8.1. Contributors to MySQL
1.8.2. Documenters and translators
1.8.3. Packages that support MySQL
1.8.4. Tools that were used to create MySQL
1.8.5. Supporters of MySQL
2. Installing and Upgrading MySQL
2.1. General Installation Issues
2.1.1. Operating Systems On Which MySQL Is Known To Run
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.2. Standard MySQL Installation Using a Binary Distribution
2.3. Installing MySQL on Windows
2.3.1. Choosing An Installation Package
2.3.2. Installing MySQL with the Automated Installer
2.3.3. Using the MySQL Installation Wizard
2.3.4. Using the Configuration Wizard
2.3.5. Installing MySQL from a Noinstall Zip Archive
2.3.6. Extracting the Install Archive
2.3.7. Creating an Option File
2.3.8. Selecting a MySQL Server Type
2.3.9. Starting the Server for the First Time
2.3.10. Starting MySQL from the Windows Command Line
2.3.11. Starting MySQL as a Windows Service
2.3.12. Testing The MySQL Installation
2.3.13. Troubleshooting a MySQL Installation Under Windows
2.3.14. Upgrading MySQL on Windows
2.3.15. MySQL on Windows Compared to MySQL on Unix
2.4. Installing MySQL from RPM Packages on Linux
2.5. Installing MySQL on Mac OS X
2.6. Installing MySQL on Solaris
2.7. Installing MySQL on NetWare
2.8. Installing MySQL from tar.gz Packages on Other Unix-Like Systems
2.9. MySQL Installation Using a Source Distribution
2.9.1. Source Installation Overview
2.9.2. Typical configure Options
2.9.3. Installing from the Development Source Tree
2.9.4. Dealing with Problems Compiling MySQL
2.9.5. MIT-pthreads Notes
2.9.6. Installing MySQL from Source on Windows
2.9.7. Compiling MySQL Clients on Windows
2.10. Post-Installation Setup and Testing
2.10.1. Windows Post-Installation Procedures
2.10.2. Unix Post-Installation Procedures
2.10.3. Securing the Initial MySQL Accounts
2.11. Upgrading or Downgrading MySQL
2.11.1. Upgrading MySQL
2.11.2. Downgrading MySQL
2.11.3. Checking Whether Table Indexes Must Be Rebuilt
2.11.4. Rebuilding or Repairing Tables or Indexes
2.11.5. Copying MySQL Databases to Another Machine
2.12. Operating System-Specific Notes
2.12.1. Linux Notes
2.12.2. Mac OS X Notes
2.12.3. Solaris Notes
2.12.4. BSD Notes
2.12.5. Other Unix Notes
2.12.6. OS/2 Notes
2.13. Environment Variables
2.14. Perl Installation Notes
2.14.1. Installing Perl on Unix
2.14.2. Installing ActiveState Perl on Windows
2.14.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 Field
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. Queries from the Twin Project
3.7.1. Find All Nondistributed Twins
3.7.2. Show a Table of Twin Pair Status
3.8. 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_src_distribution — Create Source Distribution for Windows
4.4.3. mysql_create_system_tables — Generate Statements to Initialize MySQL System Tables
4.4.4. mysqlbug — Generate Bug Report
4.4.5. mysql_fix_privilege_tables — Upgrade MySQL System Tables
4.4.6. mysql_install_db — Initialize MySQL Data Directory
4.4.7. mysql_secure_installation — Improve MySQL Installation Security
4.4.8. mysql_tzinfo_to_sql — Load the Time Zone Tables
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.6. MySQL Administrative and Utility Programs
4.6.1. myisam_ftdump — Display Full-Text Index information
4.6.2. myisamchk — MyISAM Table-Maintenance Utility
4.6.3. myisamlog — Display MyISAM Log File Contents
4.6.4. myisampack — Generate Compressed, Read-Only MyISAM Tables
4.6.5. mysqlaccess — Client for Checking Access Privileges
4.6.6. mysqlbinlog — Utility for Processing Binary Log Files
4.6.7. mysqldumpslow — Summarize Slow Query Log Files
4.6.8. mysqlhotcopy — A Database Backup Program
4.6.9. mysqlmanagerc — Internal Test-Suite Program
4.6.10. mysqlmanager-pwgen — Internal Test-Suite Program
4.6.11. mysql_convert_table_format — Convert Tables to Use a Given Storage Engine
4.6.12. mysql_explain_log — Use EXPLAIN on Statements in Query Log
4.6.13. mysql_find_rows — Extract SQL Statements from Files
4.6.14. mysql_fix_extensions — Normalize Table File Name Extensions
4.6.15. mysql_setpermission — Interactively Set Permissions in Grant Tables
4.6.16. mysql_tableinfo — Generate Database Metadata
4.6.17. mysql_waitpid — Kill Process and Wait for Its Termination
4.6.18. mysql_zap — Kill Processes That Match a Pattern
4.7. MySQL Program Development Utilities
4.7.1. msql2mysql — Convert mSQL Programs for Use with MySQL
4.7.2. mysql_config — Get Compile Options for Compiling Clients
4.7.3. my_print_defaults — Display Options from Option Files
4.7.4. resolve_stack_dump — Resolve Numeric Stack Trace Dump to Symbols
4.8. Miscellaneous Programs
4.8.1. perror — Explain Error Codes
4.8.2. replace — A String-Replacement Utility
4.8.3. resolveip — Resolve Host name to IP Address or Vice Versa
5. MySQL Server Administration
5.1. The MySQL Server
5.1.1. Server Option and Variable Reference
5.1.2. Server Command Options
5.1.3. Server System Variables
5.1.4. Session 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. The mysqld-max Extended MySQL Server
5.3. MySQL Server Logs
5.3.1. The Error Log
5.3.2. The General Query Log
5.3.3. The Update Log
5.3.4. The Binary Log
5.3.5. The Slow Query Log
5.3.6. Server Log Maintenance
5.4. General Security Issues
5.4.1. General Security Guidelines
5.4.2. Making MySQL Secure Against Attackers
5.4.3. Security-Related mysqld Options
5.4.4. Security Issues with LOAD DATA LOCAL
5.4.5. How to Run MySQL as a Normal User
5.5. The MySQL Access Privilege System
5.5.1. Privileges Provided by MySQL
5.5.2. Privilege System Grant Tables
5.5.3. Specifying Account Names
5.5.4. Access Control, Stage 1: Connection Verification
5.5.5. Access Control, Stage 2: Request Verification
5.5.6. When Privilege Changes Take Effect
5.5.7. Causes of Access-Denied Errors
5.6. MySQL User Account Management
5.6.1. User Names and Passwords
5.6.2. Adding User Accounts
5.6.3. Removing User Accounts
5.6.4. Limiting Account Resources
5.6.5. Assigning Account Passwords
5.6.6. Password Security in MySQL
5.6.7. Using SSL for Secure Connections
5.6.8. Connecting to MySQL Remotely from Windows with SSH
5.6.9. Auditing MySQL Account Activity
5.7. Running Multiple MySQL Servers on the Same Machine
5.7.1. Running Multiple Servers on Windows
5.7.2. Running Multiple Servers on Unix
5.7.3. Using Client Programs in a Multiple-Server Environment
6. Backup and Recovery
6.1. Database Backups
6.2. Example Backup and Recovery Strategy
6.2.1. Backup Policy
6.2.2. Using Backups for Recovery
6.2.3. Backup Strategy Summary
6.3. Point-in-Time Recovery
6.3.1. Specifying Times for Recovery
6.3.2. Specifying Positions for Recovery
6.4. Table Maintenance and Crash Recovery
6.4.1. Using myisamchk for Crash Recovery
6.4.2. How to Check MyISAM Tables for Errors
6.4.3. How to Repair Tables
6.4.4. Table Optimization
6.4.5. Getting Information About a Table
6.4.6. Setting Up a Table Maintenance Schedule
7. Optimization
7.1. Optimization Overview
7.1.1. MySQL Design Limitations and Tradeoffs
7.1.2. Designing Applications for Portability
7.1.3. What We Have Used MySQL For
7.1.4. The MySQL Benchmark Suite
7.1.5. Using Your Own Benchmarks
7.2. Optimizing SELECT and Other Statements
7.2.1. Optimizing Queries with EXPLAIN
7.2.2. Estimating Query Performance
7.2.3. Speed of SELECT Queries
7.2.4. WHERE Clause Optimization
7.2.5. Range Optimization
7.2.6. IS NULL Optimization
7.2.7. LEFT JOIN and RIGHT JOIN Optimization
7.2.8. Nested-Loop Join Algorithms
7.2.9. ORDER BY Optimization
7.2.10. GROUP BY Optimization
7.2.11. DISTINCT Optimization
7.2.12. LIMIT Optimization
7.2.13. How to Avoid Table Scans
7.2.14. Speed of INSERT Statements
7.2.15. Speed of UPDATE Statements
7.2.16. Speed of DELETE Statements
7.2.17. Other Optimization Tips
7.3. Locking Issues
7.3.1. Internal Locking Methods
7.3.2. Table Locking Issues
7.3.3. Concurrent Inserts
7.3.4. External Locking
7.4. Optimizing Database Structure
7.4.1. Make Your Data as Small as Possible
7.4.2. Column Indexes
7.4.3. Multiple-Column Indexes
7.4.4. How MySQL Uses Indexes
7.4.5. The MyISAM Key Cache
7.4.6. MyISAM Index Statistics Collection
7.4.7. How MySQL Opens and Closes Tables
7.4.8. Disadvantages of Creating Many Tables in the Same Database
7.5. Optimizing the MySQL Server
7.5.1. How Compiling and Linking Affects the Speed of MySQL
7.5.2. System Factors and Startup Parameter Tuning
7.5.3. Tuning Server Parameters
7.5.4. The MySQL Query Cache
7.5.5. Examining Thread Information
7.5.6. How MySQL Uses Threads for Client Connections
7.5.7. How MySQL Uses Memory
7.5.8. How MySQL Uses Internal Temporary Tables
7.5.9. How MySQL Uses DNS
7.6. Disk Issues
7.6.1. Using Symbolic Links
8. Language Structure
8.1. Literal Values
8.1.1. Strings
8.1.2. Numbers
8.1.3. Hexadecimal Values
8.1.4. Boolean Values
8.1.5. NULL Values
8.2. Database, Table, Index, Column, and Alias Names
8.2.1. Identifier Qualifiers
8.2.2. Identifier Case Sensitivity
8.2.3. Function Name Parsing and Resolution
8.3. Reserved Words
8.4. User-Defined Variables
8.5. 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. Collation Issues
9.1.7. Operations Affected by Character Set Support
9.1.8. Unicode Support
9.1.9. UTF-8 for Metadata
9.1.10. Upgrading Character Sets from MySQL 4.0
9.1.11. Character Sets and Collations That MySQL Supports
9.2. The Character Set Used for Data and Sorting
9.2.1. Using the German Character Set
9.3. Setting the Error Message Language
9.4. Adding a New Character Set
9.4.1. The Character Definition Arrays
9.4.2. String Collating Support
9.4.3. Multi-Byte Character Support
9.5. How to Add a New Collation to a Character Set
9.5.1. Collation Implementation Types
9.5.2. Choosing a Collation ID
9.5.3. Adding a Simple Collation to an 8-Bit Character Set
9.6. Problems With Character Sets
9.7. MySQL Server Time Zone Support
9.7.1. Staying Current with Time Zone Changes
9.8. 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. Choosing the Right Type for a Column
10.7. Using Data Types from Other Database Engines
11. Functions and Operators
11.1. Operator and Function Reference
11.2. Operators
11.2.1. Operator Precedence
11.2.2. Type Conversion in Expression Evaluation
11.2.3. Comparison Functions and Operators
11.2.4. Logical Operators
11.3. Control Flow Functions
11.4. String Functions
11.4.1. String Comparison Functions
11.4.2. Regular Expressions
11.5. Numeric Functions
11.5.1. Arithmetic Operators
11.5.2. Mathematical Functions
11.6. Date and Time Functions
11.7. What Calendar Is Used By MySQL?
11.8. Full-Text Search Functions
11.8.1. Natural Language Full-Text Searches
11.8.2. Boolean Full-Text Searches
11.8.3. Full-Text Searches with Query Expansion
11.8.4. Full-Text Stopwords
11.8.5. Full-Text Restrictions
11.8.6. Fine-Tuning MySQL Full-Text Search
11.9. Cast Functions and Operators
11.10. Other Functions
11.10.1. Bit Functions
11.10.2. Encryption and Compression Functions
11.10.3. Information Functions
11.10.4. Miscellaneous Functions
11.11. Functions and Modifiers for Use with GROUP BY Clauses
11.11.1. GROUP BY (Aggregate) Functions
11.11.2. GROUP BY Modifiers
11.11.3. GROUP BY and HAVING with Hidden Columns
12. SQL Statement Syntax
12.1. Data Definition Statements
12.1.1. ALTER DATABASE Syntax
12.1.2. ALTER TABLE Syntax
12.1.3. CREATE DATABASE Syntax
12.1.4. CREATE INDEX Syntax
12.1.5. CREATE TABLE Syntax
12.1.6. DROP DATABASE Syntax
12.1.7. DROP INDEX Syntax
12.1.8. DROP TABLE Syntax
12.1.9. RENAME TABLE Syntax
12.2. Data Manipulation Statements
12.2.1. DELETE Syntax
12.2.2. DO Syntax
12.2.3. HANDLER Syntax
12.2.4. INSERT Syntax
12.2.5. LOAD DATA INFILE Syntax
12.2.6. REPLACE Syntax
12.2.7. SELECT Syntax
12.2.8. Subquery Syntax
12.2.9. TRUNCATE Syntax
12.2.10. UPDATE Syntax
12.3. MySQL Utility Statements
12.3.1. DESCRIBE Syntax
12.3.2. EXPLAIN Syntax
12.3.3. HELP Syntax
12.3.4. USE Syntax
12.4. MySQL Transactional and Locking Statements
12.4.1. START TRANSACTION, COMMIT, and ROLLBACK Syntax
12.4.2. Statements That Cannot Be Rolled Back
12.4.3. Statements That Cause an Implicit Commit
12.4.4. SAVEPOINT and ROLLBACK TO SAVEPOINT Syntax
12.4.5. LOCK TABLES and UNLOCK TABLES Syntax
12.4.6. SET TRANSACTION Syntax
12.5. Database Administration Statements
12.5.1. Account Management Statements
12.5.2. Table Maintenance Statements
12.5.3. User-Defined Function Statements
12.5.4. SET Syntax
12.5.5. SHOW Syntax
12.5.6. Other Administrative Statements
12.6. Replication Statements
12.6.1. SQL Statements for Controlling Master Servers
12.6.2. SQL Statements for Controlling Slave Servers
12.7. SQL Syntax for Prepared Statements
12.7.1. PREPARE Syntax
12.7.2. EXECUTE Syntax
12.7.3. DEALLOCATE PREPARE Syntax
13. Storage Engines
13.1. The MyISAM Storage Engine
13.1.1. MyISAM Startup Options
13.1.2. Space Needed for Keys
13.1.3. MyISAM Table Storage Formats
13.1.4. MyISAM Table Problems
13.2. The InnoDB Storage Engine
13.2.1. InnoDB Contact Information
13.2.2. InnoDB in MySQL 3.23
13.2.3. InnoDB Configuration
13.2.4. InnoDB Startup Options and System Variables
13.2.5. Creating and Using InnoDB Tables
13.2.6. Adding, Removing, or Resizing InnoDB Data and Log Files
13.2.7. Backing Up and Recovering an InnoDB Database
13.2.8. Moving an InnoDB Database to Another Machine
13.2.9. The InnoDB Transaction Model and Locking
13.2.10. InnoDB Multi-Versioning
13.2.11. InnoDB Table and Index Structures
13.2.12. InnoDB Disk I/O and File Space Management
13.2.13. InnoDB Error Handling
13.2.14. InnoDB Performance Tuning and Troubleshooting
13.2.15. Restrictions on InnoDB Tables
13.3. The MERGE Storage Engine
13.3.1. MERGE Table Problems
13.4. The MEMORY (HEAP) Storage Engine
13.5. The BDB (BerkeleyDB) Storage Engine
13.5.1. Operating Systems Supported by BDB
13.5.2. Installing BDB
13.5.3. BDB Startup Options
13.5.4. Characteristics of BDB Tables
13.5.5. Restrictions on BDB Tables
13.5.6. Errors That May Occur When Using BDB Tables
13.6. The EXAMPLE Storage Engine
13.7. The ARCHIVE Storage Engine
13.8. The CSV Storage Engine
13.9. The BLACKHOLE Storage Engine
13.10. The ISAM Storage Engine
14. Replication
14.1. Introduction to Replication
14.2. Replication Implementation Overview
14.3. Replication Implementation Details
14.3.1. Replication Relay and Status Files
14.4. How to Set Up Replication
14.5. Replication Compatibility Between MySQL Versions
14.6. Upgrading a Replication Setup
14.6.1. Upgrading Replication to 4.0 or 4.1
14.7. Replication Features and Known Problems
14.8. Replication and Binary Logging Options and Variables
14.8.1. Replication and Binary Logging Option and Variable Reference
14.8.2. Replication Master Options and Variables
14.8.3. Replication Slave Options and Variables
14.8.4. Binary Log Options and Variables
14.9. How Servers Evaluate Replication Filtering Rules
14.9.1. Evaluation of Database-Level Replication and Binary Logging Options
14.9.2. Evaluation of Table-Level Replication Options
14.9.3. Replication Rule Application
14.10. Replication FAQ
14.11. Troubleshooting Replication
14.12. How to Report Replication Bugs or Problems
15. MySQL Cluster
15.1. MySQL Cluster Overview
15.1.1. MySQL Cluster Core Concepts
15.1.2. MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
15.2. MySQL Cluster Multi-Computer How-To
15.2.1. MySQL Cluster Hardware, Software, and Networking Requirements
15.2.2. MySQL Cluster Multi-Computer Installation
15.2.3. MySQL Cluster Multi-Computer Configuration
15.2.4. Initial Startup of MySQL Cluster
15.2.5. Loading Sample Data into MySQL Cluster and Performing Queries
15.2.6. Safe Shutdown and Restart of MySQL Cluster
15.3. MySQL Cluster Configuration
15.3.1. Building MySQL Cluster from Source Code
15.3.2. Installing MySQL Cluster Software
15.3.3. Quick Test Setup of MySQL Cluster
15.3.4. MySQL Cluster Configuration Files
15.3.5. Overview of MySQL Cluster Configuration Parameters
15.3.6. Configuring MySQL Cluster Parameters for Local Checkpoints
15.4. MySQL Cluster Options and Variables
15.4.1. MySQL Cluster Server Option and Variable Reference
15.4.2. mysqld Command Options for MySQL Cluster
15.4.3. MySQL Cluster System Variables
15.4.4. MySQL Cluster Status Variables
15.5. Upgrading and Downgrading MySQL Cluster
15.5.1. Performing a Rolling Restart of a MySQL Cluster
15.5.2. MySQL Cluster 4.1 Upgrade and Downgrade Compatibility
15.6. MySQL Cluster Programs
15.6.1. MySQL Server Usage for MySQL Cluster
15.6.2. ndbd — The MySQL Cluster Data Node Daemon
15.6.3. ndb_mgmd — The MySQL Cluster Management Server Daemon
15.6.4. ndb_mgm — The MySQL Cluster Management Client
15.6.5. ndb_config — Extract MySQL Cluster Configuration Information
15.6.6. ndb_cpcd — Automate Testing for NDB Development
15.6.7. ndb_delete_all — Delete All Rows from an NDB Table
15.6.8. ndb_desc — Describe NDB Tables
15.6.9. ndb_drop_index — Drop Index from an NDB Table
15.6.10. ndb_drop_table — Drop an NDB Table
15.6.11. ndb_error_reporter — NDB Error-Reporting Utility
15.6.12. ndb_print_backup_file — Print NDB Backup File Contents
15.6.13. ndb_print_schema_file — Print NDB Schema File Contents
15.6.14. ndb_print_sys_file — Print NDB System File Contents
15.6.15. ndb_restore — Restore a MySQL Cluster Backup
15.6.16. ndb_select_all — Print Rows from an NDB Table
15.6.17. ndb_select_count — Print Row Counts for NDB Tables
15.6.18. ndb_show_tables — Display List of NDB Tables
15.6.19. ndb_size.pl — NDBCLUSTER Size Requirement Estimator
15.6.20. ndb_waiter — Wait for MySQL Cluster to Reach a Given Status
15.6.21. Options Common to MySQL Cluster Programs
15.6.22. Summary Tables of NDB Program Options
15.7. Management of MySQL Cluster
15.7.1. Summary of MySQL Cluster Start Phases
15.7.2. Commands in the MySQL Cluster Management Client
15.7.3. Online Backup of MySQL Cluster
15.7.4. Event Reports Generated in MySQL Cluster
15.7.5. MySQL Cluster Log Messages
15.7.6. MySQL Cluster Single User Mode
15.7.7. Quick Reference: MySQL Cluster SQL Statements
15.8. MySQL Cluster Security Issues
15.8.1. MySQL Cluster Security and Networking Issues
15.8.2. MySQL Cluster and MySQL Privileges
15.8.3. MySQL Cluster and MySQL Security Procedures
15.9. Using High-Speed Interconnects with MySQL Cluster
15.9.1. Configuring MySQL Cluster to use SCI Sockets
15.9.2. MySQL Cluster Interconnects and Performance
15.10. Known Limitations of MySQL Cluster
15.10.1. Noncompliance with SQL Syntax in MySQL Cluster
15.10.2. Limits and Differences of MySQL Cluster from Standard MySQL Limits
15.10.3. Limits Relating to Transaction Handling in MySQL Cluster
15.10.4. MySQL Cluster Error Handling
15.10.5. Limits Associated with Database Objects in MySQL Cluster
15.10.6. Unsupported or Missing Features in MySQL Cluster
15.10.7. Limitations Relating to Performance in MySQL Cluster
15.10.8. Issues Exclusive to MySQL Cluster
15.10.9. Limitations Relating to Multiple MySQL Cluster Nodes
15.11. MySQL 4.1 FAQ — MySQL Cluster
15.12. MySQL Cluster Glossary
16. Spatial Extensions
16.1. Introduction to MySQL Spatial Support
16.2. The OpenGIS Geometry Model
16.2.1. The Geometry Class Hierarchy
16.2.2. Class Geometry
16.2.3. Class Point
16.2.4. Class Curve
16.2.5. Class LineString
16.2.6. Class Surface
16.2.7. Class Polygon
16.2.8. Class GeometryCollection
16.2.9. Class MultiPoint
16.2.10. Class MultiCurve
16.2.11. Class MultiLineString
16.2.12. Class MultiSurface
16.2.13. Class MultiPolygon
16.3. Supported Spatial Data Formats
16.3.1. Well-Known Text (WKT) Format
16.3.2. Well-Known Binary (WKB) Format
16.4. Creating a Spatially Enabled MySQL Database
16.4.1. MySQL Spatial Data Types
16.4.2. Creating Spatial Values
16.4.3. Creating Spatial Columns
16.4.4. Populating Spatial Columns
16.4.5. Fetching Spatial Data
16.5. Analyzing Spatial Information
16.5.1. Geometry Format Conversion Functions
16.5.2. Geometry Functions
16.5.3. Functions That Create New Geometries from Existing Ones
16.5.4. Functions for Testing Spatial Relations Between Geometric Objects
16.5.5. Relations on Geometry Minimal Bounding Rectangles (MBRs)
16.5.6. Functions That Test Spatial Relationships Between Geometries
16.6. Optimizing Spatial Analysis
16.6.1. Creating Spatial Indexes
16.6.2. Using a Spatial Index
16.7. MySQL Conformance and Compatibility
17. Connectors and APIs
17.1. MySQL Connector/ODBC
17.1.1. Connector/ODBC Versions
17.1.2. Connector/ODBC Introduction
17.1.3. Connector/ODBC Installation
17.1.4. Connector/ODBC Configuration
17.1.5. Connector/ODBC Examples
17.1.6. Connector/ODBC Reference
17.1.7. Connector/ODBC Notes and Tips
17.1.8. Connector/ODBC Support
17.2. MySQL Connector/NET
17.2.1. Connector/NET Versions
17.2.2. Connector/NET Installation
17.2.3. MySQL Connector/NET Visual Studio Integration
17.2.4. Connector/NET Programming
17.2.5. Connector/NET Reference
17.2.6. Connector/NET Support
17.2.7. Connector/NET FAQ
17.3. MySQL Visual Studio Plugin
17.3.1. Installing the MySQL Visual Studio Plugin
17.3.2. Creating a connection to the MySQL server
17.3.3. Using the MySQL Visual Studio Plugin
17.3.4. Visual Studio Plugin Support
17.4. MySQL Connector/J
17.4.1. Connector/J Versions
17.4.2. Connector/J Installation
17.4.3. Connector/J Examples
17.4.4. Connector/J (JDBC) Reference
17.4.5. Connector/J Notes and Tips
17.4.6. Connector/J Support
17.5. MySQL Connector/MXJ
17.5.1. Connector/MXJ Overview
17.5.2. Connector/MXJ Versions
17.5.3. Connector/MXJ Installation
17.5.4. Connector/MXJ Configuration
17.5.5. Connector/MXJ Reference
17.5.6. Connector/MXJ Notes and Tips
17.5.7. Connector/MXJ Support
17.6. libmysqld, the Embedded MySQL Server Library
17.6.1. Compiling Programs with libmysqld
17.6.2. Restrictions When Using the Embedded MySQL Server
17.6.3. Options with the Embedded Server
17.6.4. Embedded Server Examples
17.6.5. Licensing the Embedded Server
17.7. MySQL C API
17.7.1. C API Data Types
17.7.2. C API Function Overview
17.7.3. C API Function Descriptions
17.7.4. C API Prepared Statements
17.7.5. C API Prepared Statement Data types
17.7.6. C API Prepared Statement Function Overview
17.7.7. C API Prepared Statement Function Descriptions
17.7.8. C API Threaded Function Descriptions
17.7.9. C API Embedded Server Function Descriptions
17.7.10. Common Questions and Problems When Using the C API
17.7.11. Controlling Automatic Reconnection Behavior
17.7.12. C API Support for Multiple Statement Execution
17.7.13. C API Prepared Statement Problems
17.7.14. C API Prepared Statement Handling of Date and Time Values
17.7.15. Building Client Programs
17.7.16. How to Make a Threaded Client
17.8. MySQL PHP API
17.8.1. MySQL
17.8.2. MySQL Improved Extension (Mysqli)
17.8.3. MySQL Functions (PDO_MYSQL)
17.8.4. Connector/PHP
17.8.5. Common Problems with MySQL and PHP
17.8.6. Enabling Both mysql and mysqli in PHP
17.9. MySQL Perl API
17.10. MySQL C++ API
17.11. MySQL Python API
17.12. MySQL Ruby APIs
17.12.1. The MySQL/Ruby API
17.12.2. The Ruby/MySQL API
17.13. MySQL Tcl API
17.14. MySQL Eiffel Wrapper
18. Extending MySQL
18.1. MySQL Internals
18.1.1. MySQL Threads
18.1.2. MySQL Test Suite
18.2. Adding New Functions to MySQL
18.2.1. Features of the User-Defined Function Interface
18.2.2. Adding a New User-Defined Function
18.2.3. Adding a New Native Function
18.3. Adding New Procedures to MySQL
18.3.1. PROCEDURE ANALYSE
18.3.2. Writing a Procedure
18.4. Porting to Other Systems
18.4.1. Debugging a MySQL Server
18.4.2. Debugging a MySQL Client
18.4.3. The DBUG Package
18.4.4. Comments about RTS Threads
18.4.5. Differences Between Thread Packages
A. Errors, Error Codes, and Common Problems
A.1. Problems and Common Errors
A.1.1. How to Determine What Is Causing a Problem
A.1.2. Common Errors When Using MySQL Programs
A.1.3. Installation-Related Issues
A.1.4. Administration-Related Issues
A.1.5. Query-Related Issues
A.1.6. Optimizer-Related Issues
A.1.7. Table Definition-Related Issues
A.1.8. Known Issues in MySQL
A.2. Types of Error Values
A.3. Server Error Codes and Messages
A.4. Client Error Codes and Messages
B. MySQL Change History
B.1. Changes in Release 4.1.x (Production)
B.1.1. Changes in MySQL 4.1.25 (01 December 2008)
B.1.2. Changes in MySQL 4.1.24 (01 March 2008)
B.1.3. Changes in MySQL 4.1.23 (12 June 2007)
B.1.4. Changes in MySQL 4.1.22 (02 November 2006)
B.1.5. Changes in MySQL 4.1.21 (19 July 2006)
B.1.6. Changes in MySQL 4.1.20 (24 May 2006)
B.1.7. Changes in MySQL 4.1.19 (29 April 2006)
B.1.8. Changes in MySQL 4.1.18 (27 January 2006)
B.1.9. Changes in MySQL 4.1.17 (Not released)
B.1.10. Changes in MySQL 4.1.16 (29 November 2005)
B.1.11. Changes in MySQL 4.1.15 (13 October 2005)
B.1.12. Changes in MySQL 4.1.14 (17 August 2005)
B.1.13. Changes in MySQL 4.1.13 (15 July 2005)
B.1.14. Changes in MySQL 4.1.12 (13 May 2005)
B.1.15. Changes in MySQL 4.1.11 (01 April 2005)
B.1.16. Changes in MySQL 4.1.10 (12 February 2005)
B.1.17. Changes in MySQL 4.1.9 (11 January 2005)
B.1.18. Changes in MySQL 4.1.8 (14 December 2004)
B.1.19. Changes in MySQL 4.1.7 (23 October 2004 Production)
B.1.20. Changes in MySQL 4.1.6 (10 October 2004)
B.1.21. Changes in MySQL 4.1.5 (16 September 2004)
B.1.22. Changes in MySQL 4.1.4 (26 August 2004 Gamma)
B.1.23. Changes in MySQL 4.1.3 (28 June 2004 Beta)
B.1.24. Changes in MySQL 4.1.2 (28 May 2004)
B.1.25. Changes in MySQL 4.1.1 (01 December 2003)
B.1.26. Changes in MySQL 4.1.0 (03 April 2003 Alpha)
B.2. Changes in Release 4.0.x
B.2.1. Changes in Release 4.0.31 (Not yet released)
B.2.2. Changes in Release 4.0.30 (12 February 2007)
B.2.3. Changes in Release 4.0.29 (Not released)
B.2.4. Changes in Release 4.0.28 (Not released)
B.2.5. Changes in Release 4.0.27 (06 May 2006)
B.2.6. Changes in Release 4.0.26 (08 September 2005)
B.2.7. Changes in Release 4.0.25 (05 July 2005)
B.2.8. Changes in Release 4.0.24 (04 March 2005)
B.2.9. Changes in Release 4.0.23 (18 December 2004)
B.2.10. Changes in Release 4.0.22 (27 October 2004)
B.2.11. Changes in Release 4.0.21 (06 September 2004)
B.2.12. Changes in Release 4.0.20 (17 May 2004)
B.2.13. Changes in Release 4.0.19 (04 May 2004)
B.2.14. Changes in Release 4.0.18 (12 February 2004)
B.2.15. Changes in Release 4.0.17 (14 December 2003)
B.2.16. Changes in Release 4.0.16 (17 October 2003)
B.2.17. Changes in Release 4.0.15 (03 September 2003)
B.2.18. Changes in Release 4.0.14 (18 July 2003)
B.2.19. Changes in Release 4.0.13 (16 May 2003)
B.2.20. Changes in Release 4.0.12 (15 March 2003: Production)
B.2.21. Changes in Release 4.0.11 (20 February 2003)
B.2.22. Changes in Release 4.0.10 (29 January 2003)
B.2.23. Changes in Release 4.0.9 (09 January 2003)
B.2.24. Changes in Release 4.0.8 (07 January 2003)
B.2.25. Changes in Release 4.0.7 (20 December 2002)
B.2.26. Changes in Release 4.0.6 (14 December 2002: Gamma)
B.2.27. Changes in Release 4.0.5 (13 November 2002)
B.2.28. Changes in Release 4.0.4 (29 September 2002)
B.2.29. Changes in Release 4.0.3 (26 August 2002: Beta)
B.2.30. Changes in Release 4.0.2 (01 July 2002)
B.2.31. Changes in Release 4.0.1 (23 December 2001)
B.2.32. Changes in Release 4.0.0 (October 2001: Alpha)
B.3. Changes in Release 3.23.x
B.3.1. Changes in Release 3.23.59 (Not yet released)
B.3.2. Changes in Release 3.23.58 (11 September 2003)
B.3.3. Changes in Release 3.23.57 (06 June 2003)
B.3.4. Changes in Release 3.23.56 (13 March 2003)
B.3.5. Changes in Release 3.23.55 (23 January 2003)
B.3.6. Changes in Release 3.23.54 (05 December 2002)
B.3.7. Changes in Release 3.23.53 (09 October 2002)
B.3.8. Changes in Release 3.23.52 (14 August 2002)
B.3.9. Changes in Release 3.23.51 (31 May 2002)
B.3.10. Changes in Release 3.23.50 (21 April 2002)
B.3.11. Changes in Release 3.23.49 (14 February 2002)
B.3.12. Changes in Release 3.23.48 (07 February 2002)
B.3.13. Changes in Release 3.23.47 (27 December 2001)
B.3.14. Changes in Release 3.23.46 (29 November 2001)
B.3.15. Changes in Release 3.23.45 (22 November 2001)
B.3.16. Changes in Release 3.23.44 (31 October 2001)
B.3.17. Changes in Release 3.23.43 (04 October 2001)
B.3.18. Changes in Release 3.23.42 (08 September 2001)
B.3.19. Changes in Release 3.23.41 (11 August 2001)
B.3.20. Changes in Release 3.23.40 (18 July 2001)
B.3.21. Changes in Release 3.23.39 (12 June 2001)
B.3.22. Changes in Release 3.23.38 (09 May 2001)
B.3.23. Changes in Release 3.23.37 (17 April 2001)
B.3.24. Changes in Release 3.23.36 (27 March 2001)
B.3.25. Changes in Release 3.23.35 (15 March 2001)
B.3.26. Changes in Release 3.23.34a (11 March 2001)
B.3.27. Changes in Release 3.23.34 (10 March 2001)
B.3.28. Changes in Release 3.23.33 (09 February 2001)
B.3.29. Changes in Release 3.23.32 (22 January 2001)
B.3.30. Changes in Release 3.23.31 (17 January 2001: Production)
B.3.31. Changes in Release 3.23.30 (04 January 2001)
B.3.32. Changes in Release 3.23.29 (16 December 2000)
B.3.33. Changes in Release 3.23.28 (22 November 2000: Gamma)
B.3.34. Changes in Release 3.23.27 (24 October 2000)
B.3.35. Changes in Release 3.23.26 (18 October 2000)
B.3.36. Changes in Release 3.23.25 (29 September 2000)
B.3.37. Changes in Release 3.23.24 (08 September 2000)
B.3.38. Changes in Release 3.23.23 (01 September 2000)
B.3.39. Changes in Release 3.23.22 (31 July 2000)
B.3.40. Changes in Release 3.23.21 (04 July 2000)
B.3.41. Changes in Release 3.23.20 (28 June 2000: Beta)
B.3.42. Changes in Release 3.23.19
B.3.43. Changes in Release 3.23.18 (11 June 2000)
B.3.44. Changes in Release 3.23.17 (07 June 2000)
B.3.45. Changes in Release 3.23.16 (16 May 2000)
B.3.46. Changes in Release 3.23.15 (08 May 2000)
B.3.47. Changes in Release 3.23.14 (09 April 2000)
B.3.48. Changes in Release 3.23.13 (14 March 2000)
B.3.49. Changes in Release 3.23.12 (07 March 2000)
B.3.50. Changes in Release 3.23.11 (16 February 2000)
B.3.51. Changes in Release 3.23.10 (30 January 2000)
B.3.52. Changes in Release 3.23.9 (29 January 2000)
B.3.53. Changes in Release 3.23.8 (02 January 2000)
B.3.54. Changes in Release 3.23.7 (10 December 1999)
B.3.55. Changes in Release 3.23.6 (15 December 1999)
B.3.56. Changes in Release 3.23.5 (20 October 1999)
B.3.57. Changes in Release 3.23.4 (28 September 1999)
B.3.58. Changes in Release 3.23.3 (13 September 1999)
B.3.59. Changes in Release 3.23.2 (09 August 1999)
B.3.60. Changes in Release 3.23.1 (08 July 1999)
B.3.61. Changes in Release 3.23.0 (05 July 1999: Alpha)
B.4. Changes in InnoDB
B.4.1. Changes in MySQL/InnoDB-4.0.21, September 10, 2004
B.4.2. Changes in MySQL/InnoDB-4.1.4, August 31, 2004
B.4.3. Changes in MySQL/InnoDB-4.1.3, June 28, 2004
B.4.4. Changes in MySQL/InnoDB-4.1.2, May 30, 2004
B.4.5. Changes in MySQL/InnoDB-4.0.20, May 18, 2004
B.4.6. Changes in MySQL/InnoDB-4.0.19, May 4, 2004
B.4.7. Changes in MySQL/InnoDB-4.0.18, February 13, 2004
B.4.8. Changes in MySQL/InnoDB-5.0.0, December 24, 2003
B.4.9. Changes in MySQL/InnoDB-4.0.17, December 17, 2003
B.4.10. Changes in MySQL/InnoDB-4.1.1, December 4, 2003
B.4.11. Changes in MySQL/InnoDB-4.0.16, October 22, 2003
B.4.12. Changes in MySQL/InnoDB-3.23.58, September 15, 2003
B.4.13. Changes in MySQL/InnoDB-4.0.15, September 10, 2003
B.4.14. Changes in MySQL/InnoDB-4.0.14, July 22, 2003
B.4.15. Changes in MySQL/InnoDB-3.23.57, June 20, 2003
B.4.16. Changes in MySQL/InnoDB-4.0.13, May 20, 2003
B.4.17. Changes in MySQL/InnoDB-4.1.0, April 3, 2003
B.4.18. Changes in MySQL/InnoDB-3.23.56, March 17, 2003
B.4.19. Changes in MySQL/InnoDB-4.0.12, March 18, 2003
B.4.20. Changes in MySQL/InnoDB-4.0.11, February 25, 2003
B.4.21. Changes in MySQL/InnoDB-4.0.10, February 4, 2003
B.4.22. Changes in MySQL/InnoDB-3.23.55, January 24, 2003
B.4.23. Changes in MySQL/InnoDB-4.0.9, January 14, 2003
B.4.24. Changes in MySQL/InnoDB-4.0.8, January 7, 2003
B.4.25. Changes in MySQL/InnoDB-4.0.7, December 26, 2002
B.4.26. Changes in MySQL/InnoDB-4.0.6, December 19, 2002
B.4.27. Changes in MySQL/InnoDB-3.23.54, December 12, 2002
B.4.28. Changes in MySQL/InnoDB-4.0.5, November 18, 2002
B.4.29. Changes in MySQL/InnoDB-3.23.53, October 9, 2002
B.4.30. Changes in MySQL/InnoDB-4.0.4, October 2, 2002
B.4.31. Changes in MySQL/InnoDB-4.0.3, August 28, 2002
B.4.32. Changes in MySQL/InnoDB-3.23.52, August 16, 2002
B.4.33. Changes in MySQL/InnoDB-4.0.2, July 10, 2002
B.4.34. Changes in MySQL/InnoDB-3.23.51, June 12, 2002
B.4.35. Changes in MySQL/InnoDB-3.23.50, April 23, 2002
B.4.36. Changes in MySQL/InnoDB-3.23.49, February 17, 2002
B.4.37. Changes in MySQL/InnoDB-3.23.48, February 9, 2002
B.4.38. Changes in MySQL/InnoDB-3.23.47, December 28, 2001
B.4.39. Changes in MySQL/InnoDB-4.0.1, December 23, 2001
B.4.40. Changes in MySQL/InnoDB-3.23.46, November 30, 2001
B.4.41. Changes in MySQL/InnoDB-3.23.45, November 23, 2001
B.4.42. Changes in MySQL/InnoDB-3.23.44, November 2, 2001
B.4.43. Changes in MySQL/InnoDB-3.23.43, October 4, 2001
B.4.44. Changes in MySQL/InnoDB-3.23.42, September 9, 2001
B.4.45. Changes in MySQL/InnoDB-3.23.41, August 13, 2001
B.4.46. Changes in MySQL/InnoDB-3.23.40, July 16, 2001
B.4.47. Changes in MySQL/InnoDB-3.23.39, June 13, 2001
B.4.48. Changes in MySQL/InnoDB-3.23.38, May 12, 2001
B.5. Changes in MySQL Cluster
B.5.1. Changes in MySQL Cluster-5.0.7 (10 June 2005)
B.5.2. Changes in MySQL Cluster-5.0.6 (26 May 2005)
B.5.3. Changes in MySQL Cluster-5.0.5 (Not released)
B.5.4. Changes in MySQL Cluster-5.0.4 (16 April 2005)
B.5.5. Changes in MySQL Cluster-5.0.3 (23 March 2005: Beta)
B.5.6. Changes in MySQL Cluster-5.0.1 (27 July 2004)
B.5.7. Changes in MySQL Cluster-4.1.13 (15 July 2005)
B.5.8. Changes in MySQL Cluster-4.1.12 (13 May 2005)
B.5.9. Changes in MySQL Cluster-4.1.11 (01 April 2005)
B.5.10. Changes in MySQL Cluster-4.1.10 (12 February 2005)
B.5.11. Changes in MySQL Cluster-4.1.9 (13 January 2005)
B.5.12. Changes in MySQL Cluster-4.1.8 (14 December 2004)
B.5.13. Changes in MySQL Cluster-4.1.7 (23 October 2004)
B.5.14. Changes in MySQL Cluster-4.1.6 (10 October 2004)
B.5.15. Changes in MySQL Cluster-4.1.5 (16 September 2004)
B.5.16. Changes in MySQL Cluster-4.1.4 (31 August 2004)
B.5.17. Changes in MySQL Cluster-4.1.3 (28 June 2004)
B.6. MySQL Connector/ODBC (MyODBC) Change History
B.6.1. Changes in MySQL Connector/ODBC 5.1.6 (Not yet released)
B.6.2. Changes in MySQL Connector/ODBC 5.1.5 (18 August 2008)
B.6.3. Changes in MySQL Connector/ODBC 5.1.4 (15 April 2008)
B.6.4. Changes in MySQL Connector/ODBC 5.1.3 (26 March 2008)
B.6.5. Changes in MySQL Connector/ODBC 5.1.2 (13 February 2008)
B.6.6. Changes in MySQL Connector/ODBC 5.1.1 (13 December 2007)
B.6.7. Changes in MySQL Connector/ODBC 5.1.0 (10 September 2007)
B.6.8. Changes in MySQL Connector/ODBC 5.0.12 (Never released)
B.6.9. Changes in MySQL Connector/ODBC 5.0.11 (31 January 2007)
B.6.10. Changes in MySQL Connector/ODBC 5.0.10 (14 December 2006)
B.6.11. Changes in MySQL Connector/ODBC 5.0.9 (22 November 2006)
B.6.12. Changes in MySQL Connector/ODBC 5.0.8 (17 November 2006)
B.6.13. Changes in MySQL Connector/ODBC 5.0.7 (08 November 2006)
B.6.14. Changes in MySQL Connector/ODBC 5.0.6 (03 November 2006)
B.6.15. Changes in MySQL Connector/ODBC 5.0.5 (17 October 2006)
B.6.16. Changes in Connector/ODBC 5.0.3 (Connector/ODBC 5.0 Alpha 3) (20 June 2006)
B.6.17. Changes in Connector/ODBC 5.0.2 (Never released)
B.6.18. Changes in Connector/ODBC 5.0.1 (Connector/ODBC 5.0 Alpha 2) (05 June 2006)
B.6.19. Changes in MySQL Connector/ODBC 3.51.27 (20 November 2008)
B.6.20. Changes in MySQL Connector/ODBC 3.51.26 (07 July 2008)
B.6.21. Changes in MySQL Connector/ODBC 3.51.25 (11 April 2008)
B.6.22. Changes in MySQL Connector/ODBC 3.51.24 (14 March 2008)
B.6.23. Changes in MySQL Connector/ODBC 3.51.23 (09 January 2008)
B.6.24. Changes in MySQL Connector/ODBC 3.51.22 (13 November 2007)
B.6.25. Changes in MySQL Connector/ODBC 3.51.21 (08 October 2007)
B.6.26. Changes in MySQL Connector/ODBC 3.51.20 (10 September 2007)
B.6.27. Changes in MySQL Connector/ODBC 3.51.19 (10 August 2007)
B.6.28. Changes in MySQL Connector/ODBC 3.51.18 (08 August 2007)
B.6.29. Changes in MySQL Connector/ODBC 3.51.17 (14 July 2007)
B.6.30. Changes in MySQL Connector/ODBC 3.51.16 (14 June 2007)
B.6.31. Changes in MySQL Connector/ODBC 3.51.15 (07 May 2007)
B.6.32. Changes in MySQL Connector/ODBC 3.51.14 (08 March 2007)
B.6.33. Changes in MySQL Connector/ODBC 3.51.13 (Never released)
B.6.34. Changes in MySQL Connector/ODBC 3.51.12 (11 February 2005)
B.6.35. Changes in MySQL Connector/ODBC 3.51.11 (28 January 2005)
B.7. MySQL Connector/NET Change History
B.7.1. Changes in MySQL Connector/NET Version 6.1.x
B.7.2. Changes in MySQL Connector/NET Version 6.0.x
B.7.3. Changes in MySQL Connector/NET Version 5.3.x
B.7.4. Changes in MySQL Connector/NET Version 5.2.x
B.7.5. Changes in MySQL Connector/NET Version 5.1.x
B.7.6. Changes in MySQL Connector/NET Version 5.0.x
B.7.7. Changes in MySQL Connector/NET Version 1.0.x
B.7.8. Changes in MySQL Connector/NET Version 0.9.0 (30 August 2004)
B.7.9. Changes in MySQL Connector/NET Version 0.76
B.7.10. Changes in MySQL Connector/NET Version 0.75
B.7.11. Changes in MySQL Connector/NET Version 0.74
B.7.12. Changes in MySQL Connector/NET Version 0.71
B.7.13. Changes in MySQL Connector/NET Version 0.70
B.7.14. Changes in MySQL Connector/NET Version 0.68
B.7.15. Changes in MySQL Connector/NET Version 0.65
B.7.16. Changes in MySQL Connector/NET Version 0.60
B.7.17. Changes in MySQL Connector/NET Version 0.50
B.8. MySQL Connector/J Change History
B.8.1. Changes in MySQL Connector/J 5.1.x
B.8.2. Changes in MySQL Connector/J 5.0.x
B.8.3. Changes in MySQL Connector/J 3.1.x
B.8.4. Changes in MySQL Connector/J 3.0.x
B.8.5. Changes in MySQL Connector/J 2.0.x
B.8.6. Changes in MySQL Connector/J 1.2b (04 July 1999)
B.8.7. Changes in MySQL Connector/J 1.2.x and lower
B.9. MySQL Connector/MXJ Change History
B.9.1. Changes in MySQL Connector/MXJ 5.0.6 (04 May 2007)
B.9.2. Changes in MySQL Connector/MXJ 5.0.5 (14 March 2007)
B.9.3. Changes in MySQL Connector/MXJ 5.0.4 (28 January 2007)
B.9.4. Changes in MySQL Connector/MXJ 5.0.3 (24 June 2006)
B.9.5. Changes in MySQL Connector/MXJ 5.0.2 (15 June 2006)
B.9.6. Changes in MySQL Connector/MXJ 5.0.1 (Never released)
B.9.7. Changes in MySQL Connector/MXJ 5.0.0 (09 December 2005)
B.10. MySQL Proxy Change History
B.10.1. Changes in MySQL Proxy 0.7.0 (Not yet released)
B.10.2. Changes in MySQL Proxy 0.6.1 (06 February 2008)
B.10.3. Changes in MySQL Proxy 0.6.0 (11 September 2007)
B.10.4. Changes in MySQL Proxy 0.5.1 (30 June 2007)
B.10.5. Changes in MySQL Proxy 0.5.0 (19 June 2007)
C. Restrictions and Limits
C.1. Restrictions on Subqueries
C.2. Restrictions on Character Sets
C.3. Limits in MySQL
C.3.1. Limits of Joins
C.3.2. The Maximum Number of Columns Per Table
C.3.3. Windows Platform Limitations
Index

List of Figures

17.1. Add Connection Context Menu
17.2. Choose Data Source
17.3. Add Connection Dialog
17.4. New Data Connection
17.5. Editing New Table
17.6. Choose Table Name
17.7. Newly Created Table
17.8. Table Designer Main Menu
17.9. Indexes Dialog
17.10. Foreign Key Relationships Dialog
17.11. Table Properties Menu Item
17.12. Table Properties
17.13. Editing View SQL
17.14. View SQL Added
17.15. View SQL Saved
17.16. Edit Stored Procedure SQL
17.17. Stored Procedure SQL Saved
17.18. Add Entity Data Model
17.19. Entity Data Model Wizard Screen 1
17.20. Entity Data Model Wizard Screen 2
17.21. Entity Data Model Wizard Screen 3
17.22. Entity Data Model Diagram
17.23. Entity Data Source Configuration Wizard Screen 1
17.24. Entity Data Source Configuration Wizard Screen 2
17.25. Entity Data Source Configuration Wizard Screen 3
17.26. Data Sources
17.27. Data Form Designer
17.28. Adding Code to the Form
17.29. The Populated Grid Control
17.30. Save Button Enabled
17.31. Adding Save Code to the Form
17.32. The Design Tab
17.33. Drop Down List
17.34. Enable AutoPostBack
17.35. Grid View Control
17.36. Placed Grid Vew Control
17.37. Source Code
17.38. The Working Web Site
17.39. World Database Application
17.40. Authentication Type
17.41. Select Membership and Role Provider
17.42. Membership and Role Provider Tables
17.43. Security Tab
17.44. Create User
17.45. Membership and Roles Table Contents

List of Tables

4.1. mysqld_safe Option Reference
4.2. mysql Option Reference
4.3. mysqladmin Option Reference
4.4. mysqlcheck Option Reference
4.5. mysqldump Option Reference
4.6. mysqlimport Option Reference
4.7. mysqlshow Option Reference
4.8. myisamchk Option Reference
4.9. mysqlaccess Option Reference
4.10. mysqlbinlog Option Reference
4.11. mysqldumpslow Option Reference
4.12. mysqlhotcopy Option Reference
4.13. mysql_tableinfo Option Reference
5.1. mysqld Option/Variable Summary
5.2. mysqld Session System Variable Summary
5.3. mysqld Security Option/Variable Summary
5.4. mysqld SSL Option/Variable Summary
14.1. mysqld Replication Option/Variable Summary
14.2. mysqld Binary Logging Option/Variable Summary
15.1. MySQL Cluster Data Node Configuration Parameters
15.2. MySQL Cluster Management Node Configuration Parameters
15.3. MySQL Cluster SQL Node and API Node Configuration Parameters
15.4. mysqld Option/Variable Reference
15.5. ndb_common Option Reference
15.6. ndbd Option Reference
15.7. ndb_mgmd Option Reference
15.8. ndb_mgm Option Reference
15.9. ndb_config Option Reference
15.10. ndb_error_reporter Option Reference
15.11. ndb_restore Option Reference
15.12. ndb_show_tables Option Reference
15.13. ndb_size_pl Option Reference
17.1. MySQL APIs and Interfaces
17.2. MySQL Connector Versions and MySQL Server Versions
17.3. Mapping of MySQL Error Numbers to SQLStates
17.4. MySQL Configuration Options
17.5. MySQL client constants
17.6. MySQL fetch constants
17.7. MySQLi Configuration Options
17.8. Possible mysqli_info return values
17.9. Valid options
17.10. Supported flags
17.11. Attribute values
17.12. Type specification chars
17.13. Return Values
17.14. Object attributes
17.15. Object properties
17.16. Object properties
17.17. Supported flags

List of Examples

17.1. Connector/J: Obtaining a connection from the DriverManager
17.2. Connector/J: Using java.sql.Statement to execute a SELECT query
17.3. Connector/J: Calling Stored Procedures
17.4. Connector/J: Using Connection.prepareCall()
17.5. Connector/J: Registering output parameters
17.6. Connector/J: Setting CallableStatement input parameters
17.7. Connector/J: Retrieving results and output parameter values
17.8. Connector/J: Retrieving AUTO_INCREMENT column values using Statement.getGeneratedKeys()
17.9. Connector/J: Retrieving AUTO_INCREMENT column values using SELECT LAST_INSERT_ID()
17.10. Connector/J: Retrieving AUTO_INCREMENT column values in Updatable ResultSets
17.11. Connector/J: Using a connection pool with a J2EE application server
17.12. Connector/J: Example of transaction with retry logic
17.13. MySQL extension overview example
17.14. mysql_affected_rows example
17.15. mysql_affected_rows example using transactions
17.16. mysql_client_encoding example
17.17. mysql_close example
17.18. mysql_connect example
17.19. mysql_connect example using hostname:port syntax
17.20. mysql_connect example using ":/path/to/socket" syntax
17.21. mysql_create_db alternative example
17.22. mysql_data_seek example
17.23. mysql_db_name example
17.24. mysql_db_query alternative example
17.25. mysql_drop_db alternative example
17.26. mysql_errno example
17.27. mysql_error example
17.28. mysql_escape_string example
17.29. Query with aliased duplicate field names
17.30. mysql_fetch_array with MYSQL_NUM
17.31. mysql_fetch_array with MYSQL_ASSOC
17.32. mysql_fetch_array with MYSQL_BOTH
17.33. An expanded mysql_fetch_assoc example
17.34. mysql_fetch_field example
17.35. A mysql_fetch_lengths example
17.36. mysql_fetch_object example
17.37. mysql_fetch_object example
17.38. Fetching one row with mysql_fetch_row
17.39. A mysql_field_flags example
17.40. mysql_field_len example
17.41. mysql_field_name example
17.42. A mysql_field_table example
17.43. mysql_field_type example
17.44. A mysql_free_result example
17.45. mysql_get_client_info example
17.46. mysql_get_host_info example
17.47. mysql_get_proto_info example
17.48. mysql_get_server_info example
17.49. Relevant MySQL Statements
17.50. mysql_insert_id example
17.51. mysql_list_dbs example
17.52. Alternate to deprecated mysql_list_fields
17.53. mysql_list_processes example
17.54. mysql_list_tables alternative example
17.55. A mysql_num_fields example
17.56. mysql_num_rows example
17.57. A mysql_ping example
17.58. Invalid Query
17.59. Valid Query
17.60. Simple mysql_real_escape_string example
17.61. An example SQL Injection Attack
17.62. mysql_result example
17.63. mysql_select_db example
17.64. mysql_stat example
17.65. Alternative mysql_stat example
17.66. mysql_tablename example
17.67. mysql_thread_id example
17.68. Object oriented style
17.69. Procedural style
17.70. Object oriented style
17.71. Procedural style
17.72. Object oriented style
17.73. Procedural style
17.74. Object oriented style
17.75. Procedural style
17.76. Object oriented style
17.77. Procedural style
17.78. Object oriented style
17.79. Procedural style
17.80. Object oriented style
17.81. Procedural style
17.82. Object oriented style
17.83. Object oriented style when extending mysqli class
17.84. Procedural style
17.85. Generating a Trace File
17.86. Object oriented style
17.87. Procedural style
17.88. Object oriented style
17.89. Procedural style
17.90. Object oriented style
17.91. Procedural style
17.92. A mysqli_get_cache_stats example
17.93. Object oriented style
17.94. Procedural style
17.95. mysqli_get_client_info
17.96. A mysqli_get_client_stats example
17.97. mysqli_get_client_version
17.98. A mysqli_get_connection_stats example
17.99. Object oriented style
17.100. Procedural style
17.101. Object oriented style
17.102. Procedural style
17.103. Object oriented style
17.104. Procedural style
17.105. Object oriented style
17.106. Procedural style
17.107. Object oriented style
17.108. Procedural style
17.109. Object oriented style
17.110. Procedural style
17.111. Object oriented style
17.112. Procedural style
17.113. Object oriented style
17.114. Procedural style
17.115. Object oriented style
17.116. Procedural style
17.117. A mysqli_poll example
17.118. Object oriented style
17.119. Procedural style
17.120. Object oriented style
17.121. Procedural style
17.122. Object oriented style
17.123. Object oriented style when extending mysqli class
17.124. Procedural style
17.125. Object oriented style
17.126. Procedural style
17.127. Object oriented style
17.128. Procedural style
17.129. Object oriented style
17.130. Procedural style
17.131. Object oriented style
17.132. Procedural style
17.133. Object oriented style
17.134. Procedural style
17.135. Object oriented style
17.136. Procedural style
17.137. Object oriented style
17.138. Procedural style
17.139. Object oriented style
17.140. Procedural style
17.141. Object oriented style
17.142. Procedural style
17.143. Object oriented style
17.144. Procedural style
17.145. Object oriented style
17.146. Procedural style
17.147. Object oriented style
17.148. Procedural style
17.149. Object oriented style
17.150. Procedural style
17.151. Object oriented style
17.152. Procedural style
17.153. Object oriented style
17.154. Procedural style
17.155. Object oriented style
17.156. Procedural style
17.157. Object oriented style
17.158. Procedural style
17.159. Object oriented style
17.160. Procedural style
17.161. Object oriented style
17.162. Procedural style
17.163. Object oriented style
17.164. Procedural style
17.165. Object oriented style
17.166. Procedural style
17.167. Object oriented style
17.168. Procedural style
17.169. Object oriented style
17.170. Object oriented style
17.171. Procedural style
17.172. Object oriented style
17.173. Procedural style
17.174. Object oriented style
17.175. Procedural style
17.176. Object oriented style
17.177. Procedural style
17.178. Object oriented style
17.179. Procedural style
17.180. Object oriented style
17.181. Procedural style
17.182. Object oriented style
17.183. Procedural style
17.184. Object oriented style
17.185. Procedural style
17.186. Object oriented style
17.187. Procedural style
17.188. Object oriented style
17.189. Procedural style
17.190. Object oriented style
17.191. Procedural style
17.192. Object oriented style
17.193. Procedural style
17.194. Object oriented style
17.195. Procedural style
17.196. Object oriented style
17.197. Procedural style
17.198. Object oriented style
17.199. Procedural style
17.200. Object oriented style
17.201. Forcing queries to be buffered in mysql
17.202. PDO_MYSQL DSN examples