Contents Listing
1 General Information
1.1 About This Manual
1.1.1 Conventions Used in This Manual
1.2 What Is MySQL?
1.2.1 History of MySQL
1.2.2 The Main Features of MySQL
1.2.3 How Stable Is MySQL?
1.2.4 How Big Can MySQL Tables Be?
1.2.5 Year 2000 Compliance
1.3 What Is 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.1.6 Advertising
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 do you need a 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 4.0 In A Nutshell
1.5.1 Stepwise Rollout
1.5.2 Ready for Immediate Development Use
1.5.3 Embedded MySQL
1.5.4 Other Features Available From MySQL 4.0.0
1.5.5 Future MySQL 4.0 Features
1.5.6 MySQL 4.1, The Following Development Release
1.6 MySQL Information Sources
1.6.1 MySQL Portals
1.6.2 MySQL Mailing Lists
1.6.2.1 The MySQL Mailing Lists
1.6.2.2 Asking Questions or Reporting Bugs
1.6.2.3 How to Report Bugs or Problems
1.6.2.4 Guidelines for Answering Questions on the Mailing List
1.7 How Standards-compatible Is MySQL?
1.7.1 What Standards Does MySQL Follow?
1.7.2 Running MySQL in ANSI Mode
1.7.3 MySQL Extensions to ANSI SQL92
1.7.4 MySQL Differences Compared to ANSI SQL92
1.7.4.1 Sub-SELECTs
1.7.4.2 SELECT INTO TABLE
1.7.4.3 Transactions and Atomic Operations
1.7.4.4 Stored Procedures and Triggers
1.7.4.5 Foreign Keys
1.7.4.6 Views
1.7.4.7 `--' as the Start of a Comment
1.7.5 Known Errors and Design Deficiencies in MySQL
1.8 MySQL and The Future (The TODO)
1.8.1 Things That Should be in 4.0
1.8.2 Things That Should be in 4.1
1.8.3 Things That Must be Done in the Real Near Future
1.8.4 Things That Have to be Done Sometime
1.8.5 Things We Have No Plans to do
1.9 How MySQL Compares to Other Databases
1.9.1 How MySQL Compares to mSQL
1.9.1.1 How to Convert mSQL Tools for MySQL
1.9.1.2 How mSQL and MySQL Client/Server Communications Protocols Differ
1.9.1.3 How mSQL 2.0 SQL Syntax Differs from MySQL
1.9.2 How MySQL Compares to PostgreSQL
1.9.2.1 MySQL and PostgreSQL development strategies
1.9.2.2 Featurewise Comparison of MySQL and PostgreSQL
1.9.2.3 Benchmarking MySQL and PostgreSQL
2 MySQL Installation
2.1 Quick Standard Installation of MySQL
2.1.1 Installing MySQL on Linux
2.1.2 Installing MySQL on Windows
2.1.2.1 Installing the Binaries
2.1.2.2 Preparing the Windows MySQL Environment
2.1.2.3 Starting the Server for the First Time
2.2 General Installation Issues
2.2.1 How to Get MySQL
2.2.2 Operating Systems Supported by MySQL
2.2.3 Which MySQL Version to Use
2.2.4 Installation Layouts
2.2.5 How and When Updates Are Released
2.2.6 MySQL Binaries Compiled by MySQL AB
2.2.7 Installing a MySQL Binary Distribution
2.3 Installing a MySQL Source Distribution
2.3.1 Quick Installation Overview
2.3.2 Applying Patches
2.3.3 Typical configure Options
2.3.4 Installing from the Development Source Tree
2.3.5 Problems Compiling?
2.3.6 MIT-pthreads Notes
2.3.7 Windows Source Distribution
2.4 Post-installation Setup and Testing
2.4.1 Problems Running mysql_install_db
2.4.2 Problems Starting the MySQL Server
2.4.3 Starting and Stopping MySQL Automatically
2.5 Upgrading/Downgrading MySQL
2.5.1 Upgrading From Version 3.23 to Version 4.0
2.5.2 Upgrading From Version 3.22 to Version 3.23
2.5.3 Upgrading from Version 3.21 to Version 3.22
2.5.4 Upgrading from Version 3.20 to Version 3.21
2.5.5 Upgrading to Another Architecture
2.6 Operating System Specific Notes
2.6.1 Linux Notes (All Linux Versions)
2.6.1.1 Linux Notes for Binary Distributions
2.6.1.2 Linux x86 Notes
2.6.1.3 Linux SPARC Notes
2.6.1.4 Linux Alpha Notes
2.6.1.5 Linux PowerPC Notes
2.6.1.6 Linux MIPS Notes
2.6.1.7 Linux IA64 Notes
2.6.2 Windows Notes
2.6.2.1 Starting MySQL on Windows 95, 98 or Me
2.6.2.2 Starting MySQL on Windows NT, 2000 or XP
2.6.2.3 Running MySQL on Windows
2.6.2.4 Connecting to a Remote MySQL from Windows with SSH
2.6.2.5 Splitting Data Across Different Disks on Windows
2.6.2.6 Compiling MySQL Clients on Windows
2.6.2.7 MySQL-Windows Compared to Unix MySQL
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 Mac OS X Notes
2.6.5.1 Mac OS X Public Beta
2.6.5.2 Mac OS X Server
2.6.6 Other Unix Notes
2.6.6.1 HP-UX Notes for Binary Distributions
2.6.6.2 HP-UX Version 10.20 Notes
2.6.6.3 HP-UX Version 11.x Notes
2.6.6.4 IBM-AIX notes
2.6.6.5 SunOS 4 Notes
2.6.6.6 Alpha-DEC-UNIX Notes (Tru64)
2.6.6.7 Alpha-DEC-OSF/1 Notes
2.6.6.8 SGI Irix Notes
2.6.6.9 Caldera (SCO) Notes
2.6.6.10 Caldera (SCO) Unixware Version 7.0 Notes
2.6.7 OS/2 Notes
2.6.8 BeOS Notes
2.6.9 Novell NetWare Notes
2.7 Perl Installation Comments
2.7.1 Installing Perl on Unix
2.7.2 Installing ActiveState Perl on Windows
2.7.3 Installing the MySQL Perl Distribution on Windows
2.7.4 Problems Using the Perl DBI/DBD Interface
3 Tutorial Introduction
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 Examples of Common Queries
3.5.1 The Maximum Value for a Column
3.5.2 The Row Holding the Maximum of a Certain Column
3.5.3 Maximum of Column per Group
3.5.4 The Rows Holding the Group-wise Maximum of a Certain Field
3.5.5 Using user variables
3.5.6 Using Foreign Keys
3.5.7 Searching on Two Keys
3.5.8 Calculating Visits Per Day
3.5.9 Using AUTO_INCREMENT
3.6 Using mysql in Batch Mode
3.7 Queries from Twin Project
3.7.1 Find all Non-distributed Twins
3.7.2 Show a Table on Twin Pair Status
3.8 Using MySQL with Apache
4 Database Administration
4.1 Configuring MySQL
4.1.1 mysqld Command-line Options
4.1.2 `my.cnf' Option Files
4.1.3 Installing Many Servers on the Same Machine
4.1.4 Running Multiple MySQL Servers on the Same Machine
4.2 General Security Issues and the MySQL Access Privilege System
4.2.1 General Security Guidelines
4.2.2 How to Make MySQL Secure Against Crackers
4.2.3 Startup Options for mysqld Concerning Security
4.2.4 Security issues with LOAD DATA LOCAL
4.2.5 What the Privilege System Does
4.2.6 How the Privilege System Works
4.2.7 Privileges Provided by MySQL
4.2.8 Connecting to the MySQL Server
4.2.9 Access Control, Stage 1: Connection Verification
4.2.10 Access Control, Stage 2: Request Verification
4.2.11 Causes of Access denied Errors
4.3 MySQL User Account Management
4.3.1 GRANT and REVOKE Syntax
4.3.2 MySQL User Names and Passwords
4.3.3 When Privilege Changes Take Effect
4.3.4 Setting Up the Initial MySQL Privileges
4.3.5 Adding New Users to MySQL
4.3.6 Limiting user resources
4.3.7 Setting Up Passwords
4.3.8 Keeping Your Password Secure
4.3.9 Using Secure Connections
4.3.9.1 Basics
4.3.9.2 Requirements
4.3.9.3 GRANT Options
4.4 Disaster Prevention and Recovery
4.4.1 Database Backups
4.4.2 BACKUP TABLE Syntax
4.4.3 RESTORE TABLE Syntax
4.4.4 CHECK TABLE Syntax
4.4.5 REPAIR TABLE Syntax
4.4.6 Using myisamchk for Table Maintenance and Crash Recovery
4.4.6.1 myisamchk Invocation Syntax
4.4.6.2 General Options for myisamchk
4.4.6.3 Check Options for myisamchk
4.4.6.4 Repair Options for myisamchk
4.4.6.5 Other Options for myisamchk
4.4.6.6 myisamchk Memory Usage
4.4.6.7 Using myisamchk for Crash Recovery
4.4.6.8 How to Check Tables for Errors
4.4.6.9 How to Repair Tables
4.4.6.10 Table Optimisation
4.4.7 Setting Up a Table Maintenance Regimen
4.4.8 Getting Information About a Table
4.5 Database Administration Language Reference
4.5.1 OPTIMIZE TABLE Syntax
4.5.2 ANALYZE TABLE Syntax
4.5.3 FLUSH Syntax
4.5.4 RESET Syntax
4.5.5 KILL Syntax
4.5.6 SHOW Syntax
4.5.6.1 Retrieving information about Database, Tables, Columns, and Indexes
4.5.6.2 SHOW TABLE STATUS
4.5.6.3 SHOW STATUS
4.5.6.4 SHOW VARIABLES
4.5.6.5 SHOW LOGS
4.5.6.6 SHOW PROCESSLIST
4.5.6.7 SHOW GRANTS
4.5.6.8 SHOW CREATE TABLE
4.6 MySQL Localisation and International Usage
4.6.1 The Character Set Used for Data and Sorting
4.6.1.1 German character set
4.6.2 Non-English Error Messages
4.6.3 Adding a New Character Set
4.6.4 The Character Definition Arrays
4.6.5 String Collating Support
4.6.6 Multi-byte Character Support
4.6.7 Problems With Character Sets
4.7 MySQL Server-Side Scripts and Utilities
4.7.1 Overview of the Server-Side Scripts and Utilities
4.7.2 safe_mysqld, The Wrapper Around mysqld
4.7.3 mysqld_multi, Program for Managing Multiple MySQL Servers
4.7.4 myisampack, The MySQL Compressed Read-only Table Generator
4.7.5 mysqld-max, An Extended mysqld Server
4.8 MySQL Client-Side Scripts and Utilities
4.8.1 Overview of the Client-Side Scripts and Utilities
4.8.2 mysql, The Command-line Tool
4.8.3 mysqladmin, Administrating a MySQL Server
4.8.4 Using mysqlcheck for Table Maintenance and Crash Recovery
4.8.5 mysqldump, Dumping Table Structure and Data
4.8.6 mysqlhotcopy, Copying MySQL Databases and Tables
4.8.7 mysqlimport, Importing Data from Text Files
4.8.8 Showing Databases, Tables, and Columns
4.8.9 perror, Explaining Error Codes
4.8.10 How to Run SQL Commands from a Text File
4.9 The MySQL Log Files
4.9.1 The Error Log
4.9.2 The General Query Log
4.9.3 The Update Log
4.9.4 The Binary Update Log
4.9.5 The Slow Query Log
4.9.6 Log File Maintenance
4.10 Replication in MySQL
4.10.1 Introduction
4.10.2 Replication Implementation Overview
4.10.3 How To Set Up Replication
4.10.4 Replication Features and Known Problems
4.10.5 Replication Options in `my.cnf'
4.10.6 SQL Commands Related to Replication
4.10.7 Replication FAQ
4.10.8 Troubleshooting Replication
5 MySQL Optimisation
5.1 Optimisation Overview
5.1.1 MySQL Design Limitations/Tradeoffs
5.1.2 Portability
5.1.3 What Have We Used MySQL For?
5.1.4 The MySQL Benchmark Suite
5.1.5 Using Your Own Benchmarks
5.2 Optimising SELECTs and Other Queries
5.2.1 EXPLAIN Syntax (Get Information About a SELECT)
5.2.2 Estimating Query Performance
5.2.3 Speed of SELECT Queries
5.2.4 How MySQL Optimises WHERE Clauses
5.2.5 How MySQL Optimises DISTINCT
5.2.6 How MySQL Optimises LEFT JOIN and RIGHT JOIN
5.2.7 How MySQL Optimises ORDER BY
5.2.8 How MySQL Optimises LIMIT
5.2.9 Speed of INSERT Queries
5.2.10 Speed of UPDATE Queries
5.2.11 Speed of DELETE Queries
5.2.12 Other Optimisation Tips
5.3 Locking Issues
5.3.1 How MySQL Locks Tables
5.3.2 Table Locking Issues
5.4 Optimising Database Structure
5.4.1 Design Choices
5.4.2 Get Your Data as Small as Possible
5.4.3 How MySQL Uses Indexes
5.4.4 Column Indexes
5.4.5 Multiple-Column Indexes
5.4.6 Why So Many Open tables?
5.4.7 How MySQL Opens and Closes Tables
5.4.8 Drawbacks to Creating Large Numbers of Tables in the Same Database
5.5 Optimising the MySQL Server
5.5.1 System/Compile Time and Startup Parameter Tuning
5.5.2 Tuning Server Parameters
5.5.3 How Compiling and Linking Affects the Speed of MySQL
5.5.4 How MySQL Uses Memory
5.5.5 How MySQL uses DNS
5.5.6 SET Syntax
5.6 Disk Issues
5.6.1 Using Symbolic Links
5.6.1.1 Using Symbolic Links for Databases
5.6.1.2 Using Symbolic Links for Tables
6 MySQL Language Reference
6.1 Language Structure
6.1.1 Literals: How to Write Strings and Numbers
6.1.1.1 Strings
6.1.1.2 Numbers
6.1.1.3 Hexadecimal Values
6.1.1.4 NULL Values
6.1.2 Database, Table, Index, Column, and Alias Names
6.1.3 Case Sensitivity in Names
6.1.4 User Variables
6.1.5 Comment Syntax
6.1.6 Is MySQL Picky About Reserved Words?
6.2 Column Types
6.2.1 Numeric Types
6.2.2 Date and Time Types
6.2.2.1 Y2K Issues and Date Types
6.2.2.2 The DATETIME, DATE, and TIMESTAMP Types
6.2.2.3 The TIME Type
6.2.2.4 The YEAR Type
6.2.3 String Types
6.2.3.1 The CHAR and VARCHAR Types
6.2.3.2 The BLOB and TEXT Types
6.2.3.3 The ENUM Type
6.2.3.4 The SET Type
6.2.4 Choosing the Right Type for a Column
6.2.5 Using Column Types from Other Database Engines
6.2.6 Column Type Storage Requirements
6.3 Functions for Use in SELECT and WHERE Clauses
6.3.1 Non-Type-Specific Operators and Functions
6.3.1.1 Parentheses
6.3.1.2 Comparison Operators
6.3.1.3 Logical Operators
6.3.1.4 Control Flow Functions
6.3.2 String Functions
6.3.2.1 String Comparison Functions
6.3.2.2 Case Sensitivity
6.3.3 Numeric Functions
6.3.3.1 Arithmetic Operations
6.3.3.2 Mathematical Functions
6.3.4 Date and Time Functions
6.3.5 Cast Functions
6.3.6 Other Functions
6.3.6.1 Bit Functions
6.3.6.2 Miscellaneous Functions
6.3.7 Functions for Use with GROUP BY Clauses
6.4 Data Manipulation: SELECT, INSERT, UPDATE, DELETE
6.4.1 SELECT Syntax
6.4.1.1 JOIN Syntax
6.4.1.2 UNION Syntax
6.4.2 HANDLER Syntax
6.4.3 INSERT Syntax
6.4.3.1 INSERT ... SELECT Syntax
6.4.4 INSERT DELAYED Syntax
6.4.5 UPDATE Syntax
6.4.6 DELETE Syntax
6.4.7 TRUNCATE Syntax
6.4.8 REPLACE Syntax
6.4.9 LOAD DATA INFILE Syntax
6.4.10 DO Syntax
6.5 Data Definition: CREATE, DROP, ALTER
6.5.1 CREATE DATABASE Syntax
6.5.2 DROP DATABASE Syntax
6.5.3 CREATE TABLE Syntax
6.5.3.1 Silent Column Specification Changes
6.5.4 ALTER TABLE Syntax
6.5.5 RENAME TABLE Syntax
6.5.6 DROP TABLE Syntax
6.5.7 CREATE INDEX Syntax
6.5.8 DROP INDEX Syntax
6.6 Basic MySQL User Utility Commands
6.6.1 USE Syntax
6.6.2 DESCRIBE Syntax (Get Information About Columns)
6.7 MySQL Transactional and Locking Commands
6.7.1 BEGIN/COMMIT/ROLLBACK Syntax
6.7.2 LOCK TABLES/UNLOCK TABLES Syntax
6.7.3 SET TRANSACTION Syntax
6.8 MySQL Full-text Search
6.8.1 Full-text Restrictions
6.8.2 Fine-tuning MySQL Full-text Search
6.8.3 Full-text Search TODO
6.9 MySQL Query Cache
6.9.1 How The Query Cache Operates
6.9.2 Query Cache Configuration
6.9.3 Query Cache Options in SELECT
6.9.4 Query Cache Status and Maintenance
7 MySQL Table Types
7.1 MyISAM Tables
7.1.1 Space Needed for Keys
7.1.2 MyISAM Table Formats
7.1.2.1 Static (Fixed-length) Table Characteristics
7.1.2.2 Dynamic Table Characteristics
7.1.2.3 Compressed Table Characteristics
7.1.3 MyISAM table problems.
7.1.3.1 Corrupted MyISAM tables.
7.1.3.2 Clients is using or hasn't closed the table properly
7.2 MERGE Tables
7.2.1 MERGE table problems.
7.3 ISAM Tables
7.4 HEAP Tables
7.5 InnoDB Tables
7.5.1 InnoDB Tables Overview
7.5.2 InnoDB Startup Options
7.5.3 Creating InnoDB Tablespace
7.5.3.1 If Something Goes Wrong in Database Creation
7.5.4 Creating InnoDB Tables
7.5.4.1 Converting MyISAM Tables to InnoDB
7.5.4.2 Foreign Key Constraints
7.5.5 Adding and Removing InnoDB Data and Log Files
7.5.6 Backing up and Recovering an InnoDB Database
7.5.6.1 Checkpoints
7.5.7 Moving an InnoDB Database to Another Machine
7.5.8 InnoDB Transaction Model
7.5.8.1 Consistent Read
7.5.8.2 Locking Reads
7.5.8.3 Next-key Locking: Avoiding the Phantom Problem
7.5.8.4 Locks Set by Different SQL Statements in InnoDB
7.5.8.5 Deadlock Detection and Rollback
7.5.8.6 An Example of How the Consistent Read Works in InnoDB
7.5.9 Performance Tuning Tips
7.5.9.1 The InnoDB Monitor
7.5.10 Implementation of Multi-versioning
7.5.11 Table and Index Structures
7.5.11.1 Physical Structure of an Index
7.5.11.2 Insert Buffering
7.5.11.3 Adaptive Hash Indexes
7.5.11.4 Physical Record Structure
7.5.11.5 How an Auto-increment Column Works in InnoDB
7.5.12 File Space Management and Disk I/O
7.5.12.1 Disk I/O
7.5.12.2 File Space Management
7.5.12.3 Defragmenting a Table
7.5.13 Error Handling
7.5.14 Restrictions on InnoDB Tables
7.5.15 InnoDB Contact Information
7.6 BDB or Berkeley_DB Tables
7.6.1 Overview of BDB Tables
7.6.2 Installing BDB
7.6.3 BDB startup options
7.6.4 Characteristics of BDB tables:
7.6.5 Things we need to fix for BDB in the near future:
7.6.6 Operating systems supported by BDB
7.6.7 Restrictions on BDB Tables
7.6.8 Errors That May Occur When Using BDB Tables
8 MySQL APIs
8.1 MySQL PHP API
8.1.1 Common Problems with MySQL and PHP
8.2 MySQL Perl API
8.2.1 DBI with DBD::mysql
8.2.2 The DBI Interface
8.2.3 More DBI/DBD Information
8.3 MySQL ODBC Support
8.3.1 How To Install MyODBC
8.3.2 How to Fill in the Various Fields in the ODBC Administrator Program
8.3.3 Connect parameters for MyODBC
8.3.4 How to Report Problems with MyODBC
8.3.5 Programs Known to Work with MyODBC
8.3.6 How to Get the Value of an AUTO_INCREMENT Column in ODBC
8.3.7 Reporting Problems with MyODBC
8.4 MySQL C API
8.4.1 C API Datatypes
8.4.2 C API Function Overview
8.4.3 C API Function Descriptions
8.4.3.1 mysql_affected_rows()
8.4.3.6 mysql_change_user()
8.4.3.11 mysql_character_set_name()
8.4.3.15 mysql_close()
8.4.3.19 mysql_connect()
8.4.3.23 mysql_create_db()
8.4.3.28 mysql_data_seek()
8.4.3.32 mysql_debug()
8.4.3.37 mysql_drop_db()
8.4.3.42 mysql_dump_debug_info()
8.4.3.46 mysql_eof()
8.4.3.51 mysql_errno()
8.4.3.55 mysql_error()
8.4.3.59 mysql_escape_string()
8.4.3.60 mysql_fetch_field()
8.4.3.65 mysql_fetch_fields()
8.4.3.70 mysql_fetch_field_direct()
8.4.3.75 mysql_fetch_lengths()
8.4.3.80 mysql_fetch_row()
8.4.3.85 mysql_field_count()
8.4.3.90 mysql_field_seek()
8.4.3.94 mysql_field_tell()
8.4.3.98 mysql_free_result()
8.4.3.102 mysql_get_client_info()
8.4.3.106 mysql_get_host_info()
8.4.3.110 mysql_get_proto_info()
8.4.3.114 mysql_get_server_info()
8.4.3.118 mysql_info()
8.4.3.122 mysql_init()
8.4.3.126 mysql_insert_id()
8.4.3.130 mysql_kill()
8.4.3.134 mysql_list_dbs()
8.4.3.138 mysql_list_fields()
8.4.3.142 mysql_list_processes()
8.4.3.146 mysql_list_tables()
8.4.3.150 mysql_num_fields()
8.4.3.155 mysql_num_rows()
8.4.3.159 mysql_options()
8.4.3.163 mysql_ping()
8.4.3.167 mysql_query()
8.4.3.171 mysql_real_connect()
8.4.3.176 mysql_real_escape_string()
8.4.3.181 mysql_real_query()
8.4.3.185 mysql_reload()
8.4.3.189 mysql_row_seek()
8.4.3.193 mysql_row_tell()
8.4.3.197 mysql_select_db()
8.4.3.201 mysql_shutdown()
8.4.3.205 mysql_stat()
8.4.3.209 mysql_store_result()
8.4.3.213 mysql_thread_id()
8.4.3.217 mysql_use_result()
8.4.4 C Threaded Function Descriptions
8.4.4.1 my_init()
8.4.4.4 mysql_thread_init()
8.4.4.7 mysql_thread_end()
8.4.4.10 mysql_thread_safe()
8.4.5 C Embedded Server Function Descriptions
8.4.5.1 mysql_server_init()
8.4.5.5 mysql_server_end()
8.4.6 Common questions and problems when using the C API
8.4.6.1 Why Is It that After mysql_query() Returns Success, mysql_store_result() Sometimes Returns NULL?
8.4.6.2 What Results Can I Get From a Query?
8.4.6.3 How Can I Get the Unique ID for the Last Inserted Row?
8.4.6.4 Problems Linking with the C API
8.4.7 Building Client Programs
8.4.8 How to Make a Threaded Client
8.4.9 libmysqld, the Embedded MySQL Server Library
8.4.9.1 Overview of the Embedded MySQL Server Library
8.4.9.2 Compiling Programs with libmysqld
8.4.9.3 Restrictions when using the Embedded MySQL Server
8.4.9.4 Using Option Files with the Embedded Server
8.4.9.5 Things left to do in Embedded Server (TODO)
8.4.9.6 A Simple Embedded Server Example
8.4.9.7 Licensing the Embedded Server
8.5 MySQL C++ APIs
8.5.1 Borland C++
8.6 MySQL Java Connectivity (JDBC)
8.7 MySQL Python APIs
8.8 MySQL Tcl APIs
8.9 MySQL Eiffel wrapper
9 Extending MySQL
9.1 MySQL Internals
9.1.1 MySQL Threads
9.1.2 MySQL Test Suite
9.1.2.1 Running the MySQL Test Suite
9.1.2.2 Extending the MySQL Test Suite
9.1.2.3 Reporting Bugs in the MySQL Test Suite
9.2 Adding New Functions to MySQL
9.2.1 CREATE FUNCTION/DROP FUNCTION Syntax
9.2.2 Adding a New User-definable Function
9.2.2.1 UDF Calling Sequences for simple functions
9.2.2.2 UDF Calling Sequences for aggregate functions
9.2.2.3 Argument Processing
9.2.2.4 Return Values and Error Handling
9.2.2.5 Compiling and Installing User-definable Functions
9.2.3 Adding a New Native Function
9.3 Adding New Procedures to MySQL
9.3.1 Procedure Analyse
9.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 Host '...' is blocked Error
A.2.5 Too many connections Error
A.2.6 Some non-transactional changed tables couldn't be rolled back Error
A.2.7 Out of memory Error
A.2.8 Packet too large Error
A.2.9 Communication Errors / Aborted Connection
A.2.10 The table is full Error
A.2.11 Can't create/write to file Error
A.2.12 Commands out of sync Error in Client
A.2.13 Ignoring user Error
A.2.14 Table 'xxx' doesn't exist Error
A.2.15 Can't initialize character set xxx error
A.2.16 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 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 Table Definition Related Issues
A.6.1 Problems with ALTER TABLE.
A.6.2 How To Change the Order of Columns in a Table
A.6.3 TEMPORARY TABLE problems
B Contributed Programs
B.1 APIs
B.2 Clients
B.3 Web Tools
B.4 Performance Benchmarking Tools
B.5 Authentication Tools
B.6 Converters
B.7 Using MySQL with Other Products
B.8 Utilities
B.9 RPMs for Common Tools (Most Are for RedHat 6.1)
B.10 Useful Functions
B.11 Windows Programs
B.12 Uncategorised
C Credits
C.1 Developers at MySQL AB
C.2 Contributors to MySQL
C.3 Supporters to MySQL
D MySQL Change History
D.1 Changes in release 4.0.x (Development; Alpha)
D.1.1 Changes in release 4.0.2
D.1.2 Changes in release 4.0.1 (23 Dec 2001)
D.1.3 Changes in release 4.0.0 (Oct 2001: Alpha)
D.2 Changes in release 3.23.x (Stable)
D.2.1 Changes in release 3.23.51
D.2.2 Changes in release 3.23.50 (21 Apr 2002)
D.2.3 Changes in release 3.23.49
D.2.4 Changes in release 3.23.48 (07 Feb 2002)
D.2.5 Changes in release 3.23.47 (27 Dec 2001)
D.2.6 Changes in release 3.23.46 (29 Nov 2001)
D.2.7 Changes in release 3.23.45 (22 Nov 2001)
D.2.8 Changes in release 3.23.44 (31 Oct 2001)
D.2.9 Changes in release 3.23.43
D.2.10 Changes in release 3.23.42 (08 Sep 2001)
D.2.11 Changes in release 3.23.41 (11 Aug 2001)
D.2.12 Changes in release 3.23.40
D.2.13 Changes in release 3.23.39 (12 Jun 2001)
D.2.14 Changes in release 3.23.38 (09 May 2001)
D.2.15 Changes in release 3.23.37 (17 Apr 2001)
D.2.16 Changes in release 3.23.36 (27 Mar 2001)
D.2.17 Changes in release 3.23.35 (15 Mar 2001)
D.2.18 Changes in release 3.23.34a
D.2.19 Changes in release 3.23.34 (10 Mar 2001)
D.2.20 Changes in release 3.23.33 (09 Feb 2001)
D.2.21 Changes in release 3.23.32 (22 Jan 2001: Stable)
D.2.22 Changes in release 3.23.31 (17 Jan 2001)
D.2.23 Changes in release 3.23.30 (04 Jan 2001)
D.2.24 Changes in release 3.23.29 (16 Dec 2000)
D.2.25 Changes in release 3.23.28 (22 Nov 2000: Gamma)
D.2.26 Changes in release 3.23.27 (24 Oct 2000)
D.2.27 Changes in release 3.23.26
D.2.28 Changes in release 3.23.25
D.2.29 Changes in release 3.23.24 (08 Sep 2000)
D.2.30 Changes in release 3.23.23
D.2.31 Changes in release 3.23.22 (31 Jul 2000)
D.2.32 Changes in release 3.23.21
D.2.33 Changes in release 3.23.20
D.2.34 Changes in release 3.23.19
D.2.35 Changes in release 3.23.18
D.2.36 Changes in release 3.23.17
D.2.37 Changes in release 3.23.16
D.2.38 Changes in release 3.23.15 (May 2000: Beta)
D.2.39 Changes in release 3.23.14
D.2.40 Changes in release 3.23.13
D.2.41 Changes in release 3.23.12
D.2.42 Changes in release 3.23.11
D.2.43 Changes in release 3.23.10
D.2.44 Changes in release 3.23.9
D.2.45 Changes in release 3.23.8
D.2.46 Changes in release 3.23.7
D.2.47 Changes in release 3.23.6
D.2.48 Changes in release 3.23.5
D.2.49 Changes in release 3.23.4
D.2.50 Changes in release 3.23.3
D.2.51 Changes in release 3.23.2
D.2.52 Changes in release 3.23.1
D.2.53 Changes in release 3.23.0 (Sep 1999: Alpha)
D.3 Changes in release 3.22.x (Older; still supported)
D.3.1 Changes in release 3.22.35
D.3.2 Changes in release 3.22.34
D.3.3 Changes in release 3.22.33
D.3.4 Changes in release 3.22.32
D.3.5 Changes in release 3.22.31
D.3.6 Changes in release 3.22.30
D.3.7 Changes in release 3.22.29
D.3.8 Changes in release 3.22.28
D.3.9 Changes in release 3.22.27
D.3.10 Changes in release 3.22.26
D.3.11 Changes in release 3.22.25
D.3.12 Changes in release 3.22.24
D.3.13 Changes in release 3.22.23
D.3.14 Changes in release 3.22.22
D.3.15 Changes in release 3.22.21
D.3.16 Changes in release 3.22.20
D.3.17 Changes in release 3.22.19 (Mar 1999: Stable)
D.3.18 Changes in release 3.22.18
D.3.19 Changes in release 3.22.17
D.3.20 Changes in release 3.22.16 (Feb 1999: Gamma)
D.3.21 Changes in release 3.22.15
D.3.22 Changes in release 3.22.14
D.3.23 Changes in release 3.22.13
D.3.24 Changes in release 3.22.12
D.3.25 Changes in release 3.22.11
D.3.26 Changes in release 3.22.10
D.3.27 Changes in release 3.22.9
D.3.28 Changes in release 3.22.8
D.3.29 Changes in release 3.22.7 (Sep 1998: Beta)
D.3.30 Changes in release 3.22.6
D.3.31 Changes in release 3.22.5
D.3.32 Changes in release 3.22.4
D.3.33 Changes in release 3.22.3
D.3.34 Changes in release 3.22.2
D.3.35 Changes in release 3.22.1 (Jun 1998: Alpha)
D.3.36 Changes in release 3.22.0
D.4 Changes in release 3.21.x
D.4.1 Changes in release 3.21.33
D.4.2 Changes in release 3.21.32
D.4.3 Changes in release 3.21.31
D.4.4 Changes in release 3.21.30
D.4.5 Changes in release 3.21.29
D.4.6 Changes in release 3.21.28
D.4.7 Changes in release 3.21.27
D.4.8 Changes in release 3.21.26
D.4.9 Changes in release 3.21.25
D.4.10 Changes in release 3.21.24
D.4.11 Changes in release 3.21.23
D.4.12 Changes in release 3.21.22
D.4.13 Changes in release 3.21.21a
D.4.14 Changes in release 3.21.21
D.4.15 Changes in release 3.21.20
D.4.16 Changes in release 3.21.19
D.4.17 Changes in release 3.21.18
D.4.18 Changes in release 3.21.17
D.4.19 Changes in release 3.21.16
D.4.20 Changes in release 3.21.15
D.4.21 Changes in release 3.21.14b
D.4.22 Changes in release 3.21.14a
D.4.23 Changes in release 3.21.13
D.4.24 Changes in release 3.21.12
D.4.25 Changes in release 3.21.11
D.4.26 Changes in release 3.21.10
D.4.27 Changes in release 3.21.9
D.4.28 Changes in release 3.21.8
D.4.29 Changes in release 3.21.7
D.4.30 Changes in release 3.21.6
D.4.31 Changes in release 3.21.5
D.4.32 Changes in release 3.21.4
D.4.33 Changes in release 3.21.3
D.4.34 Changes in release 3.21.2
D.4.35 Changes in release 3.21.0
D.5 Changes in release 3.20.x
D.5.1 Changes in release 3.20.18
D.5.2 Changes in release 3.20.17
D.5.3 Changes in release 3.20.16
D.5.4 Changes in release 3.20.15
D.5.5 Changes in release 3.20.14
D.5.6 Changes in release 3.20.13
D.5.7 Changes in release 3.20.11
D.5.8 Changes in release 3.20.10
D.5.9 Changes in release 3.20.9
D.5.10 Changes in release 3.20.8
D.5.11 Changes in release 3.20.7
D.5.12 Changes in release 3.20.6
D.5.13 Changes in release 3.20.3
D.5.14 Changes in release 3.20.0
D.6 Changes in release 3.19.x
D.6.1 Changes in release 3.19.5
D.6.2 Changes in release 3.19.4
D.6.3 Changes in release 3.19.3
E Porting to Other Systems
E.1 Debugging a MySQL server
E.1.1 Compiling MYSQL for Debugging
E.1.2 Creating Trace Files
E.1.3 Debugging mysqld under gdb
E.1.4 Using a Stack Trace
E.1.5 Using Log Files to Find Cause of Errors in mysqld
E.1.6 Making a Test Case When You Experience Table Corruption
E.2 Debugging a MySQL client
E.3 The DBUG Package
E.4 Locking methods
E.5 Comments about RTS threads
E.6 Differences between different thread packages
F Environment Variables
G MySQL Regular Expressions
H GNU General Public License
H.1 Preamble
H.2 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
H.3 How to Apply These Terms to Your New Programs
I GNU Lesser General Public License
I.1 Preamble
I.2 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
I.3 How to Apply These Terms to Your New Libraries
SQL command, type and function index
Concept Index
|