Table of Contents
- Preface
- 1. General Information
- 1.1. About This Manual
- 1.2. Conventions Used in This Manual
- 1.3. Overview of MySQL AB
- 1.4. Overview of the MySQL Database Management System
- 1.4.1. History of MySQL
- 1.4.2. The Main Features of MySQL
- 1.4.3. MySQL Stability
- 1.4.4. How Large MySQL Tables Can Be
- 1.4.5. Year 2000 Compliance
- 1.5. Overview of the MaxDB Database Management System
- 1.5.1. What is MaxDB?
- 1.5.2. History of MaxDB
- 1.5.3. Features of MaxDB
- 1.5.4. Licensing and Support
- 1.5.5. Feature Differences Between MaxDB and MySQL
- 1.5.6. Interoperability Features Between MaxDB and MySQL
- 1.5.7. MaxDB-Related Links
- 1.6. MySQL Development Roadmap
- 1.6.1. What's New in MySQL 5.1
- 1.6.2. What's Planned for MySQL 5.2
- 1.7. MySQL Information Sources
- 1.7.1. MySQL Mailing Lists
- 1.7.2. MySQL Community Support at the MySQL Forums
- 1.7.3. MySQL Community Support on Internet Relay Chat (IRC)
- 1.8. How to Report Bugs or Problems
- 1.9. MySQL Standards Compliance
- 1.9.1. What Standards MySQL Follows
- 1.9.2. Selecting SQL Modes
- 1.9.3. Running MySQL in ANSI Mode
- 1.9.4. MySQL Extensions to Standard SQL
- 1.9.5. MySQL Differences from Standard SQL
- 1.9.6. How MySQL Deals with Constraints
- 2. Installing and Upgrading MySQL
- 2.1. General Installation Issues
- 2.1.1. Operating Systems Supported by MySQL
- 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 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 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 MySQL
- 2.11.1. Upgrading from MySQL 5.0 to 5.1
- 2.11.2. Copying MySQL Databases to Another Machine
- 2.12. Downgrading MySQL
- 2.12.1. Downgrading to MySQL 5.0
- 2.13. Operating System-Specific Notes
- 2.13.1. Linux Notes
- 2.13.2. Mac OS X Notes
- 2.13.3. Solaris Notes
- 2.13.4. BSD Notes
- 2.13.5. Other Unix Notes
- 2.13.6. OS/2 Notes
- 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 Non-distributed Twins
- 3.7.2. Show a Table of Twin Pair Status
- 3.8. Using MySQL with Apache
- 4. Using MySQL Programs
- 4.1. Overview of MySQL Programs
- 4.2. Invoking MySQL Programs
- 4.3. Specifying Program Options
- 4.3.1. Using Options on the Command Line
- 4.3.2. Using Option Files
- 4.3.3. Using Environment Variables to Specify Options
- 4.3.4. Using Options to Set Program Variables
- 5. Database Administration
- 5.1. Overview of Server-Side Programs
- 5.2. mysqld The MySQL Server
- 5.2.1. mysqld Command Options
- 5.2.2. Server System Variables
- 5.2.3. Using System Variables
- 5.2.4. Server Status Variables
- 5.2.5. The Server SQL Mode
- 5.2.6. The MySQL Server Shutdown Process
- 5.2.7. MySQL Server-Side Help Support
- 5.3. The mysqld-max Extended MySQL Server
- 5.4. MySQL Server Startup Programs
- 5.4.1. mysqld_safe MySQL Server Startup Script
- 5.4.2. mysql.server MySQL Server Startup Script
- 5.4.3. mysqld_multi Manage Multiple MySQL Servers
- 5.5. mysqlmanager The MySQL Instance Manager
- 5.5.1. Starting the MySQL Server with MySQL Instance Manager
- 5.5.2. Connecting to the MySQL Instance Manager and Creating User Accounts
- 5.5.3. MySQL Instance Manager Command Options
- 5.5.4. MySQL Instance Manager Configuration Files
- 5.5.5. MySQL Instance Manager Commands
- 5.6. Installation-Related Programs
- 5.6.1. mysql_fix_privilege_tables Upgrade MySQL System Tables
- 5.6.2. mysql_upgrade Check Tables for MySQL Upgrade
- 5.7. General Security Issues
- 5.7.1. General Security Guidelines
- 5.7.2. Making MySQL Secure Against Attackers
- 5.7.3. Security-Related mysqld Options
- 5.7.4. Security Issues with
LOAD DATA LOCAL - 5.7.5. How to Run MySQL as a Normal User
- 5.8. The MySQL Access Privilege System
- 5.8.1. What the Privilege System Does
- 5.8.2. How the Privilege System Works
- 5.8.3. Privileges Provided by MySQL
- 5.8.4. Connecting to the MySQL Server
- 5.8.5. Access Control, Stage 1: Connection Verification
- 5.8.6. Access Control, Stage 2: Request Verification
- 5.8.7. When Privilege Changes Take Effect
- 5.8.8. Causes of
Access denied Errors - 5.8.9. Password Hashing as of MySQL 4.1
- 5.9. MySQL User Account Management
- 5.9.1. MySQL Usernames and Passwords
- 5.9.2. Adding New User Accounts to MySQL
- 5.9.3. Removing User Accounts from MySQL
- 5.9.4. Limiting Account Resources
- 5.9.5. Assigning Account Passwords
- 5.9.6. Keeping Your Password Secure
- 5.9.7. Using Secure Connections
- 5.10. Backup and Recovery
- 5.10.1. Database Backups
- 5.10.2. Example Backup and Recovery Strategy
- 5.10.3. Point-in-Time Recovery
- 5.10.4. Table Maintenance and Crash Recovery
- 5.11. MySQL Localization and International Usage
- 5.11.1. The Character Set Used for Data and Sorting
- 5.11.2. Setting the Error Message Language
- 5.11.3. Adding a New Character Set
- 5.11.4. The Character Definition Arrays
- 5.11.5. String Collating Support
- 5.11.6. Multi-Byte Character Support
- 5.11.7. Problems With Character Sets
- 5.11.8. MySQL Server Time Zone Support
- 5.12. MySQL Server Logs
- 5.12.1. Server Log Tables
- 5.12.2. The Error Log
- 5.12.3. The General Query Log
- 5.12.4. The Binary Log
- 5.12.5. The Slow Query Log
- 5.12.6. Server Log Maintenance
- 5.13. Running Multiple MySQL Servers on the Same Machine
- 5.13.1. Running Multiple Servers on Windows
- 5.13.2. Running Multiple Servers on Unix
- 5.13.3. Using Client Programs in a Multiple-Server Environment
- 5.14. The MySQL Query Cache
- 5.14.1. How the Query Cache Operates
- 5.14.2. Query Cache
SELECT Options - 5.14.3. Query Cache Configuration
- 5.14.4. Query Cache Status and Maintenance
- 6. Replication
- 6.1. Introduction to Replication
- 6.2. Replication Implementation Overview
- 6.3. Row-Based Replication
- 6.4. Replication Implementation Details
- 6.4.1. Replication Master Thread States
- 6.4.2. Replication Slave I/O Thread States
- 6.4.3. Replication Slave SQL Thread States
- 6.4.4. Replication Relay and Status Files
- 6.5. How to Set Up Replication
- 6.6. Replication Compatibility Between MySQL Versions
- 6.7. Upgrading a Replication Setup
- 6.7.1. Upgrading Replication to 5.0
- 6.8. Replication Features and Known Problems
- 6.9. Replication Startup Options
- 6.10. How Servers Evaluate Replication Rules
- 6.11. Replication FAQ
- 6.12. Comparison of Statement-Based Versus Row-Based Replication
- 6.13. Troubleshooting Replication
- 6.14. How to Report Replication Bugs or Problems
- 6.15. Auto-Increment in Multiple-Master Replication
- 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. Index Merge Optimization
- 7.2.7.
IS NULL Optimization - 7.2.8.
DISTINCT Optimization - 7.2.9.
LEFT JOIN and RIGHT JOIN
Optimization - 7.2.10. Nested Join Optimization
- 7.2.11. Outer Join Simplification
- 7.2.12.
ORDER BY Optimization - 7.2.13.
GROUP BY Optimization - 7.2.14.
LIMIT Optimization - 7.2.15. How to Avoid Table Scans
- 7.2.16. Speed of
INSERT Statements - 7.2.17. Speed of
UPDATE Statements - 7.2.18. Speed of
DELETE Statements - 7.2.19. Other Optimization Tips
- 7.3. Locking Issues
- 7.3.1. Locking Methods
- 7.3.2. Table Locking Issues
- 7.3.3. Concurrent Inserts
- 7.4. Optimizing Database Structure
- 7.4.1. Design Choices
- 7.4.2. Make Your Data as Small as Possible
- 7.4.3. Column Indexes
- 7.4.4. Multiple-Column Indexes
- 7.4.5. How MySQL Uses Indexes
- 7.4.6. The
MyISAM Key Cache - 7.4.7.
MyISAM Index Statistics Collection - 7.4.8. How MySQL Opens and Closes Tables
- 7.4.9. Drawbacks to Creating Many Tables in the Same Database
- 7.5. Optimizing the MySQL Server
- 7.5.1. System Factors and Startup Parameter Tuning
- 7.5.2. Tuning Server Parameters
- 7.5.3. Controlling Query Optimizer Performance
- 7.5.4. How Compiling and Linking Affects the Speed of MySQL
- 7.5.5. How MySQL Uses Memory
- 7.5.6. How MySQL Uses DNS
- 7.6. Disk Issues
- 7.6.1. Using Symbolic Links
- 8. Client and Utility Programs
- 8.1. Overview of Client and Utility Programs
- 8.2. myisam_ftdump Display Full-Text Index information
- 8.3. myisamchk MyISAM Table-Maintenance Utility
- 8.3.1. myisamchk General Options
- 8.3.2. myisamchk Check Options
- 8.3.3. myisamchk Repair Options
- 8.3.4. Other
myisamchk Options - 8.3.5. myisamchk Memory Usage
- 8.4. myisamlog Display MyISAM Log File Contents
- 8.5. myisampack Generate Compressed, Read-Only MyISAM Tables
- 8.6. mysql The MySQL Command-Line Tool
- 8.6.1. mysql Options
- 8.6.2. mysql Commands
- 8.6.3. mysql Server-Side Help
- 8.6.4. Executing SQL Statements from a Text File
- 8.6.5. mysql Tips
- 8.7. mysqlaccess Client for Checking Access Privileges
- 8.8. mysqladmin Client for Administering a MySQL Server
- 8.9. mysqlbinlog Utility for Processing Binary Log Files
- 8.10. mysqlcheck A Table Maintenance and Repair Program
- 8.11. mysqldump A Database Backup Program
- 8.12. mysqlhotcopy A Database Backup Program
- 8.13. mysqlimport A Data Import Program
- 8.14. mysqlshow Display Database, Table, and Column Information
- 8.15. mysqlslap Load Emulation Client
- 8.16. mysql_zap Kill Processes That Match a Pattern
- 8.17. perror Explain Error Codes
- 8.18. replace A String-Replacement Utility
- 9. Language Structure
- 9.1. Literal Values
- 9.1.1. Strings
- 9.1.2. Numbers
- 9.1.3. Hexadecimal Values
- 9.1.4. Boolean Values
- 9.1.5. Bit-Field Values
- 9.1.6.
NULL Values
- 9.2. Database, Table, Index, Column, and Alias Names
- 9.2.1. Identifier Qualifiers
- 9.2.2. Identifier Case Sensitivity
- 9.2.3. Mapping of Identifiers to Filenames
- 9.3. User-Defined Variables
- 9.4. Comment Syntax
- 9.5. Treatment of Reserved Words in MySQL
- 10. Character Set Support
- 10.1. Character Sets and Collations in General
- 10.2. Character Sets and Collations in MySQL
- 10.3. Specifying Character Sets and Collations
- 10.3.1. Server Character Set and Collation
- 10.3.2. Database Character Set and Collation
- 10.3.3. Table Character Set and Collation
- 10.3.4. Column Character Set and Collation
- 10.3.5. Character String Literal Character Set and Collation
- 10.3.6. National Character Set
- 10.3.7. Examples of Character Set and Collation Assignment
- 10.3.8. Compatibility with Other DBMSs
- 10.4. Connection Character Sets and Collations
- 10.5. Collation Issues
- 10.5.1. Using
COLLATE in SQL Statements - 10.5.2.
COLLATE Clause Precedence - 10.5.3.
BINARY Operator - 10.5.4. Some Special Cases Where the Collation Determination Is Tricky
- 10.5.5. Collations Must Be for the Right Character Set
- 10.5.6. An Example of the Effect of Collation
- 10.6. Operations Affected by Character Set Support
- 10.6.1. Result Strings
- 10.6.2.
CONVERT() and CAST() - 10.6.3.
SHOW Statements and
INFORMATION_SCHEMA
- 10.7. Unicode Support
- 10.8. UTF-8 for Metadata
- 10.9. Character Sets and Collations That MySQL Supports
- 10.9.1. Unicode Character Sets
- 10.9.2. West European Character Sets
- 10.9.3. Central European Character Sets
- 10.9.4. South European and Middle East Character Sets
- 10.9.5. Baltic Character Sets
- 10.9.6. Cyrillic Character Sets
- 10.9.7. Asian Character Sets
- 10.10. FAQ: MySQL Chinese, Japanese, and Korean Character Sets
- 10.10.1. SELECT shows non-Latin characters as "?"s. Why?
- 10.10.2. Troubles with GB character sets (Chinese)
- 10.10.3. Troubles with big5 character set (Chinese)
- 10.10.4. Troubles with character-set conversions (Japanese)
- 10.10.5. The Great Yen Sign problem (Japanese)
- 10.10.6. Troubles with euckr character set (Korean)
- 10.10.7. The Data truncated message
- 10.10.8. Troubles with Access, Perl, PHP, etc.
- 10.10.9. How can I get old MySQL 4.0 behaviour back?
- 10.10.10. Why do some LIKE and FULLTEXT searches fail?
- 10.10.11. What CJK character sets are available?
- 10.10.12. Is character X available in all character sets?
- 10.10.13. Strings don't sort correctly in Unicode (I)
- 10.10.14. Strings don't sort correctly in Unicode (II)
- 10.10.15. My supplementary characters get rejected
- 10.10.16. Shouldn't it be CJKV (V for Vietnamese)?
- 10.10.17. Will MySQL fix any CJK problems in version 5.1?
- 10.10.18. When will MySQL translate the manual again?
- 10.10.19. Whom can I talk to?
- 11. Data Types
- 11.1. Data Type Overview
- 11.1.1. Overview of Numeric Types
- 11.1.2. Overview of Date and Time Types
- 11.1.3. Overview of String Types
- 11.1.4. Data Type Default Values
- 11.2. Numeric Types
- 11.3. Date and Time Types
- 11.3.1. The
DATETIME, DATE, and
TIMESTAMP Types - 11.3.2. The
TIME Type - 11.3.3. The
YEAR Type - 11.3.4. Y2K Issues and Date Types
- 11.4. String Types
- 11.4.1. The
CHAR and VARCHAR Types - 11.4.2. The
BINARY and VARBINARY Types - 11.4.3. The
BLOB and TEXT Types - 11.4.4. The
ENUM Type - 11.4.5. The
SET Type
- 11.5. Data Type Storage Requirements
- 11.6. Choosing the Right Type for a Column
- 11.7. Using Data Types from Other Database Engines
- 12. Functions and Operators
- 12.1. Operators
- 12.1.1. Operator Precedence
- 12.1.2. Type Conversion in Expression Evaluation
- 12.1.3. Comparison Functions and Operators
- 12.1.4. Logical Operators
- 12.2. Control Flow Functions
- 12.3. String Functions
- 12.3.1. String Comparison Functions
- 12.4. Numeric Functions
- 12.4.1. Arithmetic Operators
- 12.4.2. Mathematical Functions
- 12.5. Date and Time Functions
- 12.6. What Calendar Is Used By MySQL?
- 12.7. Full-Text Search Functions
- 12.7.1. Boolean Full-Text Searches
- 12.7.2. Full-Text Searches with Query Expansion
- 12.7.3. Full-Text Stopwords
- 12.7.4. Full-Text Restrictions
- 12.7.5. Fine-Tuning MySQL Full-Text Search
- 12.8. Cast Functions and Operators
- 12.9. XML Functions
- 12.10. Other Functions
- 12.10.1. Bit Functions
- 12.10.2. Encryption and Compression Functions
- 12.10.3. Information Functions
- 12.10.4. Miscellaneous Functions
- 12.11. Functions and Modifiers for Use with
GROUP BY Clauses - 12.11.1.
GROUP BY (Aggregate) Functions - 12.11.2.
GROUP BY Modifiers - 12.11.3.
GROUP BY and HAVING with Hidden
Fields
- 13. SQL Statement Syntax
- 13.1. Data Definition Statements
- 13.1.1.
ALTER DATABASE Syntax - 13.1.2.
ALTER TABLE Syntax - 13.1.3.
ALTER LOGFILE GROUP Syntax - 13.1.4.
ALTER TABLESPACE Syntax - 13.1.5.
CREATE DATABASE Syntax - 13.1.6.
CREATE INDEX Syntax - 13.1.7.
CREATE TABLE Syntax - 13.1.8.
CREATE LOGFILE GROUP Syntax - 13.1.9.
CREATE TABLESPACE Syntax - 13.1.10.
DROP DATABASE Syntax - 13.1.11.
DROP INDEX Syntax - 13.1.12.
DROP TABLE Syntax - 13.1.13.
DROP LOGFILE GROUP Syntax - 13.1.14.
DROP TABLESPACE Syntax - 13.1.15.
RENAME DATABASE Syntax - 13.1.16.
RENAME TABLE Syntax
- 13.2. Data Manipulation Statements
- 13.2.1.
DELETE Syntax - 13.2.2.
DO Syntax - 13.2.3.
HANDLER Syntax - 13.2.4.
INSERT Syntax - 13.2.5.
LOAD DATA INFILE Syntax - 13.2.6.
REPLACE Syntax - 13.2.7.
SELECT Syntax - 13.2.8. Subquery Syntax
- 13.2.9.
TRUNCATE Syntax - 13.2.10.
UPDATE Syntax
- 13.3. MySQL Utility Statements
- 13.3.1.
DESCRIBE Syntax - 13.3.2.
HELP Syntax - 13.3.3.
USE Syntax
- 13.4. MySQL Transactional and Locking Statements
- 13.4.1.
START TRANSACTION, COMMIT, and
ROLLBACK Syntax - 13.4.2. Statements That Cannot Be Rolled Back
- 13.4.3. Statements That Cause an Implicit Commit
- 13.4.4.
SAVEPOINT and ROLLBACK TO
SAVEPOINT Syntax - 13.4.5.
LOCK TABLES and UNLOCK TABLES
Syntax - 13.4.6.
SET TRANSACTION Syntax - 13.4.7. XA Transactions
- 13.5. Database Administration Statements
- 13.5.1. Account Management Statements
- 13.5.2. Table Maintenance Statements
- 13.5.3.
SET Syntax - 13.5.4.
SHOW Syntax - 13.5.5. Other Administrative Statements
- 13.6. Replication Statements
- 13.6.1. SQL Statements for Controlling Master Servers
- 13.6.2. SQL Statements for Controlling Slave Servers
- 13.7. SQL Syntax for Prepared Statements
- 14. Storage Engines and Table Types
- 14.1. Overview of MySQL Storage Engine Architecture
- 14.1.1. The Common Database Server Layer
- 14.1.2. Pluggable Storage Engine Architecture
- 14.2. Supported Storage Engines
- 14.2.1. Choosing a Storage Engine
- 14.2.2. Comparing Transaction and Non-Transaction Engines
- 14.3. Setting the Storage Engine
- 14.4. The
MyISAM Storage Engine - 14.4.1.
MyISAM Startup Options - 14.4.2. Space Needed for Keys
- 14.4.3.
MyISAM Table Storage Formats - 14.4.4.
MyISAM Table Problems
- 14.5. The
InnoDB Storage Engine - 14.5.1.
InnoDB Overview - 14.5.2.
InnoDB Contact Information - 14.5.3.
InnoDB Configuration - 14.5.4.
InnoDB Startup Options and System Variables - 14.5.5. Creating the
InnoDB Tablespace - 14.5.6. Creating and Using
InnoDB Tables - 14.5.7. Adding and Removing
InnoDB Data and Log Files - 14.5.8. Backing Up and Recovering an
InnoDB Database - 14.5.9. Moving an
InnoDB Database to Another Machine - 14.5.10.
InnoDB Transaction Model and Locking - 14.5.11.
InnoDB Performance Tuning Tips - 14.5.12. Implementation of Multi-Versioning
- 14.5.13.
InnoDB Table and Index Structures - 14.5.14.
InnoDB File Space Management and Disk I/O - 14.5.15.
InnoDB Error Handling - 14.5.16. Restrictions on
InnoDB Tables - 14.5.17.
InnoDB Troubleshooting
- 14.6. The
MERGE Storage Engine - 14.6.1.
MERGE Table Problems
- 14.7. The
MEMORY (HEAP) Storage Engine - 14.8. The
EXAMPLE Storage Engine - 14.9. The
FEDERATED Storage Engine - 14.9.1. Description of the
FEDERATED Storage Engine - 14.9.2. How to use
FEDERATED Tables - 14.9.3. Limitations of the
FEDERATED Storage Engine
- 14.10. The
ARCHIVE Storage Engine - 14.11. The
CSV Storage Engine - 14.11.1. Repairing and Checking CSV Tables
- 14.11.2. CSV Limitations
- 14.12. The
BLACKHOLE Storage Engine
- 15. Writing a Custom Storage Engine
- 15.1. Introduction
- 15.2. Overview
- 15.3. Creating Storage Engine Source Files
- 15.4. Creating the
handlerton - 15.5. Handling Handler Instantiation
- 15.6. Defining Filename Extensions
- 15.7. Creating Tables
- 15.8. Opening a Table
- 15.9. Implementing Basic Table Scanning
- 15.9.1. Implementing the
store_lock() Method - 15.9.2. Implementing the
external_lock() Method - 15.9.3. Implementing the
rnd_init() Method - 15.9.4. Implementing the
info() Method - 15.9.5. Implementing the
extra() Method - 15.9.6. Implementing the
rnd_next() Method
- 15.10. Closing a Table
- 15.11. Adding Support for
INSERT to a Storage Engine - 15.12. Adding Support for
UPDATE to a Storage Engine - 15.13. Adding Support for
DELETE to a Storage Engine - 15.14. Supporting Non-Sequential Reads
- 15.14.1. Implementing the
position() Method - 15.14.2. Implementing the
rnd_pos() Method
- 15.15. Supporting Indexing
- 15.15.1. Indexing Overview
- 15.15.2. Getting Index Information During
CREATE TABLE
Operations - 15.15.3. Creating Index Keys
- 15.15.4. Parsing Key Information
- 15.15.5. Providing Index Information to the Optimizer
- 15.15.6. Preparing for Index Use with
index_init() - 15.15.7. Cleaning up with
index_end() - 15.15.8. Implementing the
index_read() Method - 15.15.9. Implementing the
index_read_idx() Method - 15.15.10. Implementing the
index_next() Method - 15.15.11. Implementing the
index_prev() Method - 15.15.12. Implementing the
index_first() Method - 15.15.13. Implementing the
index_last() Method
- 15.16. Supporting Transactions
- 15.16.1. Transaction Overview
- 15.16.2. Starting a Transaction
- 15.16.3. Implementing ROLLBACK
- 15.16.4. Implementing COMMIT
- 15.16.5. Adding Support for Savepoints
- 15.17. API Reference
- 15.17.1. bas_ext
- 15.17.2. close
- 15.17.3. create
- 15.17.4. delete_row
- 15.17.5. delete_table
- 15.17.6. external_lock
- 15.17.7. extra
- 15.17.8. index_end
- 15.17.9. index_first
- 15.17.10. index_init
- 15.17.11. index_last
- 15.17.12. index_next
- 15.17.13. index_prev
- 15.17.14. index_read_idx
- 15.17.15. index_read
- 15.17.16. info
- 15.17.17. open
- 15.17.18. position
- 15.17.19. records_in_range
- 15.17.20. rnd_init
- 15.17.21. rnd_next
- 15.17.22. rnd_pos
- 15.17.23. start_stmt
- 15.17.24. store_lock
- 15.17.25. update_row
- 15.17.26. write_row
- 16. MySQL Cluster
- 16.1. MySQL Cluster Overview
- 16.2. Basic MySQL Cluster Concepts
- 16.2.1. MySQL Cluster Nodes, Node Groups, Replicas, and Partitions
- 16.3. Simple Multi-Computer How-To
- 16.3.1. Hardware, Software, and Networking
- 16.3.2. Multi-Computer Installation
- 16.3.3. Multi-Computer Configuration
- 16.3.4. Initial Startup
- 16.3.5. Loading Sample Data and Performing Queries
- 16.3.6. Safe Shutdown and Restart
- 16.4. MySQL Cluster Configuration
- 16.4.1. Building MySQL Cluster from Source Code
- 16.4.2. Installing the Software
- 16.4.3. Quick Test Setup of MySQL Cluster
- 16.4.4. Configuration File
- 16.4.5. Overview of Cluster Configuration Parameters
- 16.4.6. Configuring Parameters for Local Checkpoints
- 16.5. Upgrading and Downgrading MySQL Cluster
- 16.5.1. Performing a Rolling Restart of the Cluster
- 16.5.2. Cluster Upgrade and Downgrade Compatibility
- 16.6. Process Management in MySQL Cluster
- 16.6.1. MySQL Server Process Usage for MySQL Cluster
- 16.6.2. ndbd, the Storage Engine Node Process
- 16.6.3. ndb_mgmd, the Management Server Process
- 16.6.4. ndb_mgm, the Management Client Process
- 16.6.5. Command Options for MySQL Cluster Processes
- 16.7. Management of MySQL Cluster
- 16.7.1. MySQL Cluster Startup Phases
- 16.7.2. Commands in the Management Client
- 16.7.3. Event Reports Generated in MySQL Cluster
- 16.7.4. Single-User Mode
- 16.8. On-line Backup of MySQL Cluster
- 16.8.1. Cluster Backup Concepts
- 16.8.2. Using The Management Client to Create a Backup
- 16.8.3. How to Restore a Cluster Backup
- 16.8.4. Configuration for Cluster Backup
- 16.8.5. Backup Troubleshooting
- 16.9. Cluster Utility Programs
- 16.9.1. ndb_delete_all
- 16.9.2. ndb_desc
- 16.9.3. ndb_drop_index
- 16.9.4. ndb_drop_table
- 16.9.5. ndb_error_reporter
- 16.9.6. ndb_print_backup_file
- 16.9.7. ndb_print_schema_file
- 16.9.8. ndb_print_sys_file
- 16.9.9. ndb_select_all
- 16.9.10. ndb_select_count
- 16.9.11. ndb_show_tables
- 16.9.12. ndb_size.pl
- 16.9.13. ndb_waiter
- 16.10. MySQL Cluster Replication
- 16.10.1. Abbreviations and Symbols
- 16.10.2. Assumptions and General Requirements
- 16.10.3. Known Issues
- 16.10.4. Replication Schema and Tables
- 16.10.5. Preparing the Cluster for Replication
- 16.10.6. Starting Replication (Single Replication Channel)
- 16.10.7. Using Two Replication Channels
- 16.10.8. Implementing Failover with MySQL Cluster
- 16.10.9. MySQL Cluster Backups With Replication
- 16.11. MySQL Cluster Disk Data Storage
- 16.12. Using High-Speed Interconnects with MySQL Cluster
- 16.12.1. Configuring MySQL Cluster to use SCI Sockets
- 16.12.2. Understanding the Impact of Cluster Interconnects
- 16.13. Known Limitations of MySQL Cluster
- 16.14. MySQL Cluster Development Roadmap
- 16.14.1. MySQL Cluster Changes in MySQL 5.1
- 16.15. MySQL Cluster FAQ
- 16.16. MySQL Cluster Glossary
- 17. Partitioning
- 17.1. Overview of Partitioning in MySQL
- 17.2. Partition Types
- 17.2.1.
RANGE Partitioning - 17.2.2.
LIST Partitioning - 17.2.3.
HASH Partitioning - 17.2.4.
KEY Partitioning - 17.2.5. Subpartitioning
- 17.2.6. How MySQL Partitioning Handles
NULL Values
- 17.3. Partition Management
- 17.3.1. Management of
RANGE and LIST
Partitions - 17.3.2. Management of
HASH and KEY
Partitions - 17.3.3. Maintenance of Partitions
- 17.3.4. Obtaining Information About Partitions
- 17.4. Partition Pruning
- 17.5. Restrictions and Limitations on Partitioning
- 18. Spatial Extensions
- 18.1. Introduction to MySQL Spatial Support
- 18.2. The OpenGIS Geometry Model
- 18.2.1. The Geometry Class Hierarchy
- 18.2.2. Class
Geometry - 18.2.3. Class
Point - 18.2.4. Class
Curve - 18.2.5. Class
LineString - 18.2.6. Class
Surface - 18.2.7. Class
Polygon - 18.2.8. Class
GeometryCollection - 18.2.9. Class
MultiPoint - 18.2.10. Class
MultiCurve - 18.2.11. Class
MultiLineString - 18.2.12. Class
MultiSurface - 18.2.13. Class
MultiPolygon
- 18.3. Supported Spatial Data Formats
- 18.3.1. Well-Known Text (WKT) Format
- 18.3.2. Well-Known Binary (WKB) Format
- 18.4. Creating a Spatially Enabled MySQL Database
- 18.4.1. MySQL Spatial Data Types
- 18.4.2. Creating Spatial Values
- 18.4.3. Creating Spatial Columns
- 18.4.4. Populating Spatial Columns
- 18.4.5. Fetching Spatial Data
- 18.5. Analyzing Spatial Information
- 18.5.1. Geometry Format Conversion Functions
- 18.5.2.
Geometry Functions - 18.5.3. Functions That Create New Geometries from Existing Ones
- 18.5.4. Functions for Testing Spatial Relations Between Geometric Objects
- 18.5.5. Relations on Geometry Minimal Bounding Rectangles (MBRs)
- 18.5.6. Functions That Test Spatial Relationships Between Geometries
- 18.6. Optimizing Spatial Analysis
- 18.6.1. Creating Spatial Indexes
- 18.6.2. Using a Spatial Index
- 18.7. MySQL Conformance and Compatibility
- 19. Stored Procedures and Functions
- 19.1. Stored Routines and the Grant Tables
- 19.2. Stored Routine Syntax
- 19.2.1.
CREATE PROCEDURE and CREATE
FUNCTION Syntax - 19.2.2.
ALTER PROCEDURE and ALTER FUNCTION
Syntax - 19.2.3.
DROP PROCEDURE and DROP FUNCTION
Syntax - 19.2.4.
CALL Statement Syntax - 19.2.5.
BEGIN ... END Compound Statement Syntax - 19.2.6.
DECLARE Statement Syntax - 19.2.7. Variables in Stored Routines
- 19.2.8. Conditions and Handlers
- 19.2.9. Cursors
- 19.2.10. Flow Control Constructs
- 19.3. Stored Procedures, Functions, Triggers, and Replication: Frequently
Asked Questions
- 19.4. Binary Logging of Stored Routines and Triggers
- 20. Triggers
- 20.1.
CREATE TRIGGER Syntax - 20.2.
DROP TRIGGER Syntax - 20.3. Using Triggers
- 21. Event Scheduler
- 21.1. Event Scheduler Overview
- 21.2. Event Scheduler Syntax
- 21.2.1.
CREATE EVENT Syntax - 21.2.2.
ALTER EVENT Syntax - 21.2.3.
DROP EVENT Syntax
- 21.3. Event Metadata
- 21.4. The Event Scheduler and MySQL Privileges
- 21.5. Event Scheduler Limitations and Restrictions
- 22. Views
- 22.1.
ALTER VIEW Syntax - 22.2.
CREATE VIEW Syntax - 22.3.
DROP VIEW Syntax
- 23. The
INFORMATION_SCHEMA Database - 23.1. The
INFORMATION_SCHEMA SCHEMATA Table - 23.2. The
INFORMATION_SCHEMA TABLES Table - 23.3. The
INFORMATION_SCHEMA COLUMNS Table - 23.4. The
INFORMATION_SCHEMA STATISTICS Table - 23.5. The
INFORMATION_SCHEMA USER_PRIVILEGES Table - 23.6. The
INFORMATION_SCHEMA SCHEMA_PRIVILEGES Table - 23.7. The
INFORMATION_SCHEMA TABLE_PRIVILEGES Table - 23.8. The
INFORMATION_SCHEMA COLUMN_PRIVILEGES Table - 23.9. The
INFORMATION_SCHEMA CHARACTER_SETS Table - 23.10. The
INFORMATION_SCHEMA COLLATIONS Table - 23.11. The
INFORMATION_SCHEMA
COLLATION_CHARACTER_SET_APPLICABILITY Table - 23.12. The
INFORMATION_SCHEMA TABLE_CONSTRAINTS Table - 23.13. The
INFORMATION_SCHEMA KEY_COLUMN_USAGE Table - 23.14. The
INFORMATION_SCHEMA ROUTINES Table - 23.15. The
INFORMATION_SCHEMA VIEWS Table - 23.16. The
INFORMATION_SCHEMA TRIGGERS Table - 23.17. The
INFORMATION_SCHEMA PLUGINS Table - 23.18. The
INFORMATION_SCHEMA ENGINES Table - 23.19. The
INFORMATION_SCHEMA PARTITIONS Table - 23.20. The
INFORMATION_SCHEMA EVENTS Table - 23.21. The
INFORMATION_SCHEMA FILES Table - 23.22. The
INFORMATION_SCHEMA PROCESSLIST Table - 23.23. The
INFORMATION_SCHEMA REFERENTIAL_CONSTRAINTS Table - 23.24. Other
INFORMATION_SCHEMA Tables - 23.25. Extensions to
SHOW Statements
- 24. Precision Math
- 24.1. Types of Numeric Values
- 24.2.
DECIMAL Data Type Changes - 24.3. Expression Handling
- 24.4. Rounding Behavior
- 24.5. Precision Math Examples
- 25. APIs and Libraries
- 25.1. libmysqld, the Embedded MySQL Server Library
- 25.1.1. Overview of the Embedded MySQL Server Library
- 25.1.2. Compiling Programs with
libmysqld - 25.1.3. Restrictions When Using the Embedded MySQL Server
- 25.1.4. Options with the Embedded Server
- 25.1.5. Embedded Server Examples
- 25.1.6. Licensing the Embedded Server
- 25.2. MySQL C API
- 25.2.1. C API Data types
- 25.2.2. C API Function Overview
- 25.2.3. C API Function Descriptions
- 25.2.4. C API Prepared Statements
- 25.2.5. C API Prepared Statement Data types
- 25.2.6. C API Prepared Statement Function Overview
- 25.2.7. C API Prepared Statement Function Descriptions
- 25.2.8. C API Prepared statement problems
- 25.2.9. C API Handling of Multiple Statement Execution
- 25.2.10. C API Handling of Date and Time Values
- 25.2.11. C API Threaded Function Descriptions
- 25.2.12. C API Embedded Server Function Descriptions
- 25.2.13. Common Questions and Problems When Using the C API
- 25.2.14. Building Client Programs
- 25.2.15. How to Make a Threaded Client
- 25.3. MySQL PHP API
- 25.3.1. Common Problems with MySQL and PHP
- 25.3.2. Enabling Both
mysql and mysqli in
PHP
- 25.4. MySQL Perl API
- 25.5. MySQL C++ API
- 25.5.1. Borland C++
- 25.6. MySQL Python API
- 25.7. MySQL Tcl API
- 25.8. MySQL Eiffel Wrapper
- 25.9. MySQL Program Development Utilities
- 25.9.1. msql2mysql Convert mSQL Programs for Use with MySQL
- 25.9.2. mysql_config Get Compile Options for Compiling Clients
- 26. Connectors
- 26.1. MySQL Connector/ODBC
- 26.1.1. Introduction to MyODBC
- 26.1.2. How to Install MyODBC
- 26.1.3. MyODBC Configuration
- 26.1.4. MyODBC Examples
- 26.1.5. MyODBC Reference
- 26.1.6. MyODBC Notes and Tips
- 26.1.7. MyODBC Support
- 26.2. Connector/NET
- 26.2.1. Connector/NET Versions
- 26.2.2. How to install Connector/NET
- 26.2.3. Connector/NET Examples
- 26.2.4. Connector/NET Reference
- 26.2.5. Connector/NET Notes and Tips
- 26.2.6. Connector/NET Support
- 26.3. MySQL Connector/J
- 26.3.1. Connector/J Versions
- 26.3.2. Installing Connector/J
- 26.3.3. Connector/J Examples
- 26.3.4. Connector/J (JDBC) Reference
- 26.3.5. Connector/J Notes and Tips
- 26.3.6. Connector/J Support
- 26.4. MySQL Connector/MXJ
- 26.4.1. Introduction to Connector/MXJ
- 26.4.2. Installing Connector/MXJ
- 26.4.3. Connector/MXJ Configuration
- 26.4.4. Connector/MXJ Reference
- 26.4.5. Connector/MXJ Notes and Tips
- 26.4.6. Connector/MXJ Support
- 26.5. Connector/PHP
- 27. Extending MySQL
- 27.1. MySQL Internals
- 27.1.1. MySQL Threads
- 27.1.2. MySQL Test Suite
- 27.2. The MySQL Plugin Interface
- 27.2.1. Characteristics of the Plugin Interface
- 27.2.2. Full-Text Parser Plugins
- 27.2.3.
INSTALL PLUGIN Syntax - 27.2.4.
UNINSTALL PLUGIN Syntax - 27.2.5. Writing Plugins
- 27.3. Adding New Functions to MySQL
- 27.3.1. Features of the User-Defined Function Interface
- 27.3.2.
CREATE FUNCTION Syntax - 27.3.3.
DROP FUNCTION Syntax - 27.3.4. Adding a New User-Defined Function
- 27.3.5. Adding a New Native Function
- 27.4. Adding New Procedures to MySQL
- 27.4.1. Procedure Analyse
- 27.4.2. Writing a Procedure
- A. Problems and Common Errors
- A.1. How to Determine What Is Causing a Problem
- A.2. Common Errors When Using MySQL Programs
- A.2.1.
Access denied - A.2.2.
Can't connect to [local] MySQL server - A.2.3.
Client does not support authentication protocol - A.2.4. Password Fails When Entered Interactively
- A.2.5.
Host 'host_name' is
blocked - A.2.6.
Too many connections - A.2.7.
Out of memory - A.2.8.
MySQL server has gone away - A.2.9.
Packet too large - A.2.10. Communication Errors and Aborted Connections
- A.2.11.
The table is full - A.2.12.
Can't create/write to file - A.2.13.
Commands out of sync - A.2.14.
Ignoring user - A.2.15.
Table 'tbl_name' doesn't
exist - A.2.16.
Can't initialize character set - A.2.17. File Not Found
- A.3. Installation-Related Issues
- A.3.1. Problems Linking to the MySQL Client Library
- A.3.2. Problems with File Permissions
- A.4. Administration-Related Issues
- A.4.1. How to Reset the Root Password
- A.4.2. What to Do If MySQL Keeps Crashing
- A.4.3. How MySQL Handles a Full Disk
- A.4.4. Where MySQL Stores Temporary Files
- A.4.5. How to Protect or Change the MySQL Unix Socket File
- A.4.6. Time Zone Problems
- A.5. Query-Related Issues
- A.5.1. Case Sensitivity in Searches
- A.5.2. Problems Using
DATE Columns - A.5.3. Problems with
NULL Values - A.5.4. Problems with Column Aliases
- A.5.5. Rollback Failure for Non-Transactional Tables
- A.5.6. Deleting Rows from Related Tables
- A.5.7. Solving Problems with No Matching Rows
- A.5.8. Problems with Floating-Point Comparisons
- A.6. Optimizer-Related Issues
- A.7. Table Definition-Related Issues
- A.7.1. Problems with
ALTER TABLE - A.7.2. How to Change the Order of Columns in a Table
- A.7.3.
TEMPORARY TABLE Problems
- A.8. Known Issues in MySQL
- A.8.1. Open Issues in MySQL
- B. Error Codes and Messages
- B.1. Server Error Codes and Messages
- B.2. Client Error Codes and Messages
- C. Credits
- C.1. Developers at MySQL AB
- C.2. Contributors to MySQL
- C.3. Documenters and translators
- C.4. Libraries used by and included with MySQL
- C.5. Packages that support MySQL
- C.6. Tools that were used to create MySQL
- C.7. Supporters of MySQL
- D. MySQL Change History
- D.1. Changes in release 5.1.x (Development)
- D.1.1. Changes in release 5.1.13 (Not yet released)
- D.1.2. Changes in release 5.1.12 (Not yet released)
- D.1.3. Changes in release 5.1.11 (26 May 2006)
- D.1.4. Changes in release 5.1.10 (Not released)
- D.1.5. Changes in release 5.1.9 (12 April 2006)
- D.1.6. Changes in release 5.1.8 (Not released)
- D.1.7. Changes in release 5.1.7 (27 February 2006)
- D.1.8. Changes in release 5.1.6 (01 February 2006)
- D.1.9. Changes in release 5.1.5 (10 January 2006)
- D.1.10. Changes in release 5.1.4 (21 December 2005)
- D.1.11. Changes in release 5.1.3 (29 November 2005)
- D.1.12. Changes in release 5.1.2 (Not released)
- D.1.13. Changes in release 5.1.1 (Not released)
- D.2. MySQL Connector/ODBC (MyODBC) Change History
- D.2.1. Changes in MyODBC 3.51.13
- D.2.2. Changes in MyODBC 3.51.12
- D.2.3. Changes in MyODBC 3.51.11
- D.3. MySQL Connector/NET Change History
- D.3.1. Version 1.0.8
- D.3.2. Version 1.0.7
- D.3.3. Version 1.0.6
- D.3.4. Version 1.0.5
- D.3.5. Version 1.0.4 1-20-05
- D.3.6. Version 1.0.3-gamma 12-10-04
- D.3.7. Version 1.0.2-gamma 04-11-15
- D.3.8. Version 1.0.1-beta2 04-10-27
- D.3.9. Version 1.0.0 04-09-01
- D.3.10. Version 0.9.0 04-08-30
- D.3.11. Version 0.76
- D.3.12. Version 0.75
- D.3.13. Version 0.74
- D.3.14. Version 0.71
- D.3.15. Version 0.70
- D.3.16. Version 0.68
- D.3.17. Version 0.65
- D.3.18. Version 0.60
- D.3.19. Version 0.50
- D.4. MySQL Connector/J Change History
- D.4.1. Changes in MySQL Connector/J 5.0.3 (26 July 2006)
- D.4.2. Changes in MySQL Connector/J 5.0.2-beta (11 July 2006)
- D.4.3. Changes in MySQL Connector/J 5.0.1-beta (Not Released)
- D.4.4. Changes in MySQL Connector/J 5.0.0-beta (22 December 2005)
- D.4.5. Changes in MySQL Connector/J 3.1.14 (not yet released)
- D.4.6. Changes in MySQL Connector/J 3.1.13 (26 May 2006)
- D.4.7. Changes in MySQL Connector/J 3.1.12 (30 November 2005)
- D.4.8. Changes in MySQL Connector/J 3.1.11-stable (07 October 2005)
- D.4.9. Changes in MySQL Connector/J 3.1.10-stable (23 June 2005)
- D.4.10. Changes in MySQL Connector/J 3.1.9-stable (22 June 2005)
- D.4.11. Changes in MySQL Connector/J 3.1.8-stable (14 April 2005)
- D.4.12. Changes in MySQL Connector/J 3.1.7-stable (18 February 2005)
- D.4.13. Changes in MySQL Connector/J 3.1.6-stable (23 December 2004)
- D.4.14. Changes in MySQL Connector/J 3.1.5-gamma (02 December 2004)
- D.4.15. Changes in MySQL Connector/J 3.1.4-beta (04 September 2004)
- D.4.16. Changes in MySQL Connector/J 3.1.3-beta (07 July 2004)
- D.4.17. Changes in MySQL Connector/J 3.1.2-alpha (09 June 2004)
- D.4.18. Changes in MySQL Connector/J 3.1.1-alpha (14 February 2004)
- D.4.19. Changes in MySQL Connector/J 3.1.0-alpha (18 February 2003)
- D.4.20. Changes in MySQL Connector/J 3.0.17-ga (23 June 2005)
- D.4.21. Changes in MySQL Connector/J 3.0.16-ga (15 November 2004)
- D.4.22. Changes in MySQL Connector/J 3.0.15-production (04 September 2004)
- D.4.23. Changes in MySQL Connector/J 3.0.14-production (28 May 2004)
- D.4.24. Changes in MySQL Connector/J 3.0.13-production (27 May 2004)
- D.4.25. Changes in MySQL Connector/J 3.0.12-production (18 May 2004)
- D.4.26. Changes in MySQL Connector/J 3.0.11-stable (19 February 2004)
- D.4.27. Changes in MySQL Connector/J 3.0.10-stable (13 January 2004)
- D.4.28. Changes in MySQL Connector/J 3.0.9-stable (07 October 2003)
- D.4.29. Changes in MySQL Connector/J 3.0.8-stable (23 May 2003)
- D.4.30. Changes in MySQL Connector/J 3.0.7-stable (08 April 2003)
- D.4.31. Changes in MySQL Connector/J 3.0.6-stable (18 February 2003)
- D.4.32. Changes in MySQL Connector/J 3.0.5-gamma (22 January 2003)
- D.4.33. Changes in MySQL Connector/J 3.0.4-gamma (06 January 2003)
- D.4.34. Changes in MySQL Connector/J 3.0.3-dev (17 December 2002)
- D.4.35. Changes in MySQL Connector/J 3.0.2-dev (08 November 2002)
- D.4.36. Changes in MySQL Connector/J 3.0.1-dev (21 September 2002)
- D.4.37. Changes in MySQL Connector/J 3.0.0-dev (31 July 2002)
- D.4.38. Changes in MySQL Connector/J 2.0.14 (16 May 2002)
- D.4.39. Changes in MySQL Connector/J 2.0.13 (24 April 2002)
- D.4.40. Changes in MySQL Connector/J 2.0.12 (07 April 2002)
- D.4.41. Changes in MySQL Connector/J 2.0.11 (27 January 2002)
- D.4.42. Changes in MySQL Connector/J 2.0.10 (24 January 2002)
- D.4.43. Changes in MySQL Connector/J 2.0.9 (13 January 2002)
- D.4.44. Changes in MySQL Connector/J 2.0.8 (25 November 2001)
- D.4.45. Changes in MySQL Connector/J 2.0.7 (24 October 2001)
- D.4.46. Changes in MySQL Connector/J 2.0.6 (16 June 2001)
- D.4.47. Changes in MySQL Connector/J 2.0.5 (13 June 2001)
- D.4.48. Changes in MySQL Connector/J 2.0.3 (03 December 2000)
- D.4.49. Changes in MySQL Connector/J 2.0.1 (06 April 2000)
- D.4.50. Changes in MySQL Connector/J 2.0.0pre5 (21 February 2000)
- D.4.51. Changes in MySQL Connector/J 2.0.0pre4 (10 January 2000)
- D.4.52. Changes in MySQL Connector/J 2.0.0pre (17 August 1999)
- D.4.53. Changes in MySQL Connector/J 1.2b (04 July 1999)