MySQL Reference Manual for version 4.0.18.
Table of Contents
1. General Information
1.1 About This Manual
1.1.1 Conventions Used in This Manual
1.2 Overview of the MySQL Database Management System
1.2.1 History of MySQL
1.2.2 The Main Features of MySQL
1.2.3 MySQL Stability
1.2.4 How Big MySQL Tables Can Be
1.2.5 Year 2000 Compliance
1.3 Overview of MySQL AB
1.3.1 The Business Model and Services of MySQL AB
1.3.1.1 Support
1.3.1.2 Training and Certification
1.3.1.3 Consulting
1.3.1.4 Commercial Licenses
1.3.1.5 Partnering
1.3.2 Contact Information
1.4 MySQL Support and Licensing
1.4.1 Support Offered by MySQL AB
1.4.2 Copyrights and Licenses Used by MySQL
1.4.3 MySQL Licenses
1.4.3.1 Using the MySQL Software Under a Commercial License
1.4.3.2 Using the MySQL Software for Free Under GPL
1.4.4 MySQL AB Logos and Trademarks
1.4.4.1 The Original MySQL Logo
1.4.4.2 MySQL Logos that may be Used Without Written Permission
1.4.4.3 When You Need Written Permission to Use MySQL Logos
1.4.4.4 MySQL AB Partnership Logos
1.4.4.5 Using the Word MySQL
in Printed Text or Presentations
1.4.4.6 Using the Word MySQL
in Company and Product Names
1.5 MySQL Development Roadmap
1.5.1 MySQL 4.0 in a Nutshell
1.5.1.1 Features Available in MySQL 4.0
1.5.1.2 The Embedded MySQL Server
1.5.2 MySQL 4.1 in a Nutshell
1.5.2.1 Features Available in MySQL 4.1
1.5.2.2 Stepwise Rollout
1.5.2.3 Ready for Immediate Development Use
1.5.3 MySQL 5.0, The Next Development Release
1.6 MySQL and the Future (The TODO)
1.6.1 New Features Planned for 4.1
1.6.2 New Features Planned for 5.0
1.6.3 New Features Planned for 5.1
1.6.4 New Features Planned for the Near Future
1.6.5 New Features Planned for the Mid-Term Future
1.6.6 New Features We Don't Plan to Implement
1.7 MySQL Information Sources
1.7.1 MySQL Mailing Lists
1.7.1.1 The MySQL Mailing Lists
1.7.1.2 Asking Questions or Reporting Bugs
1.7.1.3 How to Report Bugs or Problems
1.7.1.4 Guidelines for Answering Questions on the Mailing List
1.7.2 MySQL Community Support on IRC (Internet Relay Chat)
1.8 MySQL Standards Compliance
1.8.1 What Standards MySQL Follows
1.8.2 Selecting SQL Modes
1.8.3 Running MySQL in ANSI Mode
1.8.4 MySQL Extensions to the SQL-92 Standard
1.8.5 MySQL Differences Compared to SQL-92
1.8.5.1 Subqueries
1.8.5.2 SELECT INTO TABLE
1.8.5.3 Transactions and Atomic Operations
1.8.5.4 Stored Procedures and Triggers
1.8.5.5 Foreign Keys
1.8.5.6 Views
1.8.5.7 `--' as the Start of a Comment
1.8.6 How MySQL Deals with Constraints
1.8.6.1 Constraint PRIMARY KEY / UNIQUE
1.8.6.2 Constraint NOT NULL
and DEFAULT
values
1.8.6.3 Constraint ENUM
and SET
1.8.7 Known Errors and Design Deficiencies in MySQL
1.8.7.1 Errors in 3.23 Fixed in a Later MySQL Version
1.8.7.2 Errors in 4.0 Fixed in a Later MySQL Version
1.8.7.3 Open Bugs / Design Deficiencies in MySQL
2. Installing 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.2.1 Choosing Which Version of MySQL to Install
2.1.2.2 Choosing a Distribution Format
2.1.2.3 How and When Updates Are Released
2.1.2.4 Release Philosophy--No Known Bugs in Releases
2.1.2.5 MySQL Binaries Compiled by MySQL AB
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.2.1 Installing MySQL on Windows
2.2.1.1 Windows System Requirements
2.2.1.2 Installing a Windows Binary Distribution
2.2.1.3 Preparing the Windows MySQL Environment
2.2.1.4 Selecting a Windows Server
2.2.1.5 Starting the Server for the First Time
2.2.1.6 Starting MySQL from the Windows Command Line
2.2.1.7 Starting MySQL as a Windows Service
2.2.1.8 Running MySQL Client Programs on Windows
2.2.1.9 MySQL on Windows Compared to MySQL on Unix
2.2.2 Installing MySQL on Linux
2.2.3 Installing MySQL on Mac OS X
2.2.4 Installing MySQL on NetWare
2.2.5 Installing MySQL on HP-UX
2.2.6 Installing MySQL on Other Unix-like Systems
2.3 MySQL Installation Using a Source Distribution
2.3.1 Quick Source Installation Overview
2.3.2 Typical configure
Options
2.3.3 Installing from the Development Source Tree
2.3.4 Dealing With Problems Compiling MySQL
2.3.5 MIT-pthreads Notes
2.3.6 Installing MySQL from Source on Windows
2.3.6.1 Building MySQL Using VC++
2.3.6.2 Creating a Windows Source Package from the Latest Development Source
2.3.7 Compiling MySQL Clients on Windows
2.4 Post-installation Setup and Testing
2.4.1 Windows Post-installation Procedures
2.4.2 Unix Post-installation Procedures
2.4.2.1 Problems Running mysql_install_db
2.4.2.2 Starting and Stopping MySQL Automatically
2.4.2.3 Starting and Troubleshooting the MySQL Server
2.5 Upgrading/Downgrading MySQL
2.5.1 Upgrading from Version 4.1 to 5.0
2.5.2 Upgrading from Version 4.0 to 4.1
2.5.3 Upgrading from Version 3.23 to 4.0
2.5.4 Upgrading from Version 3.22 to 3.23
2.5.5 Upgrading from Version 3.21 to 3.22
2.5.6 Upgrading from Version 3.20 to 3.21
2.5.7 Upgrading MySQL under Windows
2.5.8 Upgrading the Grant Tables
2.5.9 Copying MySQL Databases to Another Machine
2.6 Operating System Specific Notes
2.6.1 Linux Notes
2.6.1.1 Linux Operating System Notes
2.6.1.2 Linux Binary Distribution Notes
2.6.1.3 Linux Source Distribution Notes
2.6.1.4 Linux Post-installation Notes
2.6.1.5 Linux x86 Notes
2.6.1.6 Linux SPARC Notes
2.6.1.7 Linux Alpha Notes
2.6.1.8 Linux PowerPC Notes
2.6.1.9 Linux MIPS Notes
2.6.1.10 Linux IA-64 Notes
2.6.2 Mac OS X Notes
2.6.2.1 Mac OS X 10.x (Darwin)
2.6.2.2 Mac OS X Server 1.2 (Rhapsody)
2.6.3 Solaris Notes
2.6.3.1 Solaris 2.7/2.8 Notes
2.6.3.2 Solaris x86 Notes
2.6.4 BSD Notes
2.6.4.1 FreeBSD Notes
2.6.4.2 NetBSD Notes
2.6.4.3 OpenBSD 2.5 Notes
2.6.4.4 OpenBSD 2.8 Notes
2.6.4.5 BSD/OS Version 2.x Notes
2.6.4.6 BSD/OS Version 3.x Notes
2.6.4.7 BSD/OS Version 4.x Notes
2.6.5 Other Unix Notes
2.6.5.1 HP-UX Version 10.20 Notes
2.6.5.2 HP-UX Version 11.x Notes
2.6.5.3 IBM-AIX notes
2.6.5.4 SunOS 4 Notes
2.6.5.5 Alpha-DEC-UNIX Notes (Tru64)
2.6.5.6 Alpha-DEC-OSF/1 Notes
2.6.5.7 SGI Irix Notes
2.6.5.8 SCO Notes
2.6.5.9 SCO UnixWare Version 7.1.x Notes
2.6.6 OS/2 Notes
2.6.7 BeOS Notes
2.7 Perl Installation Notes
2.7.1 Installing Perl on Unix
2.7.2 Installing ActiveState Perl on Windows
2.7.3 Problems Using the Perl DBI
/DBD
Interface
3. MySQL 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.3.4.1 Selecting All Data
3.3.4.2 Selecting Particular Rows
3.3.4.3 Selecting Particular Columns
3.3.4.4 Sorting Rows
3.3.4.5 Date Calculations
3.3.4.6 Working with NULL
Values
3.3.4.7 Pattern Matching
3.3.4.8 Counting Rows
3.3.4.9 Using More Than one 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 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 The MySQL Server and Server Startup Scripts
5.1.1 Overview of the Server-Side Scripts and Utilities
5.1.2 mysqld-max
, An Extended mysqld
Server
5.1.3 mysqld_safe
, The Wrapper Around mysqld
5.1.4 mysql.server
, A Server Startup Script for Run Directories
5.1.5 mysqld_multi
, A Program for Managing Multiple MySQL Servers
5.2 Configuring MySQL
5.2.1 mysqld
Command-line Options
5.2.2 The Server SQL Mode
5.3 General Security Issues
5.3.1 General Security Guidelines
5.3.2 Making MySQL Secure Against Attackers
5.3.3 Startup Options for mysqld
Concerning Security
5.3.4 Security Issues with LOAD DATA LOCAL
5.4 The MySQL Access Privilege System
5.4.1 What the Privilege System Does
5.4.2 How the Privilege System Works
5.4.3 Privileges Provided by MySQL
5.4.4 Connecting to the MySQL Server
5.4.5 Access Control, Stage 1: Connection Verification
5.4.6 Access Control, Stage 2: Request Verification
5.4.7 Password Hashing in MySQL 4.1
5.4.8 Causes of Access denied
Errors
5.5 MySQL User Account Management
5.5.1 MySQL Usernames and Passwords
5.5.2 When Privilege Changes Take Effect
5.5.3 Setting Up the Initial MySQL Privileges
5.5.4 Adding New Users to MySQL
5.5.5 Deleting Users from MySQL
5.5.6 Limiting user resources
5.5.7 Setting Up Passwords
5.5.8 Keeping Your Password Secure
5.5.9 Using Secure Connections
5.5.9.1 Basics
5.5.9.2 Requirements
5.5.9.3 Setting Up SSL Certificates for MySQL
5.5.9.4 SSL GRANT
Options
5.5.9.5 SSL Command-line Options
5.5.9.6 Connecting to MySQL Remotely from Windows with SSH
5.6 Disaster Prevention and Recovery
5.6.1 Database Backups
5.6.2 Using myisamchk
for Table Maintenance and Crash Recovery
5.6.2.1 myisamchk
Invocation Syntax
5.6.2.2 General Options for myisamchk
5.6.2.3 Check Options for myisamchk
5.6.2.4 Repair Options for myisamchk
5.6.2.5 Other Options for myisamchk
5.6.2.6 myisamchk
Memory Usage
5.6.2.7 Using myisamchk
for Crash Recovery
5.6.2.8 How to Check Tables for Errors
5.6.2.9 How to Repair Tables
5.6.2.10 Table Optimization
5.6.3 Setting Up a Table Maintenance Regimen
5.6.4 Getting Information About a Table
5.7 MySQL Localization and International Usage
5.7.1 The Character Set Used for Data and Sorting
5.7.1.1 German character set
5.7.2 Non-English Error Messages
5.7.3 Adding a New Character Set
5.7.4 The Character Definition Arrays
5.7.5 String Collating Support
5.7.6 Multi-byte Character Support
5.7.7 Problems With Character Sets
5.8 The MySQL Log Files
5.8.1 The Error Log
5.8.2 The General Query Log
5.8.3 The Update Log
5.8.4 The Binary Log
5.8.5 The Slow Query Log
5.8.6 Log File Maintenance
5.9 Running Multiple MySQL Servers on the Same Machine
5.9.1 Running Multiple Servers on Windows
5.9.1.1 Starting Multiple Windows Servers at the Command Line
5.9.1.2 Starting Multiple Windows Servers as Services
5.9.2 Running Multiple Servers on Unix
5.9.3 Using Client Programs in a Multiple-Server Environment
6. Replication in MySQL
6.1 Introduction to Replication
6.2 Replication Implementation Overview
6.3 Replication Implementation Details
6.4 How to Set Up Replication
6.5 Upgrading a Replication Setup - Mixing Different MySQL Versions
6.6 Replication Features and Known Problems
6.7 Replication Startup Options
6.8 Replication FAQ
6.9 Troubleshooting Replication
6.10 Reporting Replication Bugs
7. MySQL Optimization
7.1 Optimization Overview
7.1.1 MySQL Design Limitations/Tradeoffs
7.1.2 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
Statements and Other Queries
7.2.1 EXPLAIN
Syntax (Get Information About a SELECT
)
7.2.2 Estimating Query Performance
7.2.3 Speed of SELECT
Queries
7.2.4 How MySQL Optimizes WHERE
Clauses
7.2.5 How MySQL Optimizes OR
Clauses
7.2.6 How MySQL Optimizes IS NULL
7.2.7 How MySQL Optimizes DISTINCT
7.2.8 How MySQL Optimizes LEFT JOIN
and RIGHT JOIN
7.2.9 How MySQL Optimizes ORDER BY
7.2.10 How MySQL Optimizes LIMIT
7.2.11 Speed of INSERT
Queries
7.2.12 Speed of UPDATE
Queries
7.2.13 Speed of DELETE
Queries
7.2.14 Other Optimization Tips
7.3 Locking Issues
7.3.1 How MySQL Locks Tables
7.3.2 Table Locking Issues
7.4 Optimizing Database Structure
7.4.1 Design Choices
7.4.2 Get Your Data as Small as Possible
7.4.3 How MySQL Uses Indexes
7.4.4 Column Indexes
7.4.5 Multiple-Column Indexes
7.4.6 The MyISAM Key Cache
7.4.6.1 Shared Key Cache Access
7.4.6.2 Multiple Key Caches
7.4.6.3 Midpoint Insertion Strategy
7.4.6.4 Index Preloading
7.4.6.5 Key Cache Block Size
7.4.6.6 Restructuring a Key Cache
7.4.7 How MySQL Counts Open Tables
7.4.8 How MySQL Opens and Closes Tables
7.4.9 Drawbacks to Creating Large Numbers of Tables in the Same Database
7.5 Optimizing the MySQL Server
7.5.1 System/Compile Time and Startup Parameter Tuning
7.5.2 Tuning Server Parameters
7.5.3 How Compiling and Linking Affects the Speed of MySQL
7.5.4 How MySQL Uses Memory
7.5.5 How MySQL uses DNS
7.5.6 SET
Syntax
7.6 Disk Issues
7.6.1 Using Symbolic Links
7.6.1.1 Using Symbolic Links for Databases on Unix
7.6.1.2 Using Symbolic Links for Tables on Unix
7.6.1.3 Using Symbolic Links for Databases on Windows
8. MySQL Client and Utility Programs
8.1 Overview of the Client-Side Scripts and Utilities
8.2 mysql
, The Command-line Tool
8.2.1 How to Run SQL Commands from a Text File
8.3 mysqlcc
, The MySQL Control Center
8.4 mysqladmin
, Administering a MySQL Server
8.5 mysqlbinlog
, Executing the queries from a binary log
8.6 Using mysqlcheck
for Table Maintenance and Crash Recovery
8.7 mysqldump
, Dumping Table Structure and Data
8.8 mysqlhotcopy
, Copying MySQL Databases and Tables
8.9 mysqlimport
, Importing Data from Text Files
8.10 mysqlshow
, Showing Databases, Tables, and Columns
8.11 myisampack
, The MySQL Compressed Read-only Table Generator
8.12 mysql_config
, Get compile options for compiling clients
8.13 perror
, Explaining Error Codes
9. MySQL Language Reference
10. Language Structure
10.1 Literal Values
10.1.1 Strings
10.1.2 Numbers
10.1.3 Hexadecimal Values
10.1.4 Boolean Values
10.1.5 NULL
Values
10.2 Database, Table, Index, Column, and Alias Names
10.2.1 Identifier Qualifiers
10.2.2 Identifier Case Sensitivity
10.3 User Variables
10.4 System Variables
10.4.1 Dynamic System Variables
10.4.2 Structured System Variables
10.5 Comment Syntax
10.6 Treatment of Reserved Words in MySQL
11. Column Types
11.1 Numeric Types
11.2 Date and Time Types
11.2.1 Y2K Issues and Date Types
11.2.2 The DATETIME
, DATE
, and TIMESTAMP
Types
11.2.3 The TIME
Type
11.2.4 The YEAR
Type
11.3 String Types
11.3.1 The CHAR
and VARCHAR
Types
11.3.2 The BLOB
and TEXT
Types
11.3.3 The ENUM
Type
11.3.4 The SET
Type
11.4 Choosing the Right Type for a Column
11.5 Using Column Types from Other Database Engines
11.6 Column Type Storage Requirements
12. Functions and Operators
12.1 Non-Type-Specific Operators and Functions
12.1.1 Parentheses
12.1.2 Comparison Operators
12.1.3 Logical Operators
12.1.4 Control Flow Functions
12.2 String Functions
12.2.1 String Comparison Functions
12.2.2 Case-Sensitivity
12.3 Numeric Functions
12.3.1 Arithmetic Operations
12.3.2 Mathematical Functions
12.4 Date and Time Functions
12.5 Cast Functions
12.6 Other Functions
12.6.1 Bit Functions
12.6.2 Encryption Functions
12.6.3 Information Functions
12.6.4 Miscellaneous Functions
12.7 Functions and Modifiers for Use with GROUP BY
Clauses
12.7.1 GROUP BY
Functions
12.7.2 GROUP BY
Modifiers
12.7.3 GROUP BY
with Hidden Fields
13. SQL Statement Syntax
13.1 Data Manipulation Statements
13.1.1 DELETE
Syntax
13.1.2 DO
Syntax
13.1.3 HANDLER
Syntax
13.1.4 INSERT
Syntax
13.1.4.1 INSERT ... SELECT
Syntax
13.1.4.2 INSERT DELAYED
Syntax
13.1.5 LOAD DATA INFILE
Syntax
13.1.6 REPLACE
Syntax
13.1.7 SELECT
Syntax
13.1.7.1 JOIN
Syntax
13.1.7.2 UNION
Syntax
13.1.8 Subquery Syntax
13.1.8.1 The Subquery as Scalar Operand
13.1.8.2 Comparisons Using Subqueries
13.1.8.3 Subqueries with ANY
, IN
, and SOME
13.1.8.4 Subqueries with ALL
13.1.8.5 Correlated Subqueries
13.1.8.6 EXISTS
and NOT EXISTS
13.1.8.7 Row Subqueries
13.1.8.8 Subqueries in the FROM
clause
13.1.8.9 Subquery Errors
13.1.8.10 Optimizing Subqueries
13.1.8.11 Rewriting Subqueries for Earlier MySQL Versions
13.1.9 TRUNCATE
Syntax
13.1.10 UPDATE
Syntax
13.2 Data Definition Statements
13.2.1 ALTER DATABASE
Syntax
13.2.2 ALTER TABLE
Syntax
13.2.3 CREATE DATABASE
Syntax
13.2.4 CREATE INDEX
Syntax
13.2.5 CREATE TABLE
Syntax
13.2.5.1 Silent Column Specification Changes
13.2.6 DROP DATABASE
Syntax
13.2.7 DROP INDEX
Syntax
13.2.8 DROP TABLE
Syntax
13.2.9 RENAME TABLE
Syntax
13.3 Basic MySQL User Utility Statements
13.3.1 DESCRIBE
Syntax (Get Information About Columns)
13.3.2 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.5 Database Administration Statements
13.5.1 Account Management Statements
13.5.1.1 GRANT
and REVOKE
Syntax
13.5.2 Table Maintenance Statements
13.5.2.1 ANALYZE TABLE
Syntax
13.5.2.2 BACKUP TABLE
Syntax
13.5.2.3 CHECK TABLE
Syntax
13.5.2.4 CHECKSUM TABLE
Syntax
13.5.2.5 OPTIMIZE TABLE
Syntax
13.5.2.6 REPAIR TABLE
Syntax
13.5.2.7 RESTORE TABLE
Syntax
13.5.3 SHOW
Syntax
13.5.3.1 Retrieving Information about Database, Tables, Columns, and Indexes
13.5.3.2 SHOW TABLE STATUS
13.5.3.3 SHOW STATUS
13.5.3.4 SHOW VARIABLES
13.5.3.5 SHOW [BDB] LOGS
13.5.3.6 SHOW PROCESSLIST
13.5.3.7 SHOW GRANTS
13.5.3.8 SHOW CREATE TABLE
13.5.3.9 SHOW WARNINGS | ERRORS
13.5.3.10 SHOW TABLE TYPES
13.5.3.11 SHOW PRIVILEGES
13.5.4 Other Administrative Statements
13.5.4.1 CACHE INDEX
Syntax
13.5.4.2 FLUSH
Syntax
13.5.4.3 KILL
Syntax
13.5.4.4 LOAD INDEX INTO CACHE
Syntax
13.5.4.5 PURGE MASTER LOGS
Syntax
13.5.4.6 RESET
Syntax
13.6 Replication Statements
13.6.1 SQL Statements for Controlling Master Servers
13.6.1.1 PURGE MASTER LOGS
13.6.1.2 RESET MASTER
13.6.1.3 SET SQL_LOG_BIN
13.6.1.4 SHOW BINLOG EVENTS
13.6.1.5 SHOW MASTER STATUS
13.6.1.6 SHOW MASTER LOGS
13.6.1.7 SHOW SLAVE HOSTS
13.6.2 SQL Statements for Controlling Slave Servers
13.6.2.1 CHANGE MASTER TO
13.6.2.2 LOAD DATA FROM MASTER
13.6.2.3 LOAD TABLE tbl_name FROM MASTER
13.6.2.4 MASTER_POS_WAIT()
13.6.2.5 RESET SLAVE
13.6.2.6 SET GLOBAL SQL_SLAVE_SKIP_COUNTER
13.6.2.7 SHOW SLAVE STATUS
13.6.2.8 START SLAVE
13.6.2.9 STOP SLAVE
13.7 MySQL Full-text Search
13.7.1 Full-text Restrictions
13.7.2 Fine-tuning MySQL Full-text Search
13.7.3 Full-text Search TODO
13.8 MySQL Query Cache
13.8.1 How the Query Cache Operates
13.8.2 Query Cache Configuration
13.8.3 Query Cache Options in SELECT
13.8.4 Query Cache Status and Maintenance
14. MySQL Table Types
14.1 MyISAM
Tables
14.1.1 Space Needed for Keys
14.1.2 MyISAM
Table Formats
14.1.2.1 Static (Fixed-length) Table Characteristics
14.1.2.2 Dynamic Table Characteristics
14.1.2.3 Compressed Table Characteristics
14.1.3 MyISAM
Table Problems
14.1.3.1 Corrupted MyISAM
Tables
14.1.3.2 Clients is using or hasn't closed the table properly
14.2 MERGE
Tables
14.2.1 MERGE
Table Problems
14.3 HEAP
Tables
14.4 InnoDB
Tables
14.4.1 InnoDB Tables Overview
14.4.2 InnoDB in MySQL Version 3.23
14.4.3 InnoDB Startup Options
14.4.4 Creating InnoDB Tablespace
14.4.4.1 If Something Goes Wrong in Database Creation
14.4.5 Creating InnoDB Tables
14.4.5.1 Converting MyISAM Tables to InnoDB
14.4.5.2 FOREIGN KEY
Constraints
14.4.5.3 Multiple tablespaces - putting each table into its own .ibd file
14.4.6 Adding and Removing InnoDB Data and Log Files
14.4.7 Backing up and Recovering an InnoDB Database
14.4.7.1 Forcing recovery
14.4.7.2 Checkpoints
14.4.8 Moving an InnoDB Database to Another Machine
14.4.9 InnoDB Transaction Model and Locking
14.4.9.1 InnoDB and SET ... TRANSACTION ISOLATION LEVEL ...
14.4.9.2 Consistent Non-Locking Read
14.4.9.3 Locking Reads SELECT ... FOR UPDATE
and SELECT ... LOCK IN SHARE MODE
14.4.9.4 Next-key Locking: Avoiding the Phantom Problem
14.4.9.5 Locks Set by Different SQL Statements in InnoDB
14.4.9.6 Deadlock Detection and Rollback
14.4.9.7 An Example of How the Consistent Read Works in InnoDB
14.4.9.8 How to Cope With Deadlocks
14.4.10 Performance Tuning Tips
14.4.10.1 SHOW INNODB STATUS
and the InnoDB
Monitors
14.4.11 Implementation of Multi-versioning
14.4.12 Table and Index Structures
14.4.12.1 Physical Structure of an Index
14.4.12.2 Insert Buffering
14.4.12.3 Adaptive Hash Indexes
14.4.12.4 Physical Record Structure
14.4.12.5 How an AUTO_INCREMENT
Column Works in InnoDB
14.4.13 File Space Management and Disk I/O
14.4.13.1 Disk I/O
14.4.13.2 File Space Management
14.4.13.3 Defragmenting a Table
14.4.14 Error Handling
14.4.15 Restrictions on InnoDB Tables
14.4.16 InnoDB Change History
14.4.16.1 MySQL/InnoDB-5.0.0, December 24, 2003
14.4.16.2 MySQL/InnoDB-4.0.17, December 17, 2003
14.4.16.3 MySQL/InnoDB-4.1.1, December 4, 2003
14.4.16.4 MySQL/InnoDB-4.0.16, October 22, 2003
14.4.16.5 MySQL/InnoDB-3.23.58, September 15, 2003
14.4.16.6 MySQL/InnoDB-4.0.15, September 10, 2003
14.4.16.7 MySQL/InnoDB-4.0.14, July 22, 2003
14.4.16.8 MySQL/InnoDB-3.23.57, June 20, 2003
14.4.16.9 MySQL/InnoDB-4.0.13, May 20, 2003
14.4.16.10 MySQL/InnoDB-4.1.0, April 3, 2003
14.4.16.11 MySQL/InnoDB-3.23.56, March 17, 2003
14.4.16.12 MySQL/InnoDB-4.0.12, March 18, 2003
14.4.16.13 MySQL/InnoDB-4.0.11, February 25, 2003
14.4.16.14 MySQL/InnoDB-4.0.10, February 4, 2003
14.4.16.15 MySQL/InnoDB-3.23.55, January 24, 2003
14.4.16.16 MySQL/InnoDB-4.0.9, January 14, 2003
14.4.16.17 MySQL/InnoDB-4.0.8, January 7, 2003
14.4.16.18 MySQL/InnoDB-4.0.7, December 26, 2002
14.4.16.19 MySQL/InnoDB-4.0.6, December 19, 2002
14.4.16.20 MySQL/InnoDB-3.23.54, December 12, 2002
14.4.16.21 MySQL/InnoDB-4.0.5, November 18, 2002
14.4.16.22 MySQL/InnoDB-3.23.53, October 9, 2002
14.4.16.23 MySQL/InnoDB-4.0.4, October 2, 2002
14.4.16.24 MySQL/InnoDB-4.0.3, August 28, 2002
14.4.16.25 MySQL/InnoDB-3.23.52, August 16, 2002
14.4.16.26 MySQL/InnoDB-4.0.2, July 10, 2002
14.4.16.27 MySQL/InnoDB-3.23.51, June 12, 2002
14.4.16.28 MySQL/InnoDB-3.23.50, April 23, 2002
14.4.16.29 MySQL/InnoDB-3.23.49, February 17, 2002
14.4.16.30 MySQL/InnoDB-3.23.48, February 9, 2002
14.4.16.31 MySQL/InnoDB-3.23.47, December 28, 2001
14.4.16.32 MySQL/InnoDB-4.0.1, December 23, 2001
14.4.16.33 MySQL/InnoDB-3.23.46, November 30, 2001
14.4.16.34 MySQL/InnoDB-3.23.45, November 23, 2001
14.4.16.35 MySQL/InnoDB-3.23.44, November 2, 2001
14.4.16.36 MySQL/InnoDB-3.23.43, October 4, 2001
14.4.16.37 MySQL/InnoDB-3.23.42, September 9, 2001
14.4.16.38 MySQL/InnoDB-3.23.41, August 13, 2001
14.4.16.39 MySQL/InnoDB-3.23.40, July 16, 2001
14.4.16.40 MySQL/InnoDB-3.23.39, June 13, 2001
14.4.16.41 MySQL/InnoDB-3.23.38, May 12, 2001
14.4.17 InnoDB
Contact Information
14.5 BDB
or BerkeleyDB
Tables
14.5.1 Overview of BDB
Tables
14.5.2 Installing BDB
14.5.3 BDB
Startup Options
14.5.4 Characteristics of BDB
Tables
14.5.5 Things We Need to Fix for BDB
in the Near Future
14.5.6 Operating Systems Supported by BDB
14.5.7 Restrictions on BDB
Tables
14.5.8 Errors That May Occur When Using BDB
Tables
14.6 ISAM
Tables
15. Introduction to MaxDB
15.1 History of MaxDB
15.2 Licensing and Support
15.3 Basic Concepts of MaxDB
15.4 Feature Differences between MaxDB and MySQL
15.5 Interoperability Features between MaxDB and MySQL
15.6 MaxDB-related Links
15.7 Reserved Words in MaxDB
15.8 Functions
15.9 Column Types
16. National Character Sets and Unicode
16.1 Character Sets and Collations in General
16.2 Character Sets and Collations in MySQL
16.3 Determining the Default Character Set and Collation
16.3.1 Server Character Set and Collation
16.3.2 Database Character Set and Collation
16.3.3 Table Character Set and Collation
16.3.4 Column Character Set and Collation
16.3.5 Examples of Character Set and Collation Assignment
16.3.6 Connection Character Sets and Collations
16.3.7 Character String Literal Character Set and Collation
16.3.8 COLLATE
Clause in Various Parts of an SQL Query
16.3.9 COLLATE
Clause Precedence
16.3.10 BINARY
Operator
16.3.11 Some Special Cases Where the Collation Determination is Tricky
16.3.12 Collations Must Be for the Right Character Set
16.3.13 An example of the Effect of Collation
16.4 Operations Affected by Character Set Support
16.4.1 Result Strings
16.4.2 CONVERT()
16.4.3 CAST()
16.4.4 SHOW CHARACTER SET
16.4.5 SHOW COLLATION
16.4.6 SHOW CREATE DATABASE
16.4.7 SHOW FULL COLUMNS
16.5 Unicode Support
16.6 UTF8 for Metadata
16.7 Compatibility with Other DBMSs
16.8 New Character Set Configuration File format
16.9 National Character Set
16.10 Upgrading from MySQL 4.0
16.10.1 4.0 Character Sets and Corresponding 4.1 Character Set/Collation Pairs
16.11 The Character Sets and Collations that MySQL Supports
16.11.1 The Unicode Character Sets
16.11.2 Platform Specific Character Sets
16.11.3 Character Sets for South Europe and Middle East
16.11.4 The Asian Character Sets
16.11.5 The Baltic Character Sets
16.11.6 The Cyrillic Character Sets
16.11.7 The Central European Character Sets
16.11.8 The West European Character Sets
17. Spatial Extensions in MySQL
17.1 Introduction
17.2 The OpenGIS Geometry Model
17.2.1 The Geometry Class Hierarchy
17.2.2 Class Geometry
17.2.3 Class Point
17.2.4 Class Curve
17.2.5 Class LineString
17.2.6 Class Surface
17.2.7 Class Polygon
17.2.8 Class GeometryCollection
17.2.9 Class MultiPoint
17.2.10 Class MultiCurve
17.2.11 Class MultiLineString
17.2.12 Class MultiSurface
17.2.13 Class MultiPolygon
17.3 Supported Spatial Data Formats
17.3.1 Well-Known Text (WKT) Format
17.3.2 Well-Known Binary (WKB) Format
17.4 Creating a Spatially Enabled MySQL Database
17.4.1 MySQL Spatial Datatypes
17.4.2 Creating Spatial Values
17.4.2.1 Creating Geometry Values Using WKT Functions
17.4.2.2 Creating Geometry Values Using WKB Functions
17.4.2.3 Creating Geometry Values Using MySQL-Specific Functions
17.4.3 Creating Spatial Columns
17.4.4 Populating Spatial Columns
17.4.5 Fetching Spatial Data
17.4.5.1 Fetching Spatial Data in Internal Format
17.4.5.2 Fetching Spatial Data in WKT Format
17.4.5.3 Fetching Spatial Data in WKB Format
17.5 Analyzing Spatial Information
17.5.1 Geometry Format Conversion Functions
17.5.2 Geometry
Functions
17.5.2.1 General Geometry Functions
17.5.2.2 Point
Functions
17.5.2.3 LineString
Functions
17.5.2.4 MultiLineString
Functions
17.5.2.5 Polygon
Functions
17.5.2.6 MultiPolygon
Functions
17.5.2.7 GeometryCollection
Functions
17.5.3 Functions That Create New Geometries from Existing Ones
17.5.3.1 Geometry Functions That Produce New Geometries
17.5.3.2 Spatial Operators
17.5.4 Functions for Testing Spatial Relations Between Geometric Objects
17.5.5 Relations on Geometry Minimal Bounding Rectangles (MBRs)
17.5.6 Functions That Test Spatial Relationships Between Geometries
17.6 Optimizing Spatial Analysis
17.6.1 Creating Spatial Indexes
17.6.2 Using a Spatial Index
17.7 MySQL Conformance and Compatibility
17.7.1 GIS Features That Are Not Yet Implemented
18. Stored Procedures and Functions
18.1 Stored Procedure Syntax
18.1.1 Maintaining Stored Procedures
18.1.1.1 CREATE PROCEDURE
and CREATE FUNCTION
18.1.1.2 ALTER PROCEDURE
and ALTER FUNCTION
18.1.1.3 DROP PROCEDURE
and DROP FUNCTION
18.1.1.4 SHOW CREATE PROCEDURE
and SHOW CREATE FUNCTION
18.1.2 SHOW PROCEDURE STATUS
and SHOW FUNCTION STATUS
18.1.3 CALL
18.1.4 BEGIN ... END
Compound Statement
18.1.5 DECLARE
Statement
18.1.6 Variables in Stored Procedures
18.1.6.1 DECLARE
Local Variables
18.1.6.2 Variable SET
Statement
18.1.6.3 SELECT ... INTO
Statement
18.1.7 Conditions and Handlers
18.1.7.1 DECLARE
Conditions
18.1.7.2 DECLARE
Handlers
18.1.8 Cursors
18.1.8.1 Declaring Cursors
18.1.8.2 Cursor OPEN
Statement
18.1.8.3 Cursor FETCH
Statement
18.1.8.4 Cursor CLOSE
Statement
18.1.9 Flow Control Constructs
18.1.9.1 IF
Statement
18.1.9.2 CASE
Statement
18.1.9.3 LOOP
Statement
18.1.9.4 LEAVE
Statement
18.1.9.5 ITERATE
Statement
18.1.9.6 REPEAT
Statement
18.1.9.7 WHILE
Statement
19. MySQL APIs
19.1 MySQL C API
19.1.1 C API Datatypes
19.1.2 C API Function Overview
19.1.3 C API Function Descriptions
19.1.3.1 mysql_affected_rows()
19.1.3.2 mysql_change_user()
19.1.3.3 mysql_character_set_name()
19.1.3.4 mysql_close()
19.1.3.5 mysql_connect()
19.1.3.6 mysql_create_db()
19.1.3.7 mysql_data_seek()
19.1.3.8 mysql_debug()
19.1.3.9 mysql_drop_db()
19.1.3.10 mysql_dump_debug_info()
19.1.3.11 mysql_eof()
19.1.3.12 mysql_errno()
19.1.3.13 mysql_error()
19.1.3.14 mysql_escape_string()
19.1.3.15 mysql_fetch_field()
19.1.3.16 mysql_fetch_fields()
19.1.3.17 mysql_fetch_field_direct()
19.1.3.18 mysql_fetch_lengths()
19.1.3.19 mysql_fetch_row()
19.1.3.20 mysql_field_count()
19.1.3.21 mysql_field_seek()
19.1.3.22 mysql_field_tell()
19.1.3.23 mysql_free_result()
19.1.3.24 mysql_get_client_info()
19.1.3.25 mysql_get_client_version()
19.1.3.26 mysql_get_host_info()
19.1.3.27 mysql_get_proto_info()
19.1.3.28 mysql_get_server_info()
19.1.3.29 mysql_get_server_version()
19.1.3.30 mysql_info()
19.1.3.31 mysql_init()
19.1.3.32 mysql_insert_id()
19.1.3.33 mysql_kill()
19.1.3.34 mysql_list_dbs()
19.1.3.35 mysql_list_fields()
19.1.3.36 mysql_list_processes()
19.1.3.37 mysql_list_tables()
19.1.3.38 mysql_num_fields()
19.1.3.39 mysql_num_rows()
19.1.3.40 mysql_options()
19.1.3.41 mysql_ping()
19.1.3.42 mysql_query()
19.1.3.43 mysql_real_connect()
19.1.3.44 mysql_real_escape_string()
19.1.3.45 mysql_real_query()
19.1.3.46 mysql_reload()
19.1.3.47 mysql_row_seek()
19.1.3.48 mysql_row_tell()
19.1.3.49 mysql_select_db()
19.1.3.50 mysql_set_server_option()
19.1.3.51 mysql_shutdown()
19.1.3.52 mysql_sqlstate()
19.1.3.53 mysql_ssl_set()
19.1.3.54 mysql_stat()
19.1.3.55 mysql_store_result()
19.1.3.56 mysql_thread_id()
19.1.3.57 mysql_use_result()
19.1.3.58 mysql_warning_count()
19.1.3.59 mysql_commit()
19.1.3.60 mysql_rollback()
19.1.3.61 mysql_autocommit()
19.1.3.62 mysql_more_results()
19.1.3.63 mysql_next_result()
19.1.4 C API Prepared Statements
19.1.5 C API Prepared Statement Datatypes
19.1.6 C API Prepared Statement Function Overview
19.1.7 C API Prepared Statement Function Descriptions
19.1.7.1 mysql_bind_param()
19.1.7.2 mysql_bind_result()
19.1.7.3 mysql_execute()
19.1.7.4 mysql_fetch()
19.1.7.5 mysql_fetch_column()
19.1.7.6 mysql_get_metadata()
19.1.7.7 mysql_param_count()
19.1.7.8 mysql_param_result()
19.1.7.9 mysql_prepare()
19.1.7.10 mysql_send_long_data()
19.1.7.11 mysql_stmt_affected_rows()
19.1.7.12 mysql_stmt_close()
19.1.7.13 mysql_stmt_data_seek()
19.1.7.14 mysql_stmt_errno()
19.1.7.15 mysql_stmt_error()
19.1.7.16 mysql_stmt_free_result()
19.1.7.17 mysql_stmt_num_rows()
19.1.7.18 mysql_stmt_reset()
19.1.7.19 mysql_stmt_row_seek()
19.1.7.20 mysql_stmt_row_tell()
19.1.7.21 mysql_stmt_sqlstate()
19.1.7.22 mysql_stmt_store_result()
19.1.8 C API Handling of Multiple Query Execution
19.1.9 C API Handling of Date and Time Values
19.1.10 C API Threaded Function Descriptions
19.1.10.1 my_init()
19.1.10.2 mysql_thread_init()
19.1.10.3 mysql_thread_end()
19.1.10.4 mysql_thread_safe()
19.1.11 C API Embedded Server Function Descriptions
19.1.11.1 mysql_server_init()
19.1.11.2 mysql_server_end()
19.1.12 Common questions and problems when using the C API
19.1.12.1 Why mysql_store_result()
Sometimes Returns NULL
After mysql_query()
Returns Success
19.1.12.2 What Results You Can Get from a Query
19.1.12.3 How to Get the Unique ID for the Last Inserted Row
19.1.12.4 Problems Linking with the C API
19.1.13 Building Client Programs
19.1.14 How to Make a Threaded Client
19.1.15 libmysqld, the Embedded MySQL Server Library
19.1.15.1 Overview of the Embedded MySQL Server Library
19.1.15.2 Compiling Programs with libmysqld
19.1.15.3 Restrictions when using the Embedded MySQL Server
19.1.15.4 Using Option Files with the Embedded Server
19.1.15.5 Things left to do in Embedded Server (TODO)
19.1.15.6 A Simple Embedded Server Example
19.1.15.7 Licensing the Embedded Server
19.2 MySQL ODBC Support
19.2.1 How to Install MyODBC
19.2.2 How to Fill in the Various Fields in the ODBC Administrator Program
19.2.3 Connect parameters for MyODBC
19.2.4 How to Report Problems with MyODBC
19.2.5 Programs Known to Work with MyODBC
19.2.6 How to Get the Value of an AUTO_INCREMENT
Column in ODBC
19.2.7 Reporting Problems with MyODBC
19.3 MySQL Java Connectivity (JDBC)
19.4 MySQL PHP API
19.4.1 Common Problems with MySQL and PHP
19.5 MySQL Perl API
19.6 MySQL C++ API
19.6.1 Borland C++
19.7 MySQL Python API
19.8 MySQL Tcl API
19.9 MySQL Eiffel Wrapper
20. Error Handling in MySQL
20.1 Error Returns
21. Extending MySQL
21.1 MySQL Internals
21.1.1 MySQL Threads
21.1.2 MySQL Test Suite
21.1.2.1 Running the MySQL Test Suite
21.1.2.2 Extending the MySQL Test Suite
21.1.2.3 Reporting Bugs in the MySQL Test Suite
21.2 Adding New Functions to MySQL
21.2.1 CREATE FUNCTION/DROP FUNCTION
Syntax
21.2.2 Adding a New User-defined Function
21.2.2.1 UDF Calling Sequences for simple functions
21.2.2.2 UDF Calling Sequences for aggregate functions
21.2.2.3 Argument Processing
21.2.2.4 Return Values and Error Handling
21.2.2.5 Compiling and Installing User-defined Functions
21.2.3 Adding a New Native Function
21.3 Adding New Procedures to MySQL
21.3.1 Procedure Analyse
21.3.2 Writing a Procedure
A. Problems and Common Errors
A.1 How to Determine What Is Causing Problems
A.2 Common Errors When Using MySQL
A.2.1 Access denied
Error
A.2.2 MySQL server has gone away
Error
A.2.3 Can't connect to [local] MySQL server
Error
A.2.4 Client does not support authentication protocol
error
A.2.5 Host '...' is blocked
Error
A.2.6 Too many connections
Error
A.2.7 Some non-transactional changed tables couldn't be rolled back
Error
A.2.8 Out of memory
Error
A.2.9 Packet too large
Error
A.2.10 Communication Errors / Aborted Connection
A.2.11 The table is full
Error
A.2.12 Can't create/write to file
Error
A.2.13 Commands out of sync
Error in Client
A.2.14 Ignoring user
Error
A.2.15 Table 'xxx' doesn't exist
Error
A.2.16 Can't initialize character set xxx
error
A.2.17 File Not Found
A.3 Installation Related Issues
A.3.1 Problems When Linking with the MySQL Client Library
A.3.2 How to Run MySQL As a Normal User
A.3.3 Problems with File Permissions
A.4 Administration Related Issues
A.4.1 What To Do If MySQL Keeps Crashing
A.4.2 How to Reset a Forgotten Root Password
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 Socket File `/tmp/mysql.sock'
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 alias
A.5.5 Deleting Rows from Related Tables
A.5.6 Solving Problems with No Matching Rows
A.5.7 Problems with Floating-Point Comparison
A.6 Optimizer Related Issues
A.6.1 How to avoid table scan,,,
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
B. Credits
B.1 Developers at MySQL AB
B.2 Contributors to MySQL
B.3 Documenters and translators
B.4 Libraries used by and included with MySQL
B.5 Packages that support MySQL
B.6 Tools that were used to create MySQL
B.7 Supporters of MySQL
C. MySQL Change History
C.1 Changes in release 5.0.x (Development)
C.1.1 Changes in release 5.0.1 (not released yet)
C.1.2 Changes in release 5.0.0 (22 Dec 2003: Alpha)
C.2 Changes in release 4.1.x (Alpha)
C.2.1 Changes in release 4.1.2 (not released yet)
C.2.2 Changes in release 4.1.1 (01 Dec 2003)
C.2.3 Changes in release 4.1.0 (03 Apr 2003: Alpha)
C.3 Changes in release 4.0.x (Production)
C.3.1 Changes in release 4.0.19 (not released yet)
C.3.2 Changes in release 4.0.18 (to be released soon)
C.3.3 Changes in release 4.0.17 (14 Dec 2003)
C.3.4 Changes in release 4.0.16 (17 Oct 2003)
C.3.5 Changes in release 4.0.15 (03 Sep 2003)
C.3.6 Changes in release 4.0.14 (18 Jul 2003)
C.3.7 Changes in release 4.0.13 (16 May 2003)
C.3.8 Changes in release 4.0.12 (15 Mar 2003: Production)
C.3.9 Changes in release 4.0.11 (20 Feb 2003)
C.3.10 Changes in release 4.0.10 (29 Jan 2003)
C.3.11 Changes in release 4.0.9 (09 Jan 2003)
C.3.12 Changes in release 4.0.8 (07 Jan 2003)
C.3.13 Changes in release 4.0.7 (20 Dec 2002)
C.3.14 Changes in release 4.0.6 (14 Dec 2002: Gamma)
C.3.15 Changes in release 4.0.5 (13 Nov 2002)
C.3.16 Changes in release 4.0.4 (29 Sep 2002)
C.3.17 Changes in release 4.0.3 (26 Aug 2002: Beta)
C.3.18 Changes in release 4.0.2 (01 Jul 2002)
C.3.19 Changes in release 4.0.1 (23 Dec 2001)
C.3.20 Changes in release 4.0.0 (Oct 2001: Alpha)
C.4 Changes in release 3.23.x (Recent; still supported)
C.4.1 Changes in release 3.23.59 (not released yet)
C.4.2 Changes in release 3.23.58 (11 Sep 2003)
C.4.3 Changes in release 3.23.57 (06 Jun 2003)
C.4.4 Changes in release 3.23.56 (13 Mar 2003)
C.4.5 Changes in release 3.23.55 (23 Jan 2003)
C.4.6 Changes in release 3.23.54 (05 Dec 2002)
C.4.7 Changes in release 3.23.53 (09 Oct 2002)
C.4.8 Changes in release 3.23.52 (14 Aug 2002)
C.4.9 Changes in release 3.23.51 (31 May 2002)
C.4.10 Changes in release 3.23.50 (21 Apr 2002)
C.4.11 Changes in release 3.23.49
C.4.12 Changes in release 3.23.48 (07 Feb 2002)
C.4.13 Changes in release 3.23.47 (27 Dec 2001)
C.4.14 Changes in release 3.23.46 (29 Nov 2001)
C.4.15 Changes in release 3.23.45 (22 Nov 2001)
C.4.16 Changes in release 3.23.44 (31 Oct 2001)
C.4.17 Changes in release 3.23.43 (04 Oct 2001)
C.4.18 Changes in release 3.23.42 (08 Sep 2001)
C.4.19 Changes in release 3.23.41 (11 Aug 2001)
C.4.20 Changes in release 3.23.40
C.4.21 Changes in release 3.23.39 (12 Jun 2001)
C.4.22 Changes in release 3.23.38 (09 May 2001)
C.4.23 Changes in release 3.23.37 (17 Apr 2001)
C.4.24 Changes in release 3.23.36 (27 Mar 2001)
C.4.25 Changes in release 3.23.35 (15 Mar 2001)
C.4.26 Changes in release 3.23.34a
C.4.27 Changes in release 3.23.34 (10 Mar 2001)
C.4.28 Changes in release 3.23.33 (09 Feb 2001)
C.4.29 Changes in release 3.23.32 (22 Jan 2001: Production)
C.4.30 Changes in release 3.23.31 (17 Jan 2001)
C.4.31 Changes in release 3.23.30 (04 Jan 2001)
C.4.32 Changes in release 3.23.29 (16 Dec 2000)
C.4.33 Changes in release 3.23.28 (22 Nov 2000: Gamma)
C.4.34 Changes in release 3.23.27 (24 Oct 2000)
C.4.35 Changes in release 3.23.26 (18 Oct 2000)
C.4.36 Changes in release 3.23.25 (29 Sep 2000)
C.4.37 Changes in release 3.23.24 (08 Sep 2000)
C.4.38 Changes in release 3.23.23 (01 Sep 2000)
C.4.39 Changes in release 3.23.22 (31 Jul 2000)
C.4.40 Changes in release 3.23.21
C.4.41 Changes in release 3.23.20
C.4.42 Changes in release 3.23.19
C.4.43 Changes in release 3.23.18
C.4.44 Changes in release 3.23.17
C.4.45 Changes in release 3.23.16
C.4.46 Changes in release 3.23.15 (May 2000: Beta)
C.4.47 Changes in release 3.23.14
C.4.48 Changes in release 3.23.13
C.4.49 Changes in release 3.23.12 (07 Mar 2000)
C.4.50 Changes in release 3.23.11
C.4.51 Changes in release 3.23.10
C.4.52 Changes in release 3.23.9
C.4.53 Changes in release 3.23.8 (02 Jan 2000)
C.4.54 Changes in release 3.23.7 (10 Dec 1999)
C.4.55 Changes in release 3.23.6
C.4.56 Changes in release 3.23.5 (20 Oct 1999)
C.4.57 Changes in release 3.23.4 (28 Sep 1999)
C.4.58 Changes in release 3.23.3
C.4.59 Changes in release 3.23.2 (09 Aug 1999)
C.4.60 Changes in release 3.23.1
C.4.61 Changes in release 3.23.0 (05 Aug 1999: Alpha)
C.5 Changes in release 3.22.x (Old; discontinued)
C.5.1 Changes in release 3.22.35
C.5.2 Changes in release 3.22.34
C.5.3 Changes in release 3.22.33
C.5.4 Changes in release 3.22.32 (14 Feb 2000)
C.5.5 Changes in release 3.22.31
C.5.6 Changes in release 3.22.30
C.5.7 Changes in release 3.22.29 (02 Jan 2000)
C.5.8 Changes in release 3.22.28 (20 Oct 1999)
C.5.9 Changes in release 3.22.27
C.5.10 Changes in release 3.22.26 (16 Sep 1999)
C.5.11 Changes in release 3.22.25
C.5.12 Changes in release 3.22.24 (05 Jul 1999)
C.5.13 Changes in release 3.22.23 (08 Jun 1999)
C.5.14 Changes in release 3.22.22 (30 Apr 1999)
C.5.15 Changes in release 3.22.21
C.5.16 Changes in release 3.22.20 (18 Mar 1999)
C.5.17 Changes in release 3.22.19 (Mar 1999: Production)
C.5.18 Changes in release 3.22.18
C.5.19 Changes in release 3.22.17
C.5.20 Changes in release 3.22.16 (Feb 1999: Gamma)
C.5.21 Changes in release 3.22.15
C.5.22 Changes in release 3.22.14
C.5.23 Changes in release 3.22.13
C.5.24 Changes in release 3.22.12
C.5.25 Changes in release 3.22.11
C.5.26 Changes in release 3.22.10
C.5.27 Changes in release 3.22.9
C.5.28 Changes in release 3.22.8
C.5.29 Changes in release 3.22.7 (Sep 1998: Beta)
C.5.30 Changes in release 3.22.6
C.5.31 Changes in release 3.22.5
C.5.32 Changes in release 3.22.4
C.5.33 Changes in release 3.22.3
C.5.34 Changes in release 3.22.2
C.5.35 Changes in release 3.22.1 (Jun 1998: Alpha)
C.5.36 Changes in release 3.22.0
C.6 Changes in release 3.21.x
C.6.1 Changes in release 3.21.33
C.6.2 Changes in release 3.21.32
C.6.3 Changes in release 3.21.31
C.6.4 Changes in release 3.21.30
C.6.5 Changes in release 3.21.29
C.6.6 Changes in release 3.21.28
C.6.7 Changes in release 3.21.27
C.6.8 Changes in release 3.21.26
C.6.9 Changes in release 3.21.25
C.6.10 Changes in release 3.21.24
C.6.11 Changes in release 3.21.23
C.6.12 Changes in release 3.21.22
C.6.13 Changes in release 3.21.21a
C.6.14 Changes in release 3.21.21
C.6.15 Changes in release 3.21.20
C.6.16 Changes in release 3.21.19
C.6.17 Changes in release 3.21.18
C.6.18 Changes in release 3.21.17
C.6.19 Changes in release 3.21.16
C.6.20 Changes in release 3.21.15
C.6.21 Changes in release 3.21.14b
C.6.22 Changes in release 3.21.14a
C.6.23 Changes in release 3.21.13
C.6.24 Changes in release 3.21.12
C.6.25 Changes in release 3.21.11
C.6.26 Changes in release 3.21.10
C.6.27 Changes in release 3.21.9
C.6.28 Changes in release 3.21.8
C.6.29 Changes in release 3.21.7
C.6.30 Changes in release 3.21.6
C.6.31 Changes in release 3.21.5
C.6.32 Changes in release 3.21.4
C.6.33 Changes in release 3.21.3
C.6.34 Changes in release 3.21.2
C.6.35 Changes in release 3.21.0
C.7 Changes in release 3.20.x
C.7.1 Changes in release 3.20.18
C.7.2 Changes in release 3.20.17
C.7.3 Changes in release 3.20.16
C.7.4 Changes in release 3.20.15
C.7.5 Changes in release 3.20.14
C.7.6 Changes in release 3.20.13
C.7.7 Changes in release 3.20.11
C.7.8 Changes in release 3.20.10
C.7.9 Changes in release 3.20.9
C.7.10 Changes in release 3.20.8
C.7.11 Changes in release 3.20.7
C.7.12 Changes in release 3.20.6
C.7.13 Changes in release 3.20.3
C.7.14 Changes in release 3.20.0
C.8 Changes in release 3.19.x
C.8.1 Changes in release 3.19.5
C.8.2 Changes in release 3.19.4
C.8.3 Changes in release 3.19.3
D. Porting to Other Systems
D.1 Debugging a MySQL server
D.1.1 Compiling MYSQL for Debugging
D.1.2 Creating Trace Files
D.1.3 Debugging mysqld under gdb
D.1.4 Using a Stack Trace
D.1.5 Using Log Files to Find Cause of Errors in mysqld
D.1.6 Making a Test Case If You Experience Table Corruption
D.2 Debugging a MySQL client
D.3 The DBUG Package
D.4 Locking methods
D.5 Comments about RTS threads
D.6 Differences between different thread packages
E. Environment Variables
F. MySQL Regular Expressions
G. GNU General Public License
SQL command, type and function index
Concept Index
This document was generated
by rdg (Feb 25 2004)
using texi2html