List:Commits« Previous MessageNext Message »
From:jon Date:December 7 2008 1:48pm
Subject:svn commit - mysqldoc@docsrva: r12826 - in trunk: mysqlqb refman-5.0 refman-common topic-guides/topics-5.0 topic-guides/topics-common
View as plain text  
Author: jstephens
Date: 2008-12-07 14:48:24 +0100 (Sun, 07 Dec 2008)
New Revision: 12826

Log:

Divide 5.0 Server Administration chapter file

Rebuild dependencies

Reformat



Added:
   trunk/refman-5.0/dba-log-files.xml
   trunk/refman-5.0/dba-multiple-servers.xml
   trunk/refman-5.0/dba-mysqld-server-core.xml
   trunk/refman-5.0/dba-privilege-system.xml
   trunk/refman-5.0/dba-security-core.xml
   trunk/refman-5.0/dba-user-management-core.xml
Removed:
   trunk/refman-5.0/dba-core.xml
Renamed/Moved:
   trunk/refman-5.0/dba.xml (from rev 12825, trunk/refman-5.0/dba-core.xml)
Modified:
   trunk/mysqlqb/Makefile.depends
   trunk/refman-5.0/Makefile.depends
   trunk/refman-5.0/manual.xml
   trunk/refman-common/Makefile.depends
   trunk/topic-guides/topics-5.0/Makefile.depends
   trunk/topic-guides/topics-common/Makefile.depends


Modified: trunk/mysqlqb/Makefile.depends
===================================================================
--- trunk/mysqlqb/Makefile.depends	2008-12-07 12:17:02 UTC (rev 12825)
+++ trunk/mysqlqb/Makefile.depends	2008-12-07 13:48:24 UTC (rev 12826)
Changed blocks: 1, Lines Added: 6, Lines Deleted: 1; 880 bytes

@@ -27,7 +27,12 @@
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/information-schema.idmap \


Modified: trunk/refman-5.0/Makefile.depends
===================================================================
--- trunk/refman-5.0/Makefile.depends	2008-12-07 12:17:02 UTC (rev 12825)
+++ trunk/refman-5.0/Makefile.depends	2008-12-07 13:48:24 UTC (rev 12826)
Changed blocks: 58, Lines Added: 375, Lines Deleted: 95; 43698 bytes

@@ -10,7 +10,7 @@
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/apis-libmysqld.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -59,7 +59,8 @@
 backup_SOURCES = backup.xml $(backup_INCLUDES)
 backup_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/mysql-cluster-backup.idmap \
 	../refman-5.0/metadata/mysql-cluster.idmap \

@@ -221,7 +222,9 @@
 	../refman-5.0/metadata/apis-libmysqld.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \

@@ -260,7 +263,7 @@
 data_types_SOURCES = data-types.xml $(data_types_INCLUDES)
 data_types_IDMAPS = \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -282,19 +285,161 @@
 data-types-manprepped.xml: $(data_types_SOURCES) $(data_types_IDMAPS)
 data-types-remprepped.xml: $(data_types_SOURCES) $(data_types_IDMAPS)
 
-dba_core_INCLUDES =
-dba_core_IMAGES =
-dba_core_SOURCES = dba-core.xml $(dba_core_INCLUDES)
-dba_core_IDMAPS =
-dba-core.validpure: $(dba_core_SOURCES)
-dba-core.titles: $(dba_core_SOURCES)
-dba-core.useless: $(dba_core_SOURCES)
-dba-core.valid: $(dba_core_SOURCES) $(dba_core_IDMAPS)
-dba-core.validwarn: $(dba_core_SOURCES) $(dba_core_IDMAPS)
-dba-core-prepped.xml: $(dba_core_SOURCES) $(dba_core_IDMAPS)
-dba-core-manprepped.xml: $(dba_core_SOURCES) $(dba_core_IDMAPS)
-dba-core-remprepped.xml: $(dba_core_SOURCES) $(dba_core_IDMAPS)
+dba_log_files_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	versions.ent
+dba_log_files_IMAGES =
+dba_log_files_SOURCES = dba-log-files.xml $(dba_log_files_INCLUDES)
+dba_log_files_IDMAPS = \
+	../refman-5.0/metadata/backup.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/errors-problems.idmap \
+	../refman-5.0/metadata/programs-admin-util-core.idmap \
+	../refman-5.0/metadata/programs-client-core.idmap \
+	../refman-5.0/metadata/replication-implementation.idmap \
+	../refman-5.0/metadata/replication-notes.idmap \
+	../refman-5.0/metadata/replication-options-core.idmap \
+	../refman-5.0/metadata/replication.idmap \
+	../refman-5.0/metadata/sql-syntax-replication.idmap \
+	../refman-5.0/metadata/sql-syntax-server-administration.idmap \
+	../refman-5.0/metadata/stored-programs-views.idmap
+dba-log-files.validpure: $(dba_log_files_SOURCES)
+dba-log-files.titles: $(dba_log_files_SOURCES)
+dba-log-files.useless: $(dba_log_files_SOURCES)
+dba-log-files.valid: $(dba_log_files_SOURCES) $(dba_log_files_IDMAPS)
+dba-log-files.validwarn: $(dba_log_files_SOURCES) $(dba_log_files_IDMAPS)
+dba-log-files-prepped.xml: $(dba_log_files_SOURCES) $(dba_log_files_IDMAPS)
+dba-log-files-manprepped.xml: $(dba_log_files_SOURCES) $(dba_log_files_IDMAPS)
+dba-log-files-remprepped.xml: $(dba_log_files_SOURCES) $(dba_log_files_IDMAPS)
 
+dba_multiple_servers_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	versions.ent
+dba_multiple_servers_IMAGES =
+dba_multiple_servers_SOURCES = dba-multiple-servers.xml $(dba_multiple_servers_INCLUDES)
+dba_multiple_servers_IDMAPS = \
+	../refman-5.0/metadata/apis-c.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/installing-core.idmap \
+	../refman-5.0/metadata/programs-server-core.idmap \
+	../refman-5.0/metadata/programs-using.idmap \
+	../refman-common/metadata/apis-perl.idmap
+dba-multiple-servers.validpure: $(dba_multiple_servers_SOURCES)
+dba-multiple-servers.titles: $(dba_multiple_servers_SOURCES)
+dba-multiple-servers.useless: $(dba_multiple_servers_SOURCES)
+dba-multiple-servers.valid: $(dba_multiple_servers_SOURCES) $(dba_multiple_servers_IDMAPS)
+dba-multiple-servers.validwarn: $(dba_multiple_servers_SOURCES) $(dba_multiple_servers_IDMAPS)
+dba-multiple-servers-prepped.xml: $(dba_multiple_servers_SOURCES) $(dba_multiple_servers_IDMAPS)
+dba-multiple-servers-manprepped.xml: $(dba_multiple_servers_SOURCES) $(dba_multiple_servers_IDMAPS)
+dba-multiple-servers-remprepped.xml: $(dba_multiple_servers_SOURCES) $(dba_multiple_servers_IDMAPS)
+
+dba_mysqld_server_core_INCLUDES =
+dba_mysqld_server_core_IMAGES =
+dba_mysqld_server_core_SOURCES = dba-mysqld-server-core.xml $(dba_mysqld_server_core_INCLUDES)
+dba_mysqld_server_core_IDMAPS =
+dba-mysqld-server-core.validpure: $(dba_mysqld_server_core_SOURCES)
+dba-mysqld-server-core.titles: $(dba_mysqld_server_core_SOURCES)
+dba-mysqld-server-core.useless: $(dba_mysqld_server_core_SOURCES)
+dba-mysqld-server-core.valid: $(dba_mysqld_server_core_SOURCES) $(dba_mysqld_server_core_IDMAPS)
+dba-mysqld-server-core.validwarn: $(dba_mysqld_server_core_SOURCES) $(dba_mysqld_server_core_IDMAPS)
+dba-mysqld-server-core-prepped.xml: $(dba_mysqld_server_core_SOURCES) $(dba_mysqld_server_core_IDMAPS)
+dba-mysqld-server-core-manprepped.xml: $(dba_mysqld_server_core_SOURCES) $(dba_mysqld_server_core_IDMAPS)
+dba-mysqld-server-core-remprepped.xml: $(dba_mysqld_server_core_SOURCES) $(dba_mysqld_server_core_IDMAPS)
+
+dba_privilege_system_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	versions.ent
+dba_privilege_system_IMAGES =
+dba_privilege_system_SOURCES = dba-privilege-system.xml $(dba_privilege_system_INCLUDES)
+dba_privilege_system_IDMAPS = \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/errors-problems.idmap \
+	../refman-5.0/metadata/functions-core.idmap \
+	../refman-5.0/metadata/installing-core.idmap \
+	../refman-5.0/metadata/optimization.idmap \
+	../refman-5.0/metadata/programs-installation.idmap \
+	../refman-5.0/metadata/programs-using.idmap \
+	../refman-5.0/metadata/sql-syntax-server-administration.idmap \
+	../refman-5.0/metadata/stored-programs-views.idmap \
+	../refman-common/metadata/apis-php.idmap \
+	../refman-common/metadata/bug-reports.idmap
+dba-privilege-system.validpure: $(dba_privilege_system_SOURCES)
+dba-privilege-system.titles: $(dba_privilege_system_SOURCES)
+dba-privilege-system.useless: $(dba_privilege_system_SOURCES)
+dba-privilege-system.valid: $(dba_privilege_system_SOURCES) $(dba_privilege_system_IDMAPS)
+dba-privilege-system.validwarn: $(dba_privilege_system_SOURCES) $(dba_privilege_system_IDMAPS)
+dba-privilege-system-prepped.xml: $(dba_privilege_system_SOURCES) $(dba_privilege_system_IDMAPS)
+dba-privilege-system-manprepped.xml: $(dba_privilege_system_SOURCES) $(dba_privilege_system_IDMAPS)
+dba-privilege-system-remprepped.xml: $(dba_privilege_system_SOURCES) $(dba_privilege_system_IDMAPS)
+
+dba_security_core_INCLUDES =
+dba_security_core_IMAGES =
+dba_security_core_SOURCES = dba-security-core.xml $(dba_security_core_INCLUDES)
+dba_security_core_IDMAPS =
+dba-security-core.validpure: $(dba_security_core_SOURCES)
+dba-security-core.titles: $(dba_security_core_SOURCES)
+dba-security-core.useless: $(dba_security_core_SOURCES)
+dba-security-core.valid: $(dba_security_core_SOURCES) $(dba_security_core_IDMAPS)
+dba-security-core.validwarn: $(dba_security_core_SOURCES) $(dba_security_core_IDMAPS)
+dba-security-core-prepped.xml: $(dba_security_core_SOURCES) $(dba_security_core_IDMAPS)
+dba-security-core-manprepped.xml: $(dba_security_core_SOURCES) $(dba_security_core_IDMAPS)
+dba-security-core-remprepped.xml: $(dba_security_core_SOURCES) $(dba_security_core_IDMAPS)
+
+dba_user_management_core_INCLUDES =
+dba_user_management_core_IMAGES =
+dba_user_management_core_SOURCES = dba-user-management-core.xml $(dba_user_management_core_INCLUDES)
+dba_user_management_core_IDMAPS =
+dba-user-management-core.validpure: $(dba_user_management_core_SOURCES)
+dba-user-management-core.titles: $(dba_user_management_core_SOURCES)
+dba-user-management-core.useless: $(dba_user_management_core_SOURCES)
+dba-user-management-core.valid: $(dba_user_management_core_SOURCES) $(dba_user_management_core_IDMAPS)
+dba-user-management-core.validwarn: $(dba_user_management_core_SOURCES) $(dba_user_management_core_IDMAPS)
+dba-user-management-core-prepped.xml: $(dba_user_management_core_SOURCES) $(dba_user_management_core_IDMAPS)
+dba-user-management-core-manprepped.xml: $(dba_user_management_core_SOURCES) $(dba_user_management_core_IDMAPS)
+dba-user-management-core-remprepped.xml: $(dba_user_management_core_SOURCES) $(dba_user_management_core_IDMAPS)
+
+dba_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../dynamic-docs/command-optvars/mysqld.xml \
+	../dynamic-docs/metadata-titles.en.xml \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	dba-log-files.xml \
+	dba-multiple-servers.xml \
+	dba-mysqld-server-core.xml \
+	dba-privilege-system.xml \
+	dba-security-core.xml \
+	dba-user-management-core.xml \
+	dynxml-local-dba-mysqld-server.xml \
+	dynxml-local-dba-security.xml \
+	dynxml-local-dba-user-management.xml \
+	versions.ent
+dba_IMAGES =
+dba_SOURCES = dba.xml $(dba_INCLUDES)
+dba_IDMAPS =
+dba.validpure: $(dba_SOURCES)
+dba.titles: $(dba_SOURCES)
+dba.useless: $(dba_SOURCES)
+dba.valid: $(dba_SOURCES) $(dba_IDMAPS)
+dba.validwarn: $(dba_SOURCES) $(dba_IDMAPS)
+dba-prepped.xml: $(dba_SOURCES) $(dba_IDMAPS)
+dba-manprepped.xml: $(dba_SOURCES) $(dba_IDMAPS)
+dba-remprepped.xml: $(dba_SOURCES) $(dba_IDMAPS)
+
 dynxml_common_news_cj_INCLUDES = \
 	../common/fixedchars.ent \
 	../common/phrases.ent \

@@ -423,22 +568,24 @@
 dynxml-common-news-vstudioplugin-manprepped.xml: $(dynxml_common_news_vstudioplugin_SOURCES) $(dynxml_common_news_vstudioplugin_IDMAPS)
 dynxml-common-news-vstudioplugin-remprepped.xml: $(dynxml_common_news_vstudioplugin_SOURCES) $(dynxml_common_news_vstudioplugin_IDMAPS)
 dynxml-common-news-vstudioplugin.xml: $(dynxml_common_news_vstudioplugin_INCLUDES)
-dynxml_local_dba_INCLUDES = \
+dynxml_local_dba_mysqld_server_INCLUDES = \
 	../common/fixedchars.ent \
 	../common/phrases.ent \
 	../dynamic-docs/command-optvars/mysqld.xml \
 	../dynamic-docs/metadata-titles.en.xml \
 	../refman-common/urls.ent \
 	all-entities.ent \
-	dba-core.xml \
+	dba-mysqld-server-core.xml \
 	versions.ent
-dynxml_local_dba_IMAGES =
-dynxml_local_dba_SOURCES = dynxml-local-dba.xml $(dynxml_local_dba_INCLUDES)
-dynxml_local_dba_IDMAPS = \
-	../refman-5.0/metadata/apis-c.idmap \
-	../refman-5.0/metadata/backup.idmap \
+dynxml_local_dba_mysqld_server_IMAGES =
+dynxml_local_dba_mysqld_server_SOURCES = dynxml-local-dba-mysqld-server.xml $(dynxml_local_dba_mysqld_server_INCLUDES)
+dynxml_local_dba_mysqld_server_IDMAPS = \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/faqs.idmap \

@@ -449,36 +596,89 @@
 	../refman-5.0/metadata/language-structure-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-optvar-core.idmap \
 	../refman-5.0/metadata/optimization.idmap \
-	../refman-5.0/metadata/programs-admin-util-core.idmap \
-	../refman-5.0/metadata/programs-client-core.idmap \
-	../refman-5.0/metadata/programs-installation.idmap \
 	../refman-5.0/metadata/programs-server-core.idmap \
 	../refman-5.0/metadata/programs-using.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \
-	../refman-5.0/metadata/replication-notes.idmap \
 	../refman-5.0/metadata/replication-options-core.idmap \
-	../refman-5.0/metadata/replication.idmap \
 	../refman-5.0/metadata/se-bdb-core.idmap \
 	../refman-5.0/metadata/se-innodb-core.idmap \
 	../refman-5.0/metadata/se-myisam-core.idmap \
-	../refman-5.0/metadata/sql-syntax-replication.idmap \
 	../refman-5.0/metadata/sql-syntax-server-administration.idmap \
 	../refman-5.0/metadata/sql-syntax-transactions.idmap \
 	../refman-5.0/metadata/sql-syntax-utility.idmap \
 	../refman-5.0/metadata/storage-engines.idmap \
-	../refman-5.0/metadata/stored-programs-views.idmap \
-	../refman-common/metadata/apis-perl.idmap \
-	../refman-common/metadata/apis-php.idmap \
-	../refman-common/metadata/bug-reports.idmap
-dynxml-local-dba.validpure: $(dynxml_local_dba_SOURCES)
-dynxml-local-dba.titles: $(dynxml_local_dba_SOURCES)
-dynxml-local-dba.useless: $(dynxml_local_dba_SOURCES)
-dynxml-local-dba.valid: $(dynxml_local_dba_SOURCES) $(dynxml_local_dba_IDMAPS)
-dynxml-local-dba.validwarn: $(dynxml_local_dba_SOURCES) $(dynxml_local_dba_IDMAPS)
-dynxml-local-dba-prepped.xml: $(dynxml_local_dba_SOURCES) $(dynxml_local_dba_IDMAPS)
-dynxml-local-dba-manprepped.xml: $(dynxml_local_dba_SOURCES) $(dynxml_local_dba_IDMAPS)
-dynxml-local-dba-remprepped.xml: $(dynxml_local_dba_SOURCES) $(dynxml_local_dba_IDMAPS)
-dynxml-local-dba.xml: $(dynxml_local_dba_INCLUDES)
+	../refman-5.0/metadata/stored-programs-views.idmap
+dynxml-local-dba-mysqld-server.validpure: $(dynxml_local_dba_mysqld_server_SOURCES)
+dynxml-local-dba-mysqld-server.titles: $(dynxml_local_dba_mysqld_server_SOURCES)
+dynxml-local-dba-mysqld-server.useless: $(dynxml_local_dba_mysqld_server_SOURCES)
+dynxml-local-dba-mysqld-server.valid: $(dynxml_local_dba_mysqld_server_SOURCES) $(dynxml_local_dba_mysqld_server_IDMAPS)
+dynxml-local-dba-mysqld-server.validwarn: $(dynxml_local_dba_mysqld_server_SOURCES) $(dynxml_local_dba_mysqld_server_IDMAPS)
+dynxml-local-dba-mysqld-server-prepped.xml: $(dynxml_local_dba_mysqld_server_SOURCES) $(dynxml_local_dba_mysqld_server_IDMAPS)
+dynxml-local-dba-mysqld-server-manprepped.xml: $(dynxml_local_dba_mysqld_server_SOURCES) $(dynxml_local_dba_mysqld_server_IDMAPS)
+dynxml-local-dba-mysqld-server-remprepped.xml: $(dynxml_local_dba_mysqld_server_SOURCES) $(dynxml_local_dba_mysqld_server_IDMAPS)
+dynxml-local-dba-mysqld-server.xml: $(dynxml_local_dba_mysqld_server_INCLUDES)
+dynxml_local_dba_security_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../dynamic-docs/command-optvars/mysqld.xml \
+	../dynamic-docs/metadata-titles.en.xml \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	dba-security-core.xml \
+	versions.ent
+dynxml_local_dba_security_IMAGES =
+dynxml_local_dba_security_SOURCES = dynxml-local-dba-security.xml $(dynxml_local_dba_security_INCLUDES)
+dynxml_local_dba_security_IDMAPS = \
+	../refman-5.0/metadata/apis-c.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/extending-mysql.idmap \
+	../refman-5.0/metadata/faqs.idmap \
+	../refman-5.0/metadata/installing-core.idmap \
+	../refman-5.0/metadata/optimization.idmap \
+	../refman-5.0/metadata/sql-syntax-server-administration.idmap
+dynxml-local-dba-security.validpure: $(dynxml_local_dba_security_SOURCES)
+dynxml-local-dba-security.titles: $(dynxml_local_dba_security_SOURCES)
+dynxml-local-dba-security.useless: $(dynxml_local_dba_security_SOURCES)
+dynxml-local-dba-security.valid: $(dynxml_local_dba_security_SOURCES) $(dynxml_local_dba_security_IDMAPS)
+dynxml-local-dba-security.validwarn: $(dynxml_local_dba_security_SOURCES) $(dynxml_local_dba_security_IDMAPS)
+dynxml-local-dba-security-prepped.xml: $(dynxml_local_dba_security_SOURCES) $(dynxml_local_dba_security_IDMAPS)
+dynxml-local-dba-security-manprepped.xml: $(dynxml_local_dba_security_SOURCES) $(dynxml_local_dba_security_IDMAPS)
+dynxml-local-dba-security-remprepped.xml: $(dynxml_local_dba_security_SOURCES) $(dynxml_local_dba_security_IDMAPS)
+dynxml-local-dba-security.xml: $(dynxml_local_dba_security_INCLUDES)
+dynxml_local_dba_user_management_INCLUDES = \
+	../common/fixedchars.ent \
+	../common/phrases.ent \
+	../dynamic-docs/command-optvars/mysqld.xml \
+	../dynamic-docs/metadata-titles.en.xml \
+	../refman-common/urls.ent \
+	all-entities.ent \
+	dba-user-management-core.xml \
+	versions.ent
+dynxml_local_dba_user_management_IMAGES =
+dynxml_local_dba_user_management_SOURCES = dynxml-local-dba-user-management.xml $(dynxml_local_dba_user_management_INCLUDES)
+dynxml_local_dba_user_management_IDMAPS = \
+	../refman-5.0/metadata/apis-c.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/functions-core.idmap \
+	../refman-5.0/metadata/installing-core.idmap \
+	../refman-5.0/metadata/programs-installation.idmap \
+	../refman-5.0/metadata/programs-using.idmap \
+	../refman-5.0/metadata/replication-options-core.idmap \
+	../refman-5.0/metadata/sql-syntax-server-administration.idmap
+dynxml-local-dba-user-management.validpure: $(dynxml_local_dba_user_management_SOURCES)
+dynxml-local-dba-user-management.titles: $(dynxml_local_dba_user_management_SOURCES)
+dynxml-local-dba-user-management.useless: $(dynxml_local_dba_user_management_SOURCES)
+dynxml-local-dba-user-management.valid: $(dynxml_local_dba_user_management_SOURCES) $(dynxml_local_dba_user_management_IDMAPS)
+dynxml-local-dba-user-management.validwarn: $(dynxml_local_dba_user_management_SOURCES) $(dynxml_local_dba_user_management_IDMAPS)
+dynxml-local-dba-user-management-prepped.xml: $(dynxml_local_dba_user_management_SOURCES) $(dynxml_local_dba_user_management_IDMAPS)
+dynxml-local-dba-user-management-manprepped.xml: $(dynxml_local_dba_user_management_SOURCES) $(dynxml_local_dba_user_management_IDMAPS)
+dynxml-local-dba-user-management-remprepped.xml: $(dynxml_local_dba_user_management_SOURCES) $(dynxml_local_dba_user_management_IDMAPS)
+dynxml-local-dba-user-management.xml: $(dynxml_local_dba_user_management_INCLUDES)
 dynxml_local_functions_INCLUDES = \
 	../common/fixedchars.ent \
 	../common/phrases.ent \

@@ -495,7 +695,9 @@
 dynxml_local_functions_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -565,7 +767,12 @@
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/faqs.idmap \

@@ -681,7 +888,7 @@
 dynxml_local_language_structure_IDMAPS = \
 	../quick-guides/metadata/reservedwords-core.idmap \
 	../refman-5.0/metadata/apis-c.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -711,7 +918,7 @@
 dynxml_local_mysql_cluster_optvar_IMAGES =
 dynxml_local_mysql_cluster_optvar_SOURCES = dynxml-local-mysql-cluster-optvar.xml $(dynxml_local_mysql_cluster_optvar_INCLUDES)
 dynxml_local_mysql_cluster_optvar_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-configuration.idmap \
 	../refman-5.0/metadata/mysql-cluster-optvar-core.idmap
 dynxml-local-mysql-cluster-optvar.validpure: $(dynxml_local_mysql_cluster_optvar_SOURCES)

@@ -738,7 +945,9 @@
 dynxml_local_news_5_0_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -795,7 +1004,11 @@
 dynxml_local_programs_admin_util_SOURCES = dynxml-local-programs-admin-util.xml $(dynxml_local_programs_admin_util_INCLUDES)
 dynxml_local_programs_admin_util_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -832,7 +1045,10 @@
 dynxml_local_programs_client_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \
 	../refman-5.0/metadata/optimization.idmap \
 	../refman-5.0/metadata/programs-admin-util-core.idmap \

@@ -862,7 +1078,11 @@
 dynxml_local_programs_server_IMAGES =
 dynxml_local_programs_server_SOURCES = dynxml-local-programs-server.xml $(dynxml_local_programs_server_INCLUDES)
 dynxml_local_programs_server_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/programs-admin-util-core.idmap \
 	../refman-5.0/metadata/programs-server-core.idmap \

@@ -890,7 +1110,7 @@
 dynxml_local_releasenotes_cs_5_0_SOURCES = dynxml-local-releasenotes-cs-5.0.xml $(dynxml_local_releasenotes_cs_5_0_INCLUDES)
 dynxml_local_releasenotes_cs_5_0_IDMAPS = \
 	../ndbapi/metadata/mgm-api.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -925,7 +1145,7 @@
 dynxml_local_releasenotes_es_5_0_SOURCES = dynxml-local-releasenotes-es-5.0.xml $(dynxml_local_releasenotes_es_5_0_INCLUDES)
 dynxml_local_releasenotes_es_5_0_IDMAPS = \
 	../ndbapi/metadata/mgm-api.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \
 	../refman-5.0/metadata/mysql-cluster-backup.idmap \

@@ -957,7 +1177,9 @@
 dynxml_local_replication_options_IMAGES =
 dynxml_local_replication_options_SOURCES = dynxml-local-replication-options.xml $(dynxml_local_replication_options_INCLUDES)
 dynxml_local_replication_options_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \
 	../refman-5.0/metadata/replication-notes.idmap \

@@ -986,7 +1208,8 @@
 dynxml_local_se_bdb_SOURCES = dynxml-local-se-bdb.xml $(dynxml_local_se_bdb_INCLUDES)
 dynxml_local_se_bdb_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/se-bdb-core.idmap \
 	../refman-5.0/metadata/sql-syntax-server-administration.idmap \

@@ -1014,7 +1237,8 @@
 dynxml_local_se_innodb_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/news-5.0-core.idmap \

@@ -1046,7 +1270,8 @@
 dynxml_local_se_myisam_SOURCES = dynxml-local-se-myisam.xml $(dynxml_local_se_myisam_INCLUDES)
 dynxml_local_se_myisam_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -1102,7 +1327,11 @@
 errors_problems_SOURCES = errors-problems.xml $(errors_problems_INCLUDES)
 errors_problems_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/installing-core.idmap \

@@ -1138,7 +1367,9 @@
 extending_mysql_IMAGES =
 extending_mysql_SOURCES = extending-mysql.xml $(extending_mysql_INCLUDES)
 extending_mysql_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/installing-core.idmap \

@@ -1175,7 +1406,9 @@
 	../ndbapi/metadata/overview.idmap \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/faqs.idmap \

@@ -1251,7 +1484,7 @@
 information_schema_IMAGES =
 information_schema_SOURCES = information-schema.xml $(information_schema_INCLUDES)
 information_schema_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -1321,7 +1554,7 @@
 installing_version_IMAGES =
 installing_version_SOURCES = installing-version.xml $(installing_version_INCLUDES)
 installing_version_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap
 installing-version.validpure: $(installing_version_SOURCES)
 installing-version.titles: $(installing_version_SOURCES)
 installing-version.useless: $(installing_version_SOURCES)

@@ -1341,7 +1574,7 @@
 internationalization_SOURCES = internationalization.xml $(internationalization_INCLUDES)
 internationalization_IDMAPS = \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/information-schema.idmap \

@@ -1379,7 +1612,10 @@
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -1752,14 +1988,22 @@
 	backup.xml \
 	connectors-apis.xml \
 	data-types.xml \
-	dba-core.xml \
+	dba-log-files.xml \
+	dba-multiple-servers.xml \
+	dba-mysqld-server-core.xml \
+	dba-privilege-system.xml \
+	dba-security-core.xml \
+	dba-user-management-core.xml \
+	dba.xml \
 	dynxml-common-news-cj.xml \
 	dynxml-common-news-cmxj.xml \
 	dynxml-common-news-cnet.xml \
 	dynxml-common-news-codbc.xml \
 	dynxml-common-news-mysql-proxy.xml \
 	dynxml-common-news-vstudioplugin.xml \
-	dynxml-local-dba.xml \
+	dynxml-local-dba-mysqld-server.xml \
+	dynxml-local-dba-security.xml \
+	dynxml-local-dba-user-management.xml \
 	dynxml-local-functions.xml \
 	dynxml-local-installing.xml \
 	dynxml-local-language-structure.xml \

@@ -2039,7 +2283,13 @@
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/faqs.idmap \

@@ -2164,7 +2414,7 @@
 mysql_cluster_configuration_IMAGES =
 mysql_cluster_configuration_SOURCES = mysql-cluster-configuration.xml $(mysql_cluster_configuration_INCLUDES)
 mysql_cluster_configuration_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-backup.idmap \
 	../refman-5.0/metadata/mysql-cluster-configuration.idmap \

@@ -2262,7 +2512,7 @@
 	../ndbapi/metadata/mgm-api.idmap \
 	../ndbapi/metadata/ndb-errors.idmap \
 	../ndbapi/metadata/ndb-internals.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-backup.idmap \
 	../refman-5.0/metadata/mysql-cluster-configuration.idmap \
 	../refman-5.0/metadata/mysql-cluster-management.idmap \

@@ -2411,7 +2661,7 @@
 	../refman-common/images/published/cluster-security-network-3.png
 mysql_cluster_security_SOURCES = mysql-cluster-security.xml $(mysql_cluster_security_INCLUDES)
 mysql_cluster_security_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-configuration.idmap \
 	../refman-5.0/metadata/mysql-cluster-security.idmap \
 	../refman-5.0/metadata/mysql-cluster-utilities.idmap

@@ -2528,7 +2778,8 @@
 	../ndbapi/metadata/ndb-errors.idmap \
 	../ndbapi/metadata/ndb-internals.idmap \
 	../ndbapi/metadata/ndbapi.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-backup.idmap \

@@ -2627,7 +2878,9 @@
 news_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -2680,7 +2933,8 @@
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -2720,7 +2974,7 @@
 precision_math_IMAGES =
 precision_math_SOURCES = precision-math.xml $(precision_math_INCLUDES)
 precision_math_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/precision-math.idmap
 precision-math.validpure: $(precision_math_SOURCES)
 precision-math.titles: $(precision_math_SOURCES)

@@ -2844,7 +3098,9 @@
 programs_using_IMAGES =
 programs_using_SOURCES = programs-using.xml $(programs_using_INCLUDES)
 programs_using_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/mysql-cluster-configuration.idmap \
 	../refman-5.0/metadata/mysql-cluster-multi-computer.idmap \

@@ -2891,7 +3147,12 @@
 programs_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -2950,7 +3211,7 @@
 releasenotes_cs_SOURCES = releasenotes-cs.xml $(releasenotes_cs_INCLUDES)
 releasenotes_cs_IDMAPS = \
 	../ndbapi/metadata/mgm-api.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/installing-version.idmap \

@@ -3000,7 +3261,7 @@
 releasenotes_es_SOURCES = releasenotes-es.xml $(releasenotes_es_INCLUDES)
 releasenotes_es_IDMAPS = \
 	../ndbapi/metadata/mgm-api.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
 	../refman-5.0/metadata/installing-core.idmap \
 	../refman-5.0/metadata/installing-version.idmap \
 	../refman-5.0/metadata/internationalization.idmap \

@@ -3034,7 +3295,9 @@
 replication_configuration_IMAGES =
 replication_configuration_SOURCES = replication-configuration.xml $(replication_configuration_INCLUDES)
 replication_configuration_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/optimization.idmap \
 	../refman-5.0/metadata/replication-configuration.idmap \

@@ -3062,7 +3325,7 @@
 replication_implementation_IMAGES =
 replication_implementation_SOURCES = replication-implementation.xml $(replication_implementation_INCLUDES)
 replication_implementation_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
 	../refman-5.0/metadata/optimization.idmap \
 	../refman-5.0/metadata/replication-notes.idmap \
 	../refman-5.0/metadata/replication-options-core.idmap \

@@ -3085,7 +3348,8 @@
 replication_notes_IMAGES =
 replication_notes_SOURCES = replication-notes.xml $(replication_notes_INCLUDES)
 replication_notes_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/replication-implementation.idmap \

@@ -3139,7 +3403,7 @@
 	../refman-common/images/published/submaster-performance.png
 replication_solutions_SOURCES = replication-solutions.xml $(replication_solutions_INCLUDES)
 replication_solutions_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/programs-client-core.idmap \
 	../refman-5.0/metadata/replication-configuration.idmap \
 	../refman-5.0/metadata/replication-solutions.idmap \

@@ -3181,7 +3445,9 @@
 	../refman-common/images/published/submaster-performance.png
 replication_SOURCES = replication.xml $(replication_INCLUDES)
 replication_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/mysql-cluster.idmap \

@@ -3366,7 +3632,7 @@
 se_memory_IMAGES =
 se_memory_SOURCES = se-memory.xml $(se_memory_INCLUDES)
 se_memory_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/optimization.idmap \
 	../refman-5.0/metadata/sql-syntax-data-manipulation.idmap
 se-memory.validpure: $(se_memory_SOURCES)

@@ -3471,7 +3737,8 @@
 	../refman-4.1/metadata/sql-syntax-data-definition.idmap \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -3522,7 +3789,9 @@
 sql_syntax_data_manipulation_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/functions-core.idmap \

@@ -3581,7 +3850,7 @@
 sql_syntax_replication_IMAGES =
 sql_syntax_replication_SOURCES = sql-syntax-replication.xml $(sql_syntax_replication_INCLUDES)
 sql_syntax_replication_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/replication-configuration.idmap \
 	../refman-5.0/metadata/replication-options-core.idmap \

@@ -3609,7 +3878,11 @@
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-user-management-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/extending-mysql.idmap \
 	../refman-5.0/metadata/information-schema.idmap \

@@ -3653,7 +3926,8 @@
 sql_syntax_transactions_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/connectors-apis.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/introduction.idmap \

@@ -3681,7 +3955,7 @@
 sql_syntax_utility_IMAGES =
 sql_syntax_utility_SOURCES = sql-syntax-utility.xml $(sql_syntax_utility_INCLUDES)
 sql_syntax_utility_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/optimization.idmap \
 	../refman-5.0/metadata/sql-syntax-data-definition.idmap \
 	../refman-5.0/metadata/sql-syntax-server-administration.idmap \

@@ -3749,7 +4023,9 @@
 storage_engines_IDMAPS = \
 	../refman-5.0/metadata/backup.idmap \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-multiple-servers.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/installing-core.idmap \

@@ -3792,7 +4068,8 @@
 stored_programs_views_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
 	../refman-5.0/metadata/backup.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-log-files.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/information-schema.idmap \

@@ -3824,7 +4101,7 @@
 stored_routines_SOURCES = stored-routines.xml $(stored_routines_INCLUDES)
 stored_routines_IDMAPS = \
 	../refman-5.0/metadata/apis-c.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/information-schema.idmap \

@@ -3879,7 +4156,10 @@
 tutorial_SOURCES = tutorial.xml $(tutorial_INCLUDES)
 tutorial_IDMAPS = \
 	../refman-5.0/metadata/data-types.idmap \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
+	../refman-5.0/metadata/dba-privilege-system.idmap \
+	../refman-5.0/metadata/dba-security-core.idmap \
+	../refman-5.0/metadata/dba.idmap \
 	../refman-5.0/metadata/errors-problems.idmap \
 	../refman-5.0/metadata/functions-core.idmap \
 	../refman-5.0/metadata/installing-core.idmap \

@@ -3913,7 +4193,7 @@
 views_IMAGES =
 views_SOURCES = views.xml $(views_INCLUDES)
 views_IDMAPS = \
-	../refman-5.0/metadata/dba-core.idmap \
+	../refman-5.0/metadata/dba-mysqld-server-core.idmap \
 	../refman-5.0/metadata/faqs.idmap \
 	../refman-5.0/metadata/information-schema.idmap \
 	../refman-5.0/metadata/programs-installation.idmap \


Added: trunk/refman-5.0/dba-log-files.xml
===================================================================
--- trunk/refman-5.0/dba-log-files.xml	                        (rev 0)
+++ trunk/refman-5.0/dba-log-files.xml	2008-12-07 13:48:24 UTC (rev 12826)
Changed blocks: 1, Lines Added: 1042, Lines Deleted: 0; 38835 bytes

@@ -0,0 +1,1042 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % all.entities SYSTEM "all-entities.ent">
+  %all.entities;
+]>
+<section id="log-files">
+
+  <title>MySQL Server Logs</title>
+
+  <indexterm>
+    <primary>log files</primary>
+  </indexterm>
+
+  <para>
+    MySQL has several different logs that can help you find out what is
+    going on inside <command>mysqld</command>:
+  </para>
+
+  <informaltable>
+    <tgroup cols="2">
+      <colspec colwidth="30*"/>
+      <colspec colwidth="70*"/>
+      <tbody>
+        <row>
+          <entry><emphasis role="bold">Log Type</emphasis></entry>
+          <entry><emphasis role="bold">Information Written to Log</emphasis></entry>
+        </row>
+        <row>
+          <entry>The error log</entry>
+          <entry>Problems encountered starting, running, or stopping
+            <command>mysqld</command></entry>
+        </row>
+        <row>
+          <entry>The general query log</entry>
+          <entry>Established client connections and statements received from clients</entry>
+        </row>
+        <row>
+          <entry>The binary log</entry>
+          <entry>All statements that change data (also used for replication)</entry>
+        </row>
+        <row>
+          <entry>The slow query log</entry>
+          <entry>All queries that took more than
+            <literal role="sysvar">long_query_time</literal> seconds to
+            execute or didn't use indexes</entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </informaltable>
+
+  <para>
+    By default, all log files are created in the
+    <command>mysqld</command> data directory. You can force
+    <command>mysqld</command> to close and reopen the log files (or in
+    some cases switch to a new log) by flushing the logs. Log flushing
+    occurs when you issue a <literal role="stmt" condition="flush">FLUSH
+    LOGS</literal> statement or execute <command>mysqladmin
+    flush-logs</command> or <command>mysqladmin refresh</command>. See
+    <xref linkend="flush"/>, and <xref linkend="mysqladmin"/>.
+  </para>
+
+  <para>
+    If you are using MySQL replication capabilities, slave replication
+    servers maintain additional log files called relay logs.
+    <xref linkend="replication"/>, discusses relay log contents and
+    configuration.
+  </para>
+
+  <formalpara role="mnmas">
+
+    <title>MySQL Enterprise</title>
+
+    <para>
+      The MySQL Enterprise Monitor provides a number of advisors
+      specifically related to the various log files. For more
+      information see <ulink url="advisors.html"/>.
+    </para>
+
+  </formalpara>
+
+  <section id="error-log">
+
+    <title>The Error Log</title>
+
+    <para>
+      The error log contains information indicating when
+      <command>mysqld</command> was started and stopped and also any
+      critical errors that occur while the server is running. If
+      <command>mysqld</command> notices a table that needs to be
+      automatically checked or repaired, it writes a message to the
+      error log.
+    </para>
+
+    <para>
+      On some operating systems, the error log contains a stack trace if
+      <command>mysqld</command> dies. The trace can be used to determine
+      where <command>mysqld</command> died. See
+      <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+      Internals: Porting</ulink>.
+    </para>
+
+    <para>
+      You can specify where <command>mysqld</command> writes the error
+      log with the
+      <option>--log-error[=<replaceable>file_name</replaceable>]</option>
+      option. If no <replaceable>file_name</replaceable> value is given,
+      <command>mysqld</command> uses the name
+      <filename><replaceable>host_name</replaceable>.err</filename> by
+      default and writes the file in the data directory. If you execute
+      <literal role="stmt" condition="flush">FLUSH LOGS</literal>, the
+      error log is renamed with the suffix <literal>-old</literal> and
+      <command>mysqld</command> creates a new empty log file. (No
+      renaming occurs if the <option>--log-error</option> option was not
+      given to <command>mysqld</command>.)
+    </para>
+
+    <para>
+      If you do not specify <option>--log-error</option>, or (on
+      Windows) if you use the <option>--console</option> option, errors
+      are written to <literal>stderr</literal>, the standard error
+      output. Usually this is your terminal.
+    </para>
+
+    <para>
+      On Windows, error output is always written to the
+      <literal>.err</literal> file if <option>--console</option> is not
+      given.
+    </para>
+
+    <para>
+      The <option>--log-warnings</option> option or
+      <literal role="sysvar">log_warnings</literal> system variable can
+      be used to control warning logging to the error log. The default
+      value is enabled (1). Warning logging can be disabled using a
+      value of 0. If the value is greater than 1, aborted connections
+      are written to the error log. See
+      <xref linkend="communication-errors"/>.
+    </para>
+
+    <para>
+      If you use <command>mysqld_safe</command> to start
+      <command>mysqld</command>, <command>mysqld_safe</command> arranges
+      for <command>mysqld</command> to write error messages to a log
+      file. If you specify a filename via <option>--log-error</option>
+      to <command>mysqld_safe</command> or <command>mysqld</command>,
+      that filename is used. Otherwise, <command>mysqld_safe</command>
+      uses the default error log file.
+    </para>
+
+    <para>
+      If <command>mysqld_safe</command> is used to start
+      <command>mysqld</command> and <command>mysqld</command> dies
+      unexpectedly, <command>mysqld_safe</command> notices that it needs
+      to restart <command>mysqld</command> and writes a
+      <literal>restarted mysqld</literal> message to the error log.
+    </para>
+
+  </section>
+
+  <section id="query-log">
+
+    <title>The General Query Log</title>
+
+    <indexterm>
+      <primary>general query log</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>files</primary>
+      <secondary>general query log</secondary>
+    </indexterm>
+
+    <para>
+      The general query log is a general record of what
+      <command>mysqld</command> is doing. The server writes information
+      to this log when clients connect or disconnect, and it logs each
+      SQL statement received from clients. The general query log can be
+      very useful when you suspect an error in a client and want to know
+      exactly what the client sent to <command>mysqld</command>.
+    </para>
+
+    <para>
+      <command>mysqld</command> writes statements to the query log in
+      the order that it receives them, which might differ from the order
+      in which they are executed. This logging order contrasts to the
+      binary log, for which statements are written after they are
+      executed but before any locks are released. (Also, the query log
+      contains all statements, whereas the binary log does not contain
+      statements that only select data.)
+    </para>
+
+    <para>
+      To enable the general query log, start <command>mysqld</command>
+      with the
+      <option>--log[=<replaceable>file_name</replaceable>]</option> or
+      <option>-l [<replaceable>file_name</replaceable>]</option> option.
+    </para>
+
+    <para>
+      If no <replaceable>file_name</replaceable> value is given for
+      <option>--log</option> or <option>-l</option>, the default name is
+      <filename><replaceable>host_name</replaceable>.log</filename> in
+      the data directory.
+    </para>
+
+    <para>
+      Server restarts and log flushing do not cause a new general query
+      log file to be generated (although flushing closes and reopens
+      it). On Unix, you can rename the file and create a new one by
+      using the following commands:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mv <replaceable>host_name</replaceable>.log <replaceable>host_name</replaceable>-old.log</userinput>
+shell&gt; <userinput>mysqladmin flush-logs</userinput>
+shell&gt; <userinput>cp <replaceable>host_name</replaceable>-old.log <replaceable>backup-directory</replaceable></userinput>
+shell&gt; <userinput>rm <replaceable>host_name</replaceable>-old.log</userinput>
+</programlisting>
+
+    <para>
+      Before 5.0.17, you cannot rename a log file on Windows while the
+      server has it open. You must stop the server and rename the file,
+      and then restart the server to create a new log file. As of
+      5.0.17, this applies only to the error log. However, a stop and
+      restart can be avoided by using
+      <literal role="stmt" condition="flush">FLUSH LOGS</literal>, which
+      causes the server to rename the error log with an
+      <filename>-old</filename> suffix and open a new error log.
+    </para>
+
+  </section>
+
+  <section id="binary-log">
+
+    <title>The Binary Log</title>
+
+    <indexterm>
+      <primary>binary log</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>files</primary>
+      <secondary>binary log</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>files</primary>
+      <secondary>update log (obsolete)</secondary>
+    </indexterm>
+
+    <para>
+      The binary log contains all statements that update data or
+      potentially could have updated it (for example, a
+      <literal role="stmt">DELETE</literal> which matched no rows).
+      Statements are stored in the form of <quote>events</quote> that
+      describe the modifications. The binary log also contains
+      information about how long each statement took that updated data.
+      The binary log has two important purposes:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          For replication, the binary log is used on master replication
+          servers as a record of the statements to be sent to slave
+          servers. The master server sends the events contained in its
+          binary log to its slaves, which execute those events to make
+          the same data changes that were made on the master. See
+          <xref linkend="replication-implementation"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Certain data recovery operations require use of the binary
+          log. After a backup file has been restored, the events in the
+          binary log that were recorded after the backup was made are
+          re-executed. These events bring databases up to date from the
+          point of the backup. See
+          <xref linkend="recovery-from-backups"/>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <note>
+      <para>
+        The binary log has replaced the old update log, which is no
+        longer available as of MySQL 5.0. The binary log contains all
+        information that is available in the update log in a more
+        efficient format and in a manner that is transaction-safe. If
+        you are using transactions, you must use the MySQL binary log
+        for backups instead of the old update log.
+      </para>
+    </note>
+
+    <para>
+      For information about server options and variables affecting the
+      operation of binary logging, see
+      <xref linkend="replication-options-binary-log"/>.
+    </para>
+
+    <para>
+      The binary log is not used for statements such as
+      <literal role="stmt">SELECT</literal> or <literal>SHOW</literal>
+      that do not modify data. If you want to log all statements (for
+      example, to identify a problem query), use the general query log.
+      See <xref linkend="query-log"/>.
+    </para>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        The binary log can also be used to track significant DDL events.
+        Analyzing the binary log in this way is an integral part of the
+        MySQL Enterprise Monitor. For more information, see
+        <ulink url="advisors.html"/>.
+      </para>
+
+    </formalpara>
+
+    <para>
+      Running the server with the binary log enabled makes performance
+      about 1% slower. However, the benefits of the binary log for
+      restore operations and in allowing you to set up replication
+      generally outweigh this minor performance decrement.
+    </para>
+
+    <para>
+      When started with the
+      <option>--log-bin[=<replaceable>base_name</replaceable>]</option>
+      option, <command>mysqld</command> writes a log file containing all
+      SQL statements that update data (both DDL and DML statements). If
+      no <replaceable>base_name</replaceable> value is given, the
+      default name is the value of the <literal>pid-file</literal>
+      option (which by default is the name of host machine) followed by
+      <literal>-bin</literal>. If the basename is given, but not as an
+      absolute pathname, the server writes the file in the data
+      directory. It is recommended that you specify a basename; see
+      <xref linkend="open-bugs"/>, for the reason.
+    </para>
+
+    <note>
+      <para>
+        From MySQL 5.0.41 through 5.0.52, <quote>mysql</quote> was used
+        when no <replaceable>base_name</replaceable> was specified. Also
+        in these versions, a path given as part of the
+        <option>--log-bin</option> options was treated as absolute
+        rather than relative. The previous behaviors were restored in
+        MySQL 5.0.54. (See Bug #28603 and Bug #28597.)
+      </para>
+    </note>
+
+    <para>
+      If you supply an extension in the log name (for example,
+      <option>--log-bin=<replaceable>base_name.extension</replaceable></option>),
+      the extension is silently removed and ignored.
+    </para>
+
+    <para>
+      <command>mysqld</command> appends a numeric extension to the
+      binary log basename to generate binary log filenames. The number
+      increases each time the server creates a new log file, thus
+      creating an ordered series of files. The server creates a new file
+      in the series each time it starts or flushes the logs. The server
+      also creates a new binary log file automatically when the current
+      log's size reaches
+      <literal role="sysvar">max_binlog_size</literal>. A binary log
+      file may become larger than
+      <literal role="sysvar">max_binlog_size</literal> if you are using
+      large transactions because a transaction is written to the file in
+      one piece, never split between files.
+    </para>
+
+    <para>
+      To keep track of which binary log files have been used,
+      <command>mysqld</command> also creates a binary log index file
+      that contains the names of all used binary log files. By default,
+      this has the same basename as the binary log file, with the
+      extension <literal>'.index'</literal>. You can change the name of
+      the binary log index file with the
+      <option>--log-bin-index[=<replaceable>file_name</replaceable>]</option>
+      option. You should not manually edit this file while
+      <command>mysqld</command> is running; doing so would confuse
+      <command>mysqld</command>.
+    </para>
+
+    <para>
+      You can delete all binary log files with the
+      <literal role="stmt">RESET MASTER</literal> statement, or a subset
+      of them with <literal role="stmt">PURGE BINARY LOGS</literal>. See
+      <xref linkend="reset"/>, and <xref linkend="purge-binary-logs"/>.
+    </para>
+
+    <para>
+      Writes to the binary log file and binary log index file are
+      handled in the same way as writes to <literal>MyISAM</literal>
+      tables. See <xref linkend="full-disk"/>.
+    </para>
+
+    <para>
+      The binary log format has some known limitations that can affect
+      recovery from backups. See <xref linkend="replication-features"/>.
+    </para>
+
+    <para>
+      Binary logging for stored routines and triggers is done as
+      described in <xref linkend="stored-programs-logging"/>.
+    </para>
+
+    <para>
+      A replication slave server by default does not write to its own
+      binary log any data modifications that are received from the
+      replication master. To log these modifications, start the slave
+      with the <option>--log-slave-updates</option> option (see also
+      <xref linkend="replication-options-slave"/>).
+    </para>
+
+    <formalpara>
+
+      <title>Evaluation of update selection options</title>
+
+      <para>
+        The server evaluates the options for logging or ignoring updates
+        to the binary log according to the following rules:
+      </para>
+
+    </formalpara>
+
+    <orderedlist>
+
+      <listitem>
+        <para>
+          Are there <option>--binlog-do-db</option> or
+          <option>--binlog-ignore-db</option> rules?
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              No: Write the statement to the binary log and exit.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Yes: Go to the next step.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para>
+          There are some rules (<option>--binlog-do-db</option>,
+          <option>--binlog-ignore-db</option>, or both). Is there a
+          default database (has any database been selected by
+          <literal role="stmt">USE</literal>?)?
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              No: Do <emphasis>not</emphasis> write the statement, and
+              exit.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Yes: Go to the next step.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para>
+          There is a default database. Are there some
+          <option>--binlog-do-db</option> rules?
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              Yes: Does the default database match any of the
+              <option>--binlog-do-db</option> rules?
+            </para>
+
+            <itemizedlist>
+
+              <listitem>
+                <para>
+                  Yes: Write the statement and exit.
+                </para>
+              </listitem>
+
+              <listitem>
+                <para>
+                  No: Do <emphasis>not</emphasis> write the statement,
+                  and exit.
+                </para>
+              </listitem>
+
+            </itemizedlist>
+          </listitem>
+
+          <listitem>
+            <para>
+              No: Go to the next step.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para>
+          There are some <option>--binlog-ignore-db</option> rules. Does
+          the default database match any of the
+          <option>--binlog-ignore-db</option> rules?
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              Yes: Do not write the statement, and exit.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              No: Write the query and exit.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+    </orderedlist>
+
+    <important>
+      <para>
+        An exception is made in the rules just given for the
+        <literal role="stmt">CREATE DATABASE</literal>,
+        <literal role="stmt">ALTER DATABASE</literal>, and
+        <literal role="stmt">DROP DATABASE</literal> statements (see
+        <xref linkend="replication-options-binary-log"/>). In those
+        cases, the database being <emphasis>created, altered, or
+        dropped</emphasis> replaces the default database when
+        determining whether to log or ignore updates.
+      </para>
+    </important>
+
+    <para>
+      For example, a slave running with only
+      <option>--binlog-do-db=sales</option> does not write to the binary
+      log any statement for which the default database is different from
+      <literal>sales</literal> (in other words,
+      <option>--binlog-do-db</option> can sometimes mean <quote>ignore
+      other databases</quote>).
+    </para>
+
+    <para>
+      If you are using replication, you should not delete old binary log
+      files until you are sure that no slave still needs to use them.
+      For example, if your slaves never run more than three days behind,
+      once a day you can execute <command>mysqladmin
+      flush-logs</command> on the master and then remove any logs that
+      are more than three days old. You can remove the files manually,
+      but it is preferable to use <literal role="stmt">PURGE BINARY
+      LOGS</literal>, which also safely updates the binary log index
+      file for you (and which can take a date argument). See
+      <xref linkend="purge-binary-logs"/>.
+    </para>
+
+    <para>
+      A client that has the <literal role="priv">SUPER</literal>
+      privilege can disable binary logging of its own statements by
+      using a <literal>SET sql_log_bin=0</literal> statement. See
+      <xref linkend="server-session-variables"/>.
+    </para>
+
+    <para>
+      You can display the contents of binary log files with the
+      <command>mysqlbinlog</command> utility. This can be useful when
+      you want to reprocess statements in the log. For example, you can
+      update a MySQL server from the binary log as follows:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mysqlbinlog <replaceable>log_file</replaceable> | mysql -h <replaceable>server_name</replaceable></userinput>
+</programlisting>
+
+    <para>
+      See <xref linkend="mysqlbinlog"/>, for more information on the
+      <command>mysqlbinlog</command> utility and how to use it.
+      <command>mysqlbinlog</command> also can be used with relay log
+      files because they are written using the same format as binary log
+      files.
+    </para>
+
+    <para>
+      Binary logging is done immediately after a statement completes but
+      before any locks are released or any commit is done. This ensures
+      that the log is logged in execution order.
+    </para>
+
+    <para>
+      Updates to non-transactional tables are stored in the binary log
+      immediately after execution. In MySQL 5.0.53 and earlier versions
+      of MySQL &current-series;, an
+      <literal role="stmt">UPDATE</literal> statement using a stored
+      function that modified a non-transactional table was not logged if
+      it failed, and an <literal>INSERT ... ON DUPLICATE KEY
+      UPDATE</literal> statement that encountered a duplicate key
+      constraint &mdash; but which did not actually change any data
+      &mdash; was not logged. Beginning with MySQL 5.0.54, both of these
+      statements are written to the binary log. (Bug #23333)
+    </para>
+
+    <para>
+      Within an uncommitted transaction, all updates
+      (<literal role="stmt">UPDATE</literal>,
+      <literal role="stmt">DELETE</literal>, or
+      <literal role="stmt">INSERT</literal>) that change transactional
+      tables such as <literal>BDB</literal> or <literal>InnoDB</literal>
+      tables are cached until a <literal role="stmt">COMMIT</literal>
+      statement is received by the server. At that point,
+      <command>mysqld</command> writes the entire transaction to the
+      binary log before the <literal role="stmt">COMMIT</literal> is
+      executed. When the thread that handles the transaction starts, it
+      allocates a buffer of
+      <literal role="sysvar">binlog_cache_size</literal> to buffer
+      statements. If a statement is bigger than this, the thread opens a
+      temporary file to store the transaction. The temporary file is
+      deleted when the thread ends.
+    </para>
+
+    <para>
+      Modifications to non-transactional tables cannot be rolled back.
+      If a transaction that is rolled back includes modifications to
+      non-transactional tables, the entire transaction is logged with a
+      <literal role="stmt" condition="commit">ROLLBACK</literal>
+      statement at the end to ensure that the modifications to those
+      tables are replicated.
+    </para>
+
+    <para>
+      The <literal role="statvar">Binlog_cache_use</literal> status
+      variable shows the number of transactions that used this buffer
+      (and possibly a temporary file) for storing statements. The
+      <literal role="statvar">Binlog_cache_disk_use</literal> status
+      variable shows how many of those transactions actually had to use
+      a temporary file. These two variables can be used for tuning
+      <literal role="sysvar">binlog_cache_size</literal> to a large
+      enough value that avoids the use of temporary files.
+    </para>
+
+    <para>
+      The <literal role="sysvar">max_binlog_cache_size</literal> system
+      variable (default 4GB, which is also the maximum) can be used to
+      restrict the total size used to cache a multiple-statement
+      transaction. If a transaction is larger than this many bytes, it
+      fails and rolls back. The minimum value is 4096.
+    </para>
+
+    <para>
+      Note that the binary log format is different in MySQL
+      &current-series; from previous versions of MySQL, due to
+      enhancements in replication. See
+      <xref linkend="replication-compatibility"/>.
+    </para>
+
+    <para>
+      By default, the binary log is not synchronized to disk at each
+      write. So if the operating system or machine (not only the MySQL
+      server) crashes, there is a chance that the last statements of the
+      binary log are lost. To prevent this, you can make the binary log
+      be synchronized to disk after every <replaceable>N</replaceable>
+      writes to the binary log, with the <literal>sync_binlog</literal>
+      system variable. See <xref linkend="server-system-variables"/>. 1
+      is the safest value for <literal>sync_binlog</literal>, but also
+      the slowest. Even with <literal>sync_binlog</literal> set to 1,
+      there is still the chance of an inconsistency between the table
+      content and binary log content in case of a crash. For example, if
+      you are using <literal>InnoDB</literal> tables and the MySQL
+      server processes a <literal role="stmt">COMMIT</literal>
+      statement, it writes the whole transaction to the binary log and
+      then commits this transaction into <literal>InnoDB</literal>. If
+      the server crashes between those two operations, the transaction
+      is rolled back by <literal>InnoDB</literal> at restart but still
+      exists in the binary log. This problem can be solved with the
+      <option>--innodb-safe-binlog</option> option, which adds
+      consistency between the content of <literal>InnoDB</literal>
+      tables and the binary log. (Note:
+      <option>--innodb-safe-binlog</option> is unneeded as of MySQL 5.0;
+      it was made obsolete by the introduction of XA transaction
+      support.)
+    </para>
+
+    <para>
+      For this option to provide a greater degree of safety, the MySQL
+      server should also be configured to synchronize the binary log and
+      the <literal>InnoDB</literal> logs to disk at every transaction.
+      The <literal>InnoDB</literal> logs are synchronized by default,
+      and <literal>sync_binlog=1</literal> can be used to synchronize
+      the binary log. The effect of this option is that at restart after
+      a crash, after doing a rollback of transactions, the MySQL server
+      cuts rolled back <literal>InnoDB</literal> transactions from the
+      binary log. This ensures that the binary log reflects the exact
+      data of <literal>InnoDB</literal> tables, and so, that the slave
+      remains in synchrony with the master (not receiving a statement
+      which has been rolled back).
+    </para>
+
+    <para>
+      Note that <option>--innodb-safe-binlog</option> can be used even
+      if the MySQL server updates other storage engines than
+      <literal>InnoDB</literal>. Only statements and transactions that
+      affect <literal>InnoDB</literal> tables are subject to removal
+      from the binary log at <literal>InnoDB</literal>'s crash recovery.
+      If the MySQL server discovers at crash recovery that the binary
+      log is shorter than it should have been, it lacks at least one
+      successfully committed <literal>InnoDB</literal> transaction. This
+      should not happen if <literal>sync_binlog=1</literal> and the
+      disk/filesystem do an actual sync when they are requested to (some
+      don't), so the server prints an error message <literal>The binary
+      log &lt;name&gt; is shorter than its expected size</literal>. In
+      this case, this binary log is not correct and replication should
+      be restarted from a fresh snapshot of the master's data.
+    </para>
+
+    <para>
+      For MySQL 5.0.46, the session values of the following system
+      variables are written to the binary log and honored by the
+      replication slave when parsing the binary log:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">sql_mode</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">foreign_key_checks</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">unique_checks</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">character_set_client</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">collation_connection</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">collation_database</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">collation_server</literal>
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal role="sysvar">sql_auto_is_null</literal>
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+  </section>
+
+  <section id="slow-query-log">
+
+    <title>The Slow Query Log</title>
+
+    <indexterm>
+      <primary>slow query log</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>files</primary>
+      <secondary>slow query log</secondary>
+    </indexterm>
+
+    <para>
+      The slow query log consists of all SQL statements that took more
+      than <literal role="sysvar">long_query_time</literal> seconds to
+      execute. The time to acquire the initial table locks is not
+      counted as execution time. <command>mysqld</command> writes a
+      statement to the slow query log after it has been executed and
+      after all locks have been released, so log order might be
+      different from execution order. The minimum and default values of
+      <literal role="sysvar">long_query_time</literal> are 1 and 10,
+      respectively.
+    </para>
+
+    <para>
+      To enable the slow query log, start <command>mysqld</command> with
+      the
+      <option>--log-slow-queries[=<replaceable>file_name</replaceable>]</option>
+      option.
+    </para>
+
+    <para>
+      If no <replaceable>file_name</replaceable> value is given for
+      <option>--log-slow-queries</option>, the default name is
+      <filename><replaceable>host_name</replaceable>-slow.log</filename>.
+      If a filename is given, but not as an absolute pathname, the
+      server writes the file in the data directory.
+    </para>
+
+    <para>
+      The slow query log can be used to find queries that take a long
+      time to execute and are therefore candidates for optimization.
+      However, examining a long slow query log can become a difficult
+      task. To make this easier, you can process the slow query log
+      using the <command>mysqldumpslow</command> command to summarize
+      the queries that appear in the log. Use <command>mysqldumpslow
+      --help</command> to see the options that this command supports.
+    </para>
+
+    <para>
+      In MySQL &current-series;, queries that do not use indexes are
+      logged in the slow query log if the
+      <option>--log-queries-not-using-indexes</option> option is
+      specified. See <xref linkend="server-options"/>.
+    </para>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        Excessive table scans are indicative of missing or poorly
+        optimized indexes. Using an advisor specifically designed for
+        the task, the MySQL Enterprise Monitor can identify such
+        problems and offer advice on resolution. For more information,
+        see <ulink url="advisors.html"/>.
+      </para>
+
+    </formalpara>
+
+    <para>
+      In MySQL &current-series;, the
+      <option>--log-slow-admin-statements</option> server option enables
+      you to request logging of slow administrative statements such as
+      <literal role="stmt">OPTIMIZE TABLE</literal>,
+      <literal role="stmt">ANALYZE TABLE</literal>, and
+      <literal role="stmt">ALTER TABLE</literal> to the slow query log.
+    </para>
+
+    <para>
+      Queries handled by the query cache are not added to the slow query
+      log, nor are queries that would not benefit from the presence of
+      an index because the table has zero rows or one row.
+    </para>
+
+    <para>
+      Replication slaves do not write replicated queries to the slow
+      query log, even if the same queries were written to the slow query
+      log on the master. This is a known issue which we intend to fix in
+      a future version of MySQL. (Bug #23300)
+    </para>
+
+  </section>
+
+  <section id="log-file-maintenance">
+
+    <title>Server Log Maintenance</title>
+
+    <indexterm>
+      <primary>files</primary>
+      <secondary>log</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>maintaining</primary>
+      <secondary>log files</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>log files</primary>
+      <secondary>maintaining</secondary>
+    </indexterm>
+
+    <para>
+      MySQL Server can create a number of different log files that make
+      it easy to see what is going on. See <xref linkend="log-files"/>.
+      However, you must clean up these files regularly to ensure that
+      the logs do not take up too much disk space.
+    </para>
+
+    <para>
+      When using MySQL with logging enabled, you may want to back up and
+      remove old log files from time to time and tell MySQL to start
+      logging to new files. See <xref linkend="backup"/>.
+    </para>
+
+    <para>
+      On a Linux (Red Hat) installation, you can use the
+      <literal>mysql-log-rotate</literal> script for this. If you
+      installed MySQL from an RPM distribution, this script should have
+      been installed automatically. You should be careful with this
+      script if you are using the binary log for replication. You should
+      not remove binary logs until you are certain that their contents
+      have been processed by all slaves.
+    </para>
+
+    <para>
+      On other systems, you must install a short script yourself that
+      you start from <command>cron</command> (or its equivalent) for
+      handling log files.
+    </para>
+
+    <para>
+      For the binary log, you can set the
+      <literal role="sysvar">expire_logs_days</literal> system variable
+      to expire binary log files automatically after a given number of
+      days (see <xref linkend="server-system-variables"/>). If you are
+      using replication, you should set the variable no lower than the
+      maximum number of days your slaves might lag behind the master.
+    </para>
+
+    <para>
+      You can force MySQL to start using new log files by issuing a
+      <literal role="stmt" condition="flush">FLUSH LOGS</literal>
+      statement or executing <command>mysqladmin flush-logs</command> or
+      <command>mysqladmin refresh</command>. See
+      <xref linkend="flush"/>, and <xref linkend="mysqladmin"/>.
+    </para>
+
+    <para>
+      A log flushing operation does the following:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          If general query logging (<option>--log</option>) or slow
+          query logging (<option>--log-slow-queries</option>) to a log
+          file is enabled, the server closes and reopens the general
+          query log file or slow query log file.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          If binary logging (<option>--log-bin</option>) is used, the
+          server closes the current log file and opens a new log file
+          with the next sequence number.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          If the server was given an error log filename with the
+          <option>--log-error</option> option, it renames the error log
+          with the suffix <literal>-old</literal> and creates a new
+          empty error log file.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      The server creates a new binary log file when you flush the logs.
+      However, it just closes and reopens the general and slow query log
+      files. To cause new files to be created on Unix, rename the
+      current logs before flushing them. At flush time, the server will
+      open new logs with the original names. For example, if the general
+      and slow query logs are named <filename>mysql.log</filename> and
+      <filename>mysql-slow.log</filename>, you can use a series of
+      commands like this:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>cd <replaceable>mysql-data-directory</replaceable></userinput>
+shell&gt; <userinput>mv mysql.log mysql.old</userinput>
+shell&gt; <userinput>mv mysql-slow.log mysql-slow.old</userinput>
+shell&gt; <userinput>mysqladmin flush-logs</userinput>
+</programlisting>
+
+    <para>
+      At this point, you can make a backup of
+      <filename>mysql.old</filename> and
+      <filename>mysql-slow.log</filename> and then remove them from
+      disk.
+    </para>
+
+    <para>
+      Before 5.0.17, you cannot rename a log file on Windows while the
+      server has it open. You must stop the server and rename the file,
+      and then restart the server to create a new log file. As of
+      5.0.17, this applies only to the error log. However, a stop and
+      restart can be avoided by using
+      <literal role="stmt" condition="flush">FLUSH LOGS</literal>, which
+      causes the server to rename the error log with an
+      <filename>-old</filename> suffix and open a new error log.
+    </para>
+
+    <para>
+      The session <literal role="sysvar">sql_log_off</literal> variable
+      can be set to <literal>ON</literal> or <literal>OFF</literal> to
+      disable or enable general query logging for the current
+      connection.
+    </para>
+
+  </section>
+
+</section>


Added: trunk/refman-5.0/dba-multiple-servers.xml
===================================================================
--- trunk/refman-5.0/dba-multiple-servers.xml	                        (rev 0)
+++ trunk/refman-5.0/dba-multiple-servers.xml	2008-12-07 13:48:24 UTC (rev 12826)
Changed blocks: 1, Lines Added: 932, Lines Deleted: 0; 32323 bytes

@@ -0,0 +1,932 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % all.entities SYSTEM "all-entities.ent">
+  %all.entities;
+]>
+<section id="multiple-servers">
+
+  <title>Running Multiple MySQL Servers on the Same Machine</title>
+
+  <indexterm>
+    <primary>post-install</primary>
+    <secondary>multiple servers</secondary>
+  </indexterm>
+
+  <indexterm>
+    <primary>Starting many servers</primary>
+  </indexterm>
+
+  <indexterm>
+    <primary>multiple servers</primary>
+  </indexterm>
+
+  <indexterm>
+    <primary>servers</primary>
+    <secondary>multiple</secondary>
+  </indexterm>
+
+  <indexterm>
+    <primary>running</primary>
+    <secondary>multiple servers</secondary>
+  </indexterm>
+
+  <para>
+    In some cases, you might want to run multiple
+    <command>mysqld</command> servers on the same machine. You might
+    want to test a new MySQL release while leaving your existing
+    production setup undisturbed. Or you might want to give different
+    users access to different <command>mysqld</command> servers that
+    they manage themselves. (For example, you might be an Internet
+    Service Provider that wants to provide independent MySQL
+    installations for different customers.)
+  </para>
+
+  <para>
+    To run multiple servers on a single machine, each server must have
+    unique values for several operating parameters. These can be set on
+    the command line or in option files. See
+    <xref linkend="program-options"/>.
+  </para>
+
+  <para>
+    At least the following options must be different for each server:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        <option>--port=<replaceable>port_num</replaceable></option>
+      </para>
+
+      <para>
+        <option>--port</option> controls the port number for TCP/IP
+        connections. (Alternatively, if the host has multiple network
+        addresses, you can use <option>--bind-adress</option> to cause
+        different servers to listen to different interfaces.)
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--socket=<replaceable>path</replaceable></option>
+      </para>
+
+      <para>
+        <option>--socket</option> controls the Unix socket file path on
+        Unix and the name of the named pipe on Windows. On Windows, it
+        is necessary to specify distinct pipe names only for those
+        servers that support named-pipe connections.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--shared-memory-base-name=<replaceable>name</replaceable></option>
+      </para>
+
+      <para>
+        This option currently is used only on Windows. It designates the
+        shared-memory name used by a Windows server to allow clients to
+        connect via shared memory. It is necessary to specify distinct
+        shared-memory names only for those servers that support
+        shared-memory connections.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--pid-file=<replaceable>file_name</replaceable></option>
+      </para>
+
+      <para>
+        This option is used only on Unix. It indicates the pathname of
+        the file in which the server writes its process ID.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
+    If you use the following log file options, they must be different
+    for each server:
+  </para>
+
+  <remark role="todo">
+    InnoDB options needed here?
+  </remark>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        <option>--log[=<replaceable>file_name</replaceable>]</option>
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--log-bin[=<replaceable>file_name</replaceable>]</option>
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--log-error[=<replaceable>file_name</replaceable>]</option>
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--bdb-logdir=<replaceable>file_name</replaceable></option>
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
+    <xref linkend="log-file-maintenance"/>, discusses the log file
+    options further.
+  </para>
+
+  <para>
+    For better performance, you can specify the following options
+    differently for each server, to spread the load between several
+    physical disks:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        <option>--tmpdir=<replaceable>path</replaceable></option>
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        <option>--bdb-tmpdir=<replaceable>path</replaceable></option>
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
+    Having different temporary directories is also recommended to make
+    it easier to determine which MySQL server created any given
+    temporary file.
+  </para>
+
+  <para>
+    With very limited exceptions, each server should use a different
+    data directory, which is specified using the
+    <option>--datadir=<replaceable>path</replaceable></option> option.
+  </para>
+
+  <warning>
+    <para>
+      Normally, you should never have two servers that update data in
+      the same databases. This may lead to unpleasant surprises if your
+      operating system does not support fault-free system locking. If
+      (despite this warning) you run multiple servers using the same
+      data directory and they have logging enabled, you must use the
+      appropriate options to specify log filenames that are unique to
+      each server. Otherwise, the servers try to log to the same files.
+      Please note that this kind of setup only works with
+      <literal>MyISAM</literal> and <literal>MERGE</literal> tables, and
+      not with any of the other storage engines.
+    </para>
+  </warning>
+
+  <para>
+    The warning against sharing a data directory among servers also
+    applies in an NFS environment. Allowing multiple MySQL servers to
+    access a common data directory over NFS is a <emphasis>very bad
+    idea</emphasis>.
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        The primary problem is that NFS is the speed bottleneck. It is
+        not meant for such use.
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        Another risk with NFS is that you must devise a way to ensure
+        that two or more servers do not interfere with each other.
+        Usually NFS file locking is handled by the
+        <literal>lockd</literal> daemon, but at the moment there is no
+        platform that performs locking 100% reliably in every situation.
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <para>
+    Make it easy for yourself: Forget about sharing a data directory
+    among servers over NFS. A better solution is to have one computer
+    that contains several CPUs and use an operating system that handles
+    threads efficiently.
+  </para>
+
+  <para>
+    If you have multiple MySQL installations in different locations, you
+    can specify the base installation directory for each server with the
+    <option>--basedir=<replaceable>path</replaceable></option> option to
+    cause each server to use a different data directory, log files, and
+    PID file. (The defaults for all these values are determined relative
+    to the base directory). In that case, the only other options you
+    need to specify are the <option>--socket</option> and
+    <option>--port</option> options. For example, suppose that you
+    install different versions of MySQL using <filename>tar</filename>
+    file binary distributions. These install in different locations, so
+    you can start the server for each installation using the command
+    <command>bin/mysqld_safe</command> under its corresponding base
+    directory. <command>mysqld_safe</command> determines the proper
+    <option>--basedir</option> option to pass to
+    <command>mysqld</command>, and you need specify only the
+    <option>--socket</option> and <option>--port</option> options to
+    <command>mysqld_safe</command>.
+  </para>
+
+  <para>
+    As discussed in the following sections, it is possible to start
+    additional servers by setting environment variables or by specifying
+    appropriate command-line options. However, if you need to run
+    multiple servers on a more permanent basis, it is more convenient to
+    use option files to specify for each server those option values that
+    must be unique to it. The <option>--defaults-file</option> option is
+    useful for this purpose.
+  </para>
+
+  <section id="multiple-windows-servers">
+
+    <title>Running Multiple Servers on Windows</title>
+
+    <para>
+      You can run multiple servers on Windows by starting them manually
+      from the command line, each with appropriate operating parameters.
+      You also have the option of installing several servers as Windows
+      services and running them that way. General instructions for
+      running MySQL servers from the command line or as services are
+      given in <xref linkend="windows-installation"/>. This section
+      describes how to make sure that you start each server with
+      different values for those startup options that must be unique per
+      server, such as the data directory. These options are described in
+      <xref linkend="multiple-servers"/>.
+    </para>
+
+    <section id="multiple-windows-command-line-servers">
+
+      <title>Starting Multiple Windows Servers at the Command Line</title>
+
+      <para>
+        To start multiple servers manually from the command line, you
+        can specify the appropriate options on the command line or in an
+        option file. It is more convenient to place the options in an
+        option file, but it is necessary to make sure that each server
+        gets its own set of options. To do this, create an option file
+        for each server and tell the server the filename with a
+        <option>--defaults-file</option> option when you run it.
+      </para>
+
+      <para>
+        Suppose that you want to run <command>mysqld</command> on port
+        3307 with a data directory of <filename>C:\mydata1</filename>,
+        and <command>mysqld-debug</command> on port 3308 with a data
+        directory of <filename>C:\mydata2</filename>. (To do this, make
+        sure that before you start the servers, each data directory
+        exists and has its own copy of the <literal>mysql</literal>
+        database that contains the grant tables.) Then create two option
+        files. For example, create one file named
+        <filename>C:\my-opts1.cnf</filename> that looks like this:
+      </para>
+
+<programlisting>
+[mysqld]
+datadir = C:/mydata1
+port = 3307
+</programlisting>
+
+      <para>
+        Create a second file named <filename>C:\my-opts2.cnf</filename>
+        that looks like this:
+      </para>
+
+<programlisting>
+[mysqld]
+datadir = C:/mydata2
+port = 3308
+</programlisting>
+
+      <para>
+        Then start each server with its own option file:
+      </para>
+
+<programlisting>
+C:\&gt; <userinput>C:\mysql\bin\mysqld --defaults-file=C:\my-opts1.cnf</userinput>
+C:\&gt; <userinput>C:\mysql\bin\mysqld-debug --defaults-file=C:\my-opts2.cnf</userinput>
+</programlisting>
+
+      <para>
+        Each server starts in the foreground (no new prompt appears
+        until the server exits later), so you will need to issue those
+        two commands in separate console windows.
+      </para>
+
+      <para>
+        To shut down the servers, you must connect to each using the
+        appropriate port number:
+      </para>
+
+<programlisting>
+C:\&gt; <userinput>C:\mysql\bin\mysqladmin --port=3307 shutdown</userinput>
+C:\&gt; <userinput>C:\mysql\bin\mysqladmin --port=3308 shutdown</userinput>
+</programlisting>
+
+      <para>
+        Servers configured as just described allow clients to connect
+        over TCP/IP. If your version of Windows supports named pipes and
+        you also want to allow named-pipe connections, use the
+        <command>mysqld-nt</command> or <command>mysqld-debug</command>
+        server and specify options that enable the named pipe and
+        specify its name. Each server that supports named-pipe
+        connections must use a unique pipe name. For example, the
+        <filename>C:\my-opts1.cnf</filename> file might be written like
+        this:
+      </para>
+
+<programlisting>
+[mysqld]
+datadir = C:/mydata1
+port = 3307
+enable-named-pipe
+socket = mypipe1
+</programlisting>
+
+      <para>
+        Then start the server this way:
+      </para>
+
+<programlisting>
+C:\&gt; <userinput>C:\mysql\bin\mysqld-nt --defaults-file=C:\my-opts1.cnf</userinput>
+</programlisting>
+
+      <para>
+        Modify <filename>C:\my-opts2.cnf</filename> similarly for use by
+        the second server.
+      </para>
+
+      <para>
+        A similar procedure applies for servers that you want to support
+        shared-memory connections. Enable such connections with the
+        <option>--shared-memory</option> option and specify a unique
+        shared-memory name for each server with the
+        <option>--shared-memory-base-name</option> option.
+      </para>
+
+    </section>
+
+    <section id="multiple-windows-services">
+
+      <title>Starting Multiple Windows Servers as Services</title>
+
+      <para>
+        A MySQL server can run as a Windows service. The procedures for
+        installing, controlling, and removing a single MySQL service are
+        described in <xref linkend="windows-start-service"/>.
+      </para>
+
+      <para>
+        You can also install multiple MySQL servers as services. In this
+        case, you must make sure that each server uses a different
+        service name in addition to all the other parameters that must
+        be unique for each server.
+      </para>
+
+      <para>
+        For the following instructions, assume that you want to run the
+        <command>mysqld-nt</command> server from two different versions
+        of MySQL that are installed at
+        <filename>C:\mysql-4.1.8</filename> and
+        <filename>C:\mysql-&current-version;</filename>, respectively.
+        (This might be the case if you're running 4.1.8 as your
+        production server, but also want to conduct tests using
+        &current-version;.)
+      </para>
+
+      <para>
+        The following principles apply when installing a MySQL service
+        with the <option>--install</option> or
+        <option>--install-manual</option> option:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            If you specify no service name, the server uses the default
+            service name of <literal>MySQL</literal> and the server
+            reads options from the <literal>[mysqld]</literal> group in
+            the standard option files.
+          </para>
+        </listitem>
+
+        <listitem>
+          <remark>
+            TODO change this back after bug gets fixed
+          </remark>
+
+          <remark>
+            If you specify a service name different from @code{MySQL}
+            after the
+          </remark>
+
+          <para>
+            If you specify a service name after the
+            <option>--install</option> option, the server ignores the
+            <literal>[mysqld]</literal> option group and instead reads
+            options from the group that has the same name as the
+            service. The server reads options from the standard option
+            files.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            If you specify a <option>--defaults-file</option> option
+            after the service name, the server ignores the standard
+            option files and reads options only from the
+            <literal>[mysqld]</literal> group of the named file.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <note>
+        <para>
+          Before MySQL 4.0.17, only a server installed using the default
+          service name (<literal>MySQL</literal>) or one installed
+          explicitly with a service name of <command>mysqld</command>
+          will read the <literal>[mysqld]</literal> group in the
+          standard option files. As of 4.0.17, all servers read the
+          <literal>[mysqld]</literal> group if they read the standard
+          option files, even if they are installed using another service
+          name. This allows you to use the <literal>[mysqld]</literal>
+          group for options that should be used by all MySQL services,
+          and an option group named after each service for use by the
+          server installed with that service name.
+        </para>
+      </note>
+
+      <para>
+        Based on the preceding information, you have several ways to set
+        up multiple services. The following instructions describe some
+        examples. Before trying any of them, be sure that you shut down
+        and remove any existing MySQL services first.
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Approach 1:</emphasis> Specify the
+            options for all services in one of the standard option
+            files. To do this, use a different service name for each
+            server. Suppose that you want to run the 4.1.8
+            <command>mysqld-nt</command> using the service name of
+            <literal>mysqld1</literal> and the &current-version;
+            <command>mysqld-nt</command> using the service name
+            <literal>mysqld2</literal>. In this case, you can use the
+            <literal>[mysqld1]</literal> group for 4.1.8 and the
+            <literal>[mysqld2]</literal> group for &current-version;.
+            For example, you can set up <filename>C:\my.cnf</filename>
+            like this:
+          </para>
+
+<programlisting>
+# options for mysqld1 service
+[mysqld1]
+basedir = C:/mysql-4.1.8
+port = 3307
+enable-named-pipe
+socket = mypipe1
+
+# options for mysqld2 service
+[mysqld2]
+basedir = C:/mysql-&current-version;
+port = 3308
+enable-named-pipe
+socket = mypipe2
+</programlisting>
+
+          <para>
+            Install the services as follows, using the full server
+            pathnames to ensure that Windows registers the correct
+            executable program for each service:
+          </para>
+
+<programlisting>
+C:\&gt; <userinput>C:\mysql-4.1.8\bin\mysqld-nt --install mysqld1</userinput>
+C:\&gt; <userinput>C:\mysql-&current-version;\bin\mysqld-nt --install mysqld2</userinput>
+</programlisting>
+
+          <para>
+            To start the services, use the services manager, or use
+            <command>NET START</command> with the appropriate service
+            names:
+          </para>
+
+<programlisting>
+C:\&gt; <userinput>NET START mysqld1</userinput>
+C:\&gt; <userinput>NET START mysqld2</userinput>
+</programlisting>
+
+          <para>
+            To stop the services, use the services manager, or use
+            <command>NET STOP</command> with the appropriate service
+            names:
+          </para>
+
+<programlisting>
+C:\&gt; <userinput>NET STOP mysqld1</userinput>
+C:\&gt; <userinput>NET STOP mysqld2</userinput>
+</programlisting>
+        </listitem>
+
+        <listitem>
+          <para>
+            <emphasis role="bold">Approach 2:</emphasis> Specify options
+            for each server in separate files and use
+            <option>--defaults-file</option> when you install the
+            services to tell each server what file to use. In this case,
+            each file should list options using a
+            <literal>[mysqld]</literal> group.
+          </para>
+
+          <para>
+            With this approach, to specify options for the 4.1.8
+            <command>mysqld-nt</command>, create a file
+            <filename>C:\my-opts1.cnf</filename> that looks like this:
+          </para>
+
+<programlisting>
+[mysqld]
+basedir = C:/mysql-4.1.8
+port = 3307
+enable-named-pipe
+socket = mypipe1
+</programlisting>
+
+          <para>
+            For the &current-version; <command>mysqld-nt</command>,
+            create a file <filename>C:\my-opts2.cnf</filename> that
+            looks like this:
+          </para>
+
+<programlisting>
+[mysqld]
+basedir = C:/mysql-&current-version;
+port = 3308
+enable-named-pipe
+socket = mypipe2
+</programlisting>
+
+          <para>
+            Install the services as follows (enter each command on a
+            single line):
+          </para>
+
+<programlisting>
+C:\&gt; <userinput>C:\mysql-4.1.8\bin\mysqld-nt --install mysqld1</userinput>
+           <userinput>--defaults-file=C:\my-opts1.cnf</userinput>
+C:\&gt; <userinput>C:\mysql-&current-version;\bin\mysqld-nt --install mysqld2</userinput>
+           <userinput>--defaults-file=C:\my-opts2.cnf</userinput>
+</programlisting>
+
+          <para>
+            To use a <option>--defaults-file</option> option when you
+            install a MySQL server as a service, you must precede the
+            option with the service name.
+          </para>
+
+          <para>
+            After installing the services, start and stop them the same
+            way as in the preceding example.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        To remove multiple services, use <command>mysqld
+        --remove</command> for each one, specifying a service name
+        following the <option>--remove</option> option. If the service
+        name is the default (<literal>MySQL</literal>), you can omit it.
+      </para>
+
+    </section>
+
+  </section>
+
+  <section id="multiple-unix-servers">
+
+    <title>Running Multiple Servers on Unix</title>
+
+    <para>
+      The easiest way is to run multiple servers on Unix is to compile
+      them with different TCP/IP ports and Unix socket files so that
+      each one is listening on different network interfaces. Compiling
+      in different base directories for each installation also results
+      automatically in a separate, compiled-in data directory, log file,
+      and PID file location for each server.
+    </para>
+
+    <para>
+      Assume that an existing 4.1.8 server is configured for the default
+      TCP/IP port number (3306) and Unix socket file
+      (<filename>/tmp/mysql.sock</filename>). To configure a new
+      &current-version; server to have different operating parameters,
+      use a <command>configure</command> command something like this:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>./configure --with-tcp-port=<replaceable>port_number</replaceable> \</userinput>
+             <userinput>--with-unix-socket-path=<replaceable>file_name</replaceable> \</userinput>
+             <userinput>--prefix=/usr/local/mysql-&current-version;</userinput>
+</programlisting>
+
+    <para>
+      Here, <replaceable>port_number</replaceable> and
+      <replaceable>file_name</replaceable> must be different from the
+      default TCP/IP port number and Unix socket file pathname, and the
+      <option>--prefix</option> value should specify an installation
+      directory different from the one under which the existing MySQL
+      installation is located.
+    </para>
+
+    <para>
+      If you have a MySQL server listening on a given port number, you
+      can use the following command to find out what operating
+      parameters it is using for several important configurable
+      variables, including the base directory and Unix socket filename:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mysqladmin --host=<replaceable>host_name</replaceable> --port=<replaceable>port_number</replaceable> variables</userinput>
+</programlisting>
+
+    <para>
+      With the information displayed by that command, you can tell what
+      option values <emphasis>not</emphasis> to use when configuring an
+      additional server.
+    </para>
+
+    <para>
+      Note that if you specify <literal>localhost</literal> as a
+      hostname, <command>mysqladmin</command> defaults to using a Unix
+      socket file connection rather than TCP/IP. From MySQL 4.1 onward,
+      you can explicitly specify the connection protocol to use by using
+      the <option>--protocol={TCP|SOCKET|PIPE|MEMORY}</option> option.
+    </para>
+
+    <para>
+      You don't have to compile a new MySQL server just to start with a
+      different Unix socket file and TCP/IP port number. It is also
+      possible to use the same server binary and start each invocation
+      of it with different parameter values at runtime. One way to do so
+      is by using command-line options:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mysqld_safe --socket=<replaceable>file_name</replaceable> --port=<replaceable>port_number</replaceable></userinput>
+</programlisting>
+
+    <para>
+      To start a second server, provide different
+      <option>--socket</option> and <option>--port</option> option
+      values, and pass a
+      <option>--datadir=<replaceable>path</replaceable></option> option
+      to <command>mysqld_safe</command> so that the server uses a
+      different data directory.
+    </para>
+
+    <para>
+      Another way to achieve a similar effect is to use environment
+      variables to set the Unix socket filename and TCP/IP port number:
+    </para>
+
+    <indexterm>
+      <primary>MYSQL_UNIX_PORT environment variable</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>MYSQL_TCP_PORT environment variable</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>environment variable</primary>
+      <secondary>MYSQL_UNIX_PORT</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>environment variable</primary>
+      <secondary>MYSQL_TCP_PORT</secondary>
+    </indexterm>
+
+<programlisting>
+shell&gt; <userinput>MYSQL_UNIX_PORT=/tmp/mysqld-new.sock</userinput>
+shell&gt; <userinput>MYSQL_TCP_PORT=3307</userinput>
+shell&gt; <userinput>export MYSQL_UNIX_PORT MYSQL_TCP_PORT</userinput>
+shell&gt; <userinput>mysql_install_db --user=mysql</userinput>
+shell&gt; <userinput>mysqld_safe --datadir=/path/to/datadir &amp;</userinput>
+</programlisting>
+
+    <para>
+      This is a quick way of starting a second server to use for
+      testing. The nice thing about this method is that the environment
+      variable settings apply to any client programs that you invoke
+      from the same shell. Thus, connections for those clients are
+      automatically directed to the second server.
+    </para>
+
+    <para>
+      <xref linkend="environment-variables"/>, includes a list of other
+      environment variables you can use to affect
+      <command>mysqld</command>.
+    </para>
+
+    <para>
+      For automatic server execution, the startup script that is
+      executed at boot time should execute the following command once
+      for each server with an appropriate option file path for each
+      command:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mysqld_safe --defaults-file=<replaceable>file_name</replaceable></userinput>
+</programlisting>
+
+    <para>
+      Each option file should contain option values specific to a given
+      server.
+    </para>
+
+    <para>
+      On Unix, the <command>mysqld_multi</command> script is another way
+      to start multiple servers. See <xref linkend="mysqld-multi"/>.
+    </para>
+
+  </section>
+
+  <section id="multiple-server-clients">
+
+    <title>Using Client Programs in a Multiple-Server Environment</title>
+
+    <para>
+      To connect with a client program to a MySQL server that is
+      listening to different network interfaces from those compiled into
+      your client, you can use one of the following methods:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          Start the client with
+          <option>--host=<replaceable>host_name</replaceable>
+          --port=<replaceable>port_number</replaceable></option> to
+          connect via TCP/IP to a remote server, with
+          <option>--host=127.0.0.1
+          --port=<replaceable>port_number</replaceable></option> to
+          connect via TCP/IP to a local server, or with
+          <option>--host=localhost
+          --socket=<replaceable>file_name</replaceable></option> to
+          connect to a local server via a Unix socket file or a Windows
+          named pipe.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          As of MySQL 4.1, start the client with
+          <option>--protocol=TCP</option> to connect via TCP/IP,
+          <option>--protocol=SOCKET</option> to connect via a Unix
+          socket file, <option>--protocol=PIPE</option> to connect via a
+          named pipe, or <option>--protocol=MEMORY</option> to connect
+          via shared memory. For TCP/IP connections, you may also need
+          to specify <option>--host</option> and <option>--port</option>
+          options. For the other types of connections, you may need to
+          specify a <option>--socket</option> option to specify a Unix
+          socket file or Windows named-pipe name, or a
+          <option>--shared-memory-base-name</option> option to specify
+          the shared-memory name. Shared-memory connections are
+          supported only on Windows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>MYSQL_UNIX_PORT environment variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>MYSQL_TCP_PORT environment variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>environment variable</primary>
+            <secondary>MYSQL_UNIX_PORT</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>environment variable</primary>
+            <secondary>MYSQL_TCP_PORT</secondary>
+          </indexterm>
+
+          On Unix, set the <literal>MYSQL_UNIX_PORT</literal> and
+          <literal>MYSQL_TCP_PORT</literal> environment variables to
+          point to the Unix socket file and TCP/IP port number before
+          you start your clients. If you normally use a specific socket
+          file or port number, you can place commands to set these
+          environment variables in your <filename>.login</filename> file
+          so that they apply each time you log in. See
+          <xref linkend="environment-variables"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>C:\my.cnf file</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>.my.cnf file</primary>
+          </indexterm>
+
+          Specify the default Unix socket file and TCP/IP port number in
+          the <literal>[client]</literal> group of an option file. For
+          example, you can use <filename>C:\my.cnf</filename> on
+          Windows, or the <filename>.my.cnf</filename> file in your home
+          directory on Unix. See <xref linkend="option-files"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          In a C program, you can specify the socket file or port number
+          arguments in the
+          <literal role="cfunc">mysql_real_connect()</literal> call. You
+          can also have the program read option files by calling
+          <literal role="cfunc">mysql_options()</literal>. See
+          <xref linkend="c-api-functions"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          If you are using the Perl <literal>DBD::mysql</literal>
+          module, you can read options from MySQL option files. For
+          example:
+        </para>
+
+<programlisting>
+$dsn = &quot;DBI:mysql:test;mysql_read_default_group=client;&quot;
+        . &quot;mysql_read_default_file=/usr/local/mysql/data/my.cnf&quot;;
+$dbh = DBI-&gt;connect($dsn, $user, $password);
+</programlisting>
+
+        <para>
+          See <xref linkend="apis-perl"/>.
+        </para>
+
+        <para>
+          Other programming interfaces may provide similar capabilities
+          for reading option files.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        Subscribers to MySQL Enterprise will find additional information
+        on running multiple MySQL servers on one machine in the MySQL
+        Enterprise Knowledge Base article found at
+        <ulink url="https://kb.mysql.com/view.php?id=4926"/>.
+      </para>
+
+    </formalpara>
+
+  </section>
+
+</section>


Added: trunk/refman-5.0/dba-mysqld-server-core.xml
===================================================================
--- trunk/refman-5.0/dba-mysqld-server-core.xml	                        (rev 0)
+++ trunk/refman-5.0/dba-mysqld-server-core.xml	2008-12-07 13:48:24 UTC (rev 12826)
Changed blocks: 1, Lines Added: 13432, Lines Deleted: 0; 451132 bytes

@@ -0,0 +1,13432 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+<!ENTITY % all.entities SYSTEM "all-entities.ent">
+  %all.entities;
+]>
+<section id="mysqld-server">
+
+  <title>The MySQL Server</title>
+
+  <indexterm>
+    <primary>mysqld</primary>
+    <secondary>MySQL server</secondary>
+  </indexterm>
+
+  <indexterm>
+    <primary>MySQL server</primary>
+    <secondary>mysqld</secondary>
+  </indexterm>
+
+  <remark role="dynamic-dependency-list"/>
+
+  <para>
+    <command>mysqld</command> is the MySQL server. The following
+    discussion covers these MySQL server configuration topics:
+  </para>
+
+  <itemizedlist>
+
+    <listitem>
+      <para>
+        Startup options that the server supports
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        Server system variables
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        Server status variables
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        How to set the server SQL mode
+      </para>
+    </listitem>
+
+    <listitem>
+      <para>
+        The server shutdown process
+      </para>
+    </listitem>
+
+  </itemizedlist>
+
+  <note>
+    <para>
+      Not all storage engines are supported by all MySQL server binaries
+      and configurations. To find out how to determine which storage
+      engines are supported by your MySQL server installation, see
+      <xref linkend="show-engines"/>.
+    </para>
+  </note>
+
+  <section id="mysqld-option-tables">
+
+    <title>Server Option and Variable Reference</title>
+
+    <para>
+      The following table provides a list of all the command line
+      options, server and status variables applicable within
+      <literal>mysqld</literal>.
+    </para>
+
+    <para>
+      The table lists command-line options (Cmd-line), options valid in
+      configuration files (Option file), server system variables (System
+      Var), and status variables (Status var) in one unified list, with
+      notification of where each option/variable is valid. If a server
+      option set on the command line or in an option file differs from
+      the name of the corresponding server system or status variable,
+      the variable name is noted immediately below the corresponding
+      option. For status variables, the scope of the variable is shown
+      (Scope) as either global, session, or both. Please see the
+      corresponding sections for details on setting and using the
+      options and variables. Where appropriate, a direct link to further
+      information on the item as available.
+    </para>
+
+    <para condition="dynamic:optvar:fullsummary" role="5.0:mysqld:all:Option/Variable Summary"/>
+
+  </section>
+
+  <section id="server-options">
+
+    <title>Server Command Options</title>
+
+    <indexterm>
+      <primary>command options</primary>
+      <secondary>mysqld</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>mysqld</primary>
+      <secondary>command options</secondary>
+    </indexterm>
+
+    <para>
+      When you start the <command>mysqld</command> server, you can
+      specify program options using any of the methods described in
+      <xref linkend="program-options"/>. The most common methods are to
+      provide options in an option file or on the command line. However,
+      in most cases it is desirable to make sure that the server uses
+      the same options each time it runs. The best way to ensure this is
+      to list them in an option file. See
+      <xref linkend="option-files"/>.
+    </para>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        For expert advice on setting command options, subscribe to the
+        MySQL Enterprise Monitor. For more information, see
+        <ulink url="advisors.html"/>.
+      </para>
+
+    </formalpara>
+
+    <para>
+      <command>mysqld</command> reads options from the
+      <literal>[mysqld]</literal> and <literal>[server]</literal>
+      groups. <command>mysqld_safe</command> reads options from the
+      <literal>[mysqld]</literal>, <literal>[server]</literal>,
+      <literal>[mysqld_safe]</literal>, and
+      <literal>[safe_mysqld]</literal> groups.
+      <command>mysql.server</command> reads options from the
+      <literal>[mysqld]</literal> and <literal>[mysql.server]</literal>
+      groups.
+    </para>
+
+    <para>
+      An embedded MySQL server usually reads options from the
+      <literal>[server]</literal>, <literal>[embedded]</literal>, and
+      <literal>[<replaceable>xxxxx</replaceable>_SERVER]</literal>
+      groups, where <replaceable>xxxxx</replaceable> is the name of the
+      application into which the server is embedded.
+    </para>
+
+    <para>
+      <command>mysqld</command> accepts many command options. For a
+      brief summary, execute <command>mysqld --help</command>. To see
+      the full list, use <command>mysqld --verbose --help</command>.
+    </para>
+
+    <para>
+      The following list shows some of the most common server options.
+      Additional options are described in other sections:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          Options that affect security: See
+          <xref linkend="privileges-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          SSL-related options: See <xref linkend="ssl-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Binary log control options: See
+          <xref linkend="replication-options-binary-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Replication-related options: See
+          <xref linkend="replication-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Options specific to particular storage engines: See
+          <xref linkend="myisam-start"/>, <xref linkend="bdb-start"/>,
+          <xref linkend="innodb-parameters"/>, and
+          <xref linkend="mysql-cluster-mysqld-command-options"/>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      You can also set the values of server system variables by using
+      variable names as options, as described at the end of this
+      section.
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para id="option_mysqld_help">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>help option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>help option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--help</option>, <option>-?</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:help"/>
+
+        <para>
+          Display a short help message and exit. Use both the
+          <option>--verbose</option> and <option>--help</option> options
+          to see the full message.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_abort-slave-event-count">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>abort-slave-event-count option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>abort-slave-event-count option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--abort-slave-event-count</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:abort-slave-event-count"/>
+
+        <para>
+          When this option is set to some positive integer
+          <replaceable>value</replaceable> other than 0 (the default) it
+          affects replication behavior as follows: After the slave SQL
+          thread has started, <replaceable>value</replaceable> log
+          events are allowed to be executed; after that, the slave SQL
+          thread does not receive any more events, just as if the
+          network connection from the master were cut. The slave thread
+          continues to run, and the output from
+          <literal role="stmt">SHOW SLAVE STATUS</literal> displays
+          <literal>Yes</literal> in both the
+          <literal>Slave_IO_Running</literal> and the
+          <literal>Slave_SQL_Running</literal> columns, but no further
+          events are read from the relay log.
+        </para>
+
+        <para>
+          This option is used internally by the MySQL test suite for
+          replication testing and debugging. It is not intended for use
+          in a production setting.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_allow-suspicious-udfs">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>allow-suspicious-udfs option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>allow-suspicious-udfs option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--allow-suspicious-udfs</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:allow-suspicious-udfs"/>
+
+        <para>
+          This option controls whether user-defined functions that have
+          only an <literal>xxx</literal> symbol for the main function
+          can be loaded. By default, the option is off and only UDFs
+          that have at least one auxiliary symbol can be loaded; this
+          prevents attempts at loading functions from shared object
+          files other than those containing legitimate UDFs. This option
+          was added in version 5.0.3. See
+          <xref linkend="udf-security"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_ansi">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>ansi option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>ansi option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--ansi</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ansi"/>
+
+        <para>
+          Use standard (ANSI) SQL syntax instead of MySQL syntax. For
+          more precise control over the server SQL mode, use the
+          <option>--sql-mode</option> option instead. See
+          <xref linkend="ansi-mode"/>, and
+          <xref linkend="server-sql-mode"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_basedir">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>basedir option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>basedir option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--basedir=<replaceable>path</replaceable></option>,
+          <option>-b <replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:basedir"/>
+
+        <para>
+          The path to the MySQL installation directory. All paths are
+          usually resolved relative to this directory.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_big-tables">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>big-tables option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>big-tables option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--big-tables</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:big-tables"/>
+
+        <para>
+          Allow large result sets by saving all temporary sets in files.
+          This option prevents most <quote>table full</quote> errors,
+          but also slows down queries for which in-memory tables would
+          suffice. Since MySQL 3.23.2, the server is able to handle
+          large result sets automatically by using memory for small
+          temporary tables and switching to disk tables where necessary.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bind-address">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>bind-address option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>bind-address option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--bind-address=<replaceable>IP</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bind-address"/>
+
+        <para>
+          The IP address to bind to. Only one address can be selected.
+          If this option is specified multiple times, the last address
+          given is used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bootstrap">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>bootstrap option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>bootstrap option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--bootstrap</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bootstrap"/>
+
+        <para>
+          This option is used by the <command>mysql_install_db</command>
+          script to create the MySQL privilege tables without having to
+          start a full MySQL server.
+        </para>
+
+        <para>
+          This option is unavailable if MySQL was configured with the
+          <option>--disable-grant-options</option> option. See
+          <xref linkend="configure-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_character-sets-dir">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>character-sets-dir option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>character-sets-dir option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--character-sets-dir=<replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-sets-dir"/>
+
+        <para>
+          The directory where character sets are installed. See
+          <xref linkend="charset-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_character-set-client-handshake">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>character-set-client-handshake option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>character-set-client-handshake option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--character-set-client-handshake</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-set-client-handshake"/>
+
+        <para>
+          Don't ignore character set information sent by the client. To
+          ignore client information and use the default server character
+          set, use
+          <option>--skip-character-set-client-handshake</option>; this
+          makes MySQL behave like MySQL 4.0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_character-set-filesystem">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>character-set-filesystem option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>character-set-filesystem option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--character-set-filesystem=<replaceable>charset_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-set-filesystem"/>
+
+        <para>
+          The filesystem character set. This option sets the
+          <literal role="sysvar">character_set_filesystem</literal>
+          system variable. It was added in MySQL 5.0.19.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_character-set-server">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>character-set-server option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>character-set-server option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--character-set-server=<replaceable>charset_name</replaceable></option>,
+          <option>-C <replaceable>charset_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-set-server"/>
+
+        <para>
+          Use <replaceable>charset_name</replaceable> as the default
+          server character set. See
+          <xref linkend="charset-configuration"/>. If you use this
+          option to specify a non-default character set, you should also
+          use <option>--collation-server</option> to specify the
+          collation.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_chroot">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>chroot option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>chroot option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--chroot=<replaceable>path</replaceable></option>,
+          <option>-r <replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:chroot"/>
+
+        <para>
+          Put the <command>mysqld</command> server in a closed
+          environment during startup by using the
+          <literal>chroot()</literal> system call. This is a recommended
+          security measure. Note that use of this option somewhat limits
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> and <literal>SELECT ... INTO
+          OUTFILE</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_collation-server">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>collation-server option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>collation-server option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--collation-server=<replaceable>collation_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:collation-server"/>
+
+        <para>
+          Use <replaceable>collation_name</replaceable> as the default
+          server collation. See <xref linkend="charset-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_console">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>console option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>console option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--console</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:console"/>
+
+        <para>
+          (Windows only.) Write error log messages to
+          <literal>stderr</literal> and <literal>stdout</literal> even
+          if <option>--log-error</option> is specified.
+          <command>mysqld</command> does not close the console window if
+          this option is used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_core-file">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>core-file option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>core-file option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--core-file</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:core-file"/>
+
+        <para>
+          Write a core file if <command>mysqld</command> dies. For some
+          systems, you must also specify the
+          <option>--core-file-size</option> option to
+          <command>mysqld_safe</command>. See
+          <xref linkend="mysqld-safe"/>. Note that on some systems, such
+          as Solaris, you do not get a core file if you are also using
+          the <option>--user</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_datadir">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>datadir option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>datadir option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--datadir=<replaceable>path</replaceable></option>,
+          <option>-h <replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:datadir"/>
+
+        <para>
+          The path to the data directory.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_debug">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>debug option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>debug option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--debug[=<replaceable>debug_options</replaceable>]</option>,
+          <option>-# [<replaceable>debug_options</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:debug"/>
+
+        <para>
+          If MySQL is configured with <option>--with-debug</option>, you
+          can use this option to get a trace file of what
+          <command>mysqld</command> is doing. The
+          <replaceable>debug_options</replaceable> string often is
+          <literal>'d:t:o,<replaceable>file_name</replaceable>'</literal>.
+          The default is <literal>'d:t:i:o,mysqld.trace'</literal>. See
+          <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+          Internals: Porting</ulink>.
+        </para>
+
+        <para>
+          As of MySQL 5.0.25, using <option>--with-debug</option> to
+          configure MySQL with debugging support enables you to use the
+          <option>--debug=&quot;d,parser_debug&quot;</option> option
+          when you start the server. This causes the Bison parser that
+          is used to process SQL statements to dump a parser trace to
+          the server's standard error output. Typically, this output is
+          written to the error log.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_default-character-set">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>default-character-set option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>default-character-set option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--default-character-set=<replaceable>charset_name</replaceable></option>
+          (<emphasis>DEPRECATED</emphasis>)
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default-character-set"/>
+
+        <para>
+          Use <replaceable>charset_name</replaceable> as the default
+          character set. This option is deprecated in favor of
+          <option>--character-set-server</option>. See
+          <xref linkend="charset-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_default-collation">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>default-collation option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>default-collation option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--default-collation=<replaceable>collation_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default-collation"/>
+
+        <para>
+          Use <replaceable>collation_name</replaceable> as the default
+          collation. This option is deprecated in favor of
+          <option>--collation-server</option>. See
+          <xref linkend="charset-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_default-storage-engine">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>default-storage-engine option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>default-storage-engine option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--default-storage-engine=<replaceable>type</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default-storage-engine"/>
+
+        <para>
+          Set the default storage engine (table type) for tables. See
+          <xref linkend="storage-engines"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_default-table-type">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>default-table-type option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>default-table-type option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--default-table-type=<replaceable>type</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default-table-type"/>
+
+        <para>
+          This option is a deprecated synonym for
+          <option>--default-storage-engine</option>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_default-time-zone">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>default-time-zone option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>default-time-zone option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--default-time-zone=<replaceable>timezone</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default-time-zone"/>
+
+        <para>
+          Set the default server time zone. This option sets the global
+          <literal role="sysvar">time_zone</literal> system variable. If
+          this option is not given, the default time zone is the same as
+          the system time zone (given by the value of the
+          <literal role="sysvar">system_time_zone</literal> system
+          variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_delay-key-write">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>delay-key-write option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>delay-key-write option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--delay-key-write[={OFF|ON|ALL}]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:delay-key-write"/>
+
+        <para>
+          Specify how to use delayed key writes. Delayed key writing
+          causes key buffers not to be flushed between writes for
+          <literal>MyISAM</literal> tables. <literal>OFF</literal>
+          disables delayed key writes. <literal>ON</literal> enables
+          delayed key writes for those tables that were created with the
+          <literal>DELAY_KEY_WRITE</literal> option.
+          <literal>ALL</literal> delays key writes for all
+          <literal>MyISAM</literal> tables. See
+          <xref linkend="server-parameters"/>, and
+          <xref linkend="myisam-start"/>.
+        </para>
+
+        <note>
+          <para>
+            If you set this variable to <literal>ALL</literal>, you
+            should not use <literal>MyISAM</literal> tables from within
+            another program (such as another MySQL server or
+            <command>myisamchk</command>) when the tables are in use.
+            Doing so leads to index corruption.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_des-key-file">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>des-key-file option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>des-key-file option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--des-key-file=<replaceable>file_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:des-key-file"/>
+
+        <para>
+          Read the default DES keys from this file. These keys are used
+          by the <literal role="func">DES_ENCRYPT()</literal> and
+          <literal role="func">DES_DECRYPT()</literal> functions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_enable-named-pipe">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>enable-named-pipe option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>enable-named-pipe option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--enable-named-pipe</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:enable-named-pipe"/>
+
+        <para>
+          Enable support for named pipes. This option can be used only
+          with the <command>mysqld-nt</command> and
+          <command>mysqld-debug</command> servers that support
+          named-pipe connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_enable-pstack">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>enable-pstack option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>enable-pstack option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--enable-pstack</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:enable-pstack"/>
+
+        <para>
+          Print a symbolic stack trace on failure.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_engine-condition-pushdown">
+          <literal>--engine-condition-pushdown={ON|OFF}</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:engine-condition-pushdown"/>
+
+        <para>
+          When the value of this option is 0 (<literal>OFF</literal>), a
+          query such as <literal>SELECT * FROM t WHERE mycol =
+          42</literal>, where <literal>mycol</literal> is a non-indexed
+          column, is executed as a full table scan. The storage engine
+          sends every row to the MySQL server, which applies the
+          <literal>WHERE</literal> condition. If
+          <literal>engine_condition_pushdown</literal> is set to 1
+          (<literal>ON</literal>), the condition is <quote>pushed
+          down</quote> to the storage engine, which uses the condition
+          to perform the scan, and sends back to the MySQL server only
+          those rows that match the condition. By default, this variable
+          is <literal>OFF</literal>.
+        </para>
+
+        <para>
+          In MySQL &current-series;, this option is useful only with the
+          <literal>NDBCLUSTER</literal> storage engine. However, we
+          intend to implement it for additional storage engines in
+          future MySQL releases.
+        </para>
+
+        <para>
+          Setting this option to <literal>ON</literal> on a MySQL Server
+          acting as a MySQL Cluster SQL node causes
+          <literal>WHERE</literal> conditions on unindexed columns to be
+          evaluated on the cluster's data nodes and only the rows that
+          match to be sent back to the SQL node that issued the query.
+          This means the amount of cluster data that must be sent over
+          the network is greatly reduced, increasing the efficiency with
+          which results are returned.
+        </para>
+
+        <para>
+          For more information, see
+          <xref linkend="condition-pushdown-optimization"/>.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_exit-info">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>exit-info option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>exit-info option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--exit-info[=<replaceable>flags</replaceable>]</option>,
+          <option>-T [<replaceable>flags</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:exit-info"/>
+
+        <para>
+          This is a bit mask of different flags that you can use for
+          debugging the <command>mysqld</command> server. Do not use
+          this option unless you know <emphasis>exactly</emphasis> what
+          it does!
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_external-locking">
+          <indexterm>
+            <primary>external locking</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>locking</primary>
+            <secondary>external</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>external-locking option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>external-locking option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--external-locking</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:external-locking"/>
+
+        <para>
+          Enable external locking (system locking), which is disabled by
+          default as of MySQL 4.0. Note that if you use this option on a
+          system on which <literal>lockd</literal> does not fully work
+          (such as Linux), it is easy for <command>mysqld</command> to
+          deadlock. This option previously was named
+          <option>--enable-locking</option>.
+        </para>
+
+        <para>
+          For more information about external locking, including
+          conditions under which it can and cannot be used, see
+          <xref linkend="external-locking"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_flush">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>flush option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>flush option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--flush</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:flush"/>
+
+        <para>
+          Flush (synchronize) all changes to disk after each SQL
+          statement. Normally, MySQL does a write of all changes to disk
+          only after each SQL statement and lets the operating system
+          handle the synchronizing to disk. See
+          <xref linkend="crashing"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_gdb">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>gdb option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>gdb option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--gdb</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:gdb"/>
+
+        <para>
+          Install an interrupt handler for <literal>SIGINT</literal>
+          (needed to stop <command>mysqld</command> with
+          <literal>^C</literal> to set breakpoints) and disable stack
+          tracing and core file handling. See
+          <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+          Internals: Porting</ulink>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_init-file">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>init-file option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>init-file option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--init-file=<replaceable>file_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:init-file"/>
+
+        <para>
+          Read SQL statements from this file at startup. Each statement
+          must be on a single line and should not include comments.
+        </para>
+
+        <para>
+          This option is unavailable if MySQL was configured with the
+          <option>--disable-grant-options</option> option. See
+          <xref linkend="configure-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_innodb-safe-binlog">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>innodb-safe-binlog option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>innodb-safe-binlog option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--innodb-safe-binlog</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:innodb-safe-binlog"/>
+
+        <para>
+          Adds consistency guarantees between the content of
+          <literal>InnoDB</literal> tables and the binary log. See
+          <xref linkend="binary-log"/>. This option was removed in MySQL
+          5.0.3, having been made obsolete by the introduction of XA
+          transaction support.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <option>--innodb-<replaceable>xxx</replaceable></option>
+        </para>
+
+        <para>
+          The <literal>InnoDB</literal> options are listed in
+          <xref linkend="innodb-parameters"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_language">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>language option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>language option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--language=<replaceable>lang_name</replaceable>, -L
+          <replaceable>lang_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:language"/>
+
+        <para>
+          Return client error messages in the given language.
+          <replaceable>lang_name</replaceable> can be given as the
+          language name or as the full pathname to the directory where
+          the language files are installed. See
+          <xref linkend="error-message-language"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_large-pages">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>large-pages option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>large-pages option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--large-pages</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:large-pages"/>
+
+        <para>
+          Some hardware/operating system architectures support memory
+          pages greater than the default (usually 4KB). The actual
+          implementation of this support depends on the underlying
+          hardware and OS. Applications that perform a lot of memory
+          accesses may obtain performance improvements by using large
+          pages due to reduced Translation Lookaside Buffer (TLB)
+          misses.
+        </para>
+
+        <para>
+          Currently, MySQL supports only the Linux implementation of
+          large pages support (which is called HugeTLB in Linux). We
+          have plans to extend this support to FreeBSD, Solaris and
+          possibly other platforms.
+        </para>
+
+        <para>
+          Before large pages can be used on Linux, it is necessary to
+          configure the HugeTLB memory pool. For reference, consult the
+          <filename>hugetlbpage.txt</filename> file in the Linux kernel
+          source.
+        </para>
+
+        <para>
+          This option is disabled by default. It was added in MySQL
+          5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log[=<replaceable>file_name</replaceable>]</option>,
+          <option>-l [<replaceable>file_name</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log"/>
+
+        <para>
+          Log connections and SQL statements received from clients to
+          this file. See <xref linkend="query-log"/>. If you omit the
+          filename, MySQL uses
+          <filename><replaceable>host_name</replaceable>.log</filename>
+          as the filename.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-error">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-error option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-error option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-error[=<replaceable>file_name</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-error"/>
+
+        <para>
+          Log errors and startup messages to this file. See
+          <xref linkend="error-log"/>. If you omit the filename, MySQL
+          uses
+          <filename><replaceable>host_name</replaceable>.err</filename>.
+          If the filename has no extension, the server adds an extension
+          of <filename>.err</filename>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-isam">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-isam option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-isam option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-isam[=<replaceable>file_name</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-isam"/>
+
+        <para>
+          Log all <literal>MyISAM</literal> changes to this file (used
+          only when debugging <literal>MyISAM</literal>).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-long-format">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-long-format option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-long-format option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-long-format</option>
+          (<emphasis>DEPRECATED</emphasis>)
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-long-format"/>
+
+        <para>
+          Log extra information to the update log, binary update log,
+          and slow query log, if they have been activated. For example,
+          the username and timestamp are logged for all queries. This
+          option is deprecated, as it now represents the default logging
+          behavior. (See the description for
+          <option>--log-short-format</option>.) The
+          <option>--log-queries-not-using-indexes</option> option is
+          available for the purpose of logging queries that do not use
+          indexes to the slow query log.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-queries-not-using-indexes">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-queries-not-using-indexes option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-queries-not-using-indexes option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-queries-not-using-indexes</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-queries-not-using-indexes"/>
+
+        <para>
+          If you are using this option with the slow query log enabled,
+          queries that are expected to retrieve all rows are logged. See
+          <xref linkend="slow-query-log"/>. This option does not
+          necessarily mean that no index is used. For example, a query
+          that uses a full index scan uses an index but would be logged
+          because the index would not limit the number of rows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-short-format">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-short-format option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-short-format option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-short-format</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-short-format"/>
+
+        <para>
+          Log less information to the update log, binary update log, and
+          slow query log, if they have been activated. For example, the
+          username and timestamp are not logged for queries.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-slow-admin-statements">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-slow-admin-statements option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-slow-admin-statements option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-slow-admin-statements</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-slow-admin-statements"/>
+
+        <para>
+          Log slow administrative statements such as
+          <literal role="stmt">OPTIMIZE TABLE</literal>,
+          <literal role="stmt">ANALYZE TABLE</literal>, and
+          <literal role="stmt">ALTER TABLE</literal> to the slow query
+          log.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-slow-queries">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-slow-queries option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-slow-queries option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-slow-queries[=<replaceable>file_name</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-slow-queries"/>
+
+        <para>
+          Log all queries that have taken more than
+          <literal role="sysvar">long_query_time</literal> seconds to
+          execute to this file. See <xref linkend="slow-query-log"/>.
+          See the descriptions of the <option>--log-long-format</option>
+          and <option>--log-short-format</option> options for details.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-tc">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-tc option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-tc option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-tc=<replaceable>file_name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-tc"/>
+
+        <para>
+          The name of the memory-mapped transaction coordinator log file
+          (for XA transactions that affect multiple storage engines when
+          the binary log is disabled). The default name is
+          <filename>tc.log</filename>. The file is created under the
+          data directory if not given as a full pathname. Currently,
+          this option is unused. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-tc-size">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-tc-size option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-tc-size option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-tc-size=<replaceable>size</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-tc-size"/>
+
+        <para>
+          The size in bytes of the memory-mapped transaction coordinator
+          log. The default size is 24KB. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_log-warnings">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>log-warnings option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>log-warnings option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--log-warnings[=<replaceable>level</replaceable>]</option>,
+          <option>-W [<replaceable>level</replaceable>]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-warnings"/>
+
+        <para>
+          Print out warnings such as <literal>Aborted
+          connection...</literal> to the error log. Enabling this option
+          is recommended, for example, if you use replication (you get
+          more information about what is happening, such as messages
+          about network failures and reconnections). This option is
+          enabled (1) by default, and the default
+          <replaceable>level</replaceable> value if omitted is 1. To
+          disable this option, use <option>--log-warnings=0</option>. If
+          the value is greater than 1, aborted connections are written
+          to the error log. See <xref linkend="communication-errors"/>.
+        </para>
+
+        <para>
+          If a slave server was started with
+          <option>--log-warnings</option> enabled, the slave prints
+          messages to the error log to provide information about its
+          status, such as the binary log and relay log coordinates where
+          it starts its job, when it is switching to another relay log,
+          when it reconnects after a disconnect, and so forth.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_low-priority-updates">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>low-priority-updates option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>low-priority-updates option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--low-priority-updates</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:low-priority-updates"/>
+
+        <para>
+          Give table-modifying operations
+          (<literal role="stmt">INSERT</literal>,
+          <literal role="stmt">REPLACE</literal>,
+          <literal role="stmt">DELETE</literal>,
+          <literal role="stmt">UPDATE</literal>) lower priority than
+          selects. This can also be done via <literal>{INSERT | REPLACE
+          | DELETE | UPDATE} LOW_PRIORITY ...</literal> to lower the
+          priority of only one query, or by <literal>SET
+          LOW_PRIORITY_UPDATES=1</literal> to change the priority in one
+          thread. This affects only storage engines that use only
+          table-level locking (<literal>MyISAM</literal>,
+          <literal>MEMORY</literal>, <literal>MERGE</literal>). See
+          <xref linkend="table-locking"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_memlock">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>memlock option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>memlock option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--memlock</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:memlock"/>
+
+        <para>
+          Lock the <command>mysqld</command> process in memory. This
+          option might help if you have a problem where the operating
+          system is causing <command>mysqld</command> to swap to disk.
+        </para>
+
+        <para>
+          <option>--memlock</option> works on systems that support the
+          <literal>mlockall()</literal> system call; this includes
+          Solaris as well as most Linux distributions that use a 2.4 or
+          newer kernel. On Linux systems, you can tell whether or not
+          <literal>mlockall()</literal> (and thus this option) is
+          supported by checking to see whether or not it is defined in
+          the system <filename>mman.h</filename> file, like this:
+
+<programlisting>
+shell&gt; <userinput>grep mlockall /usr/include/sys/mman.h</userinput> 
+</programlisting>
+        </para>
+
+        <para>
+          If <literal>mlockall()</literal> is supported, you should see
+          in the output of the previous command something like the
+          following:
+
+<programlisting>
+extern int mlockall (int __flags) __THROW;
+</programlisting>
+        </para>
+
+        <important>
+          <para>
+            Using this option requires that you run the server as
+            <literal>root</literal>, which, for reasons of security, is
+            normally not a good idea. See
+            <xref linkend="changing-mysql-user"/>.
+          </para>
+
+          <para>
+            You must not try to use this option on a system that does
+            not support the <literal>mlockall()</literal> system call;
+            if you do so, <command>mysqld</command> will very likely
+            crash as soon as you try to start it.
+          </para>
+        </important>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_myisam-recover">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>myisam-recover option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>myisam-recover option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--myisam-recover[=<replaceable>option</replaceable>[,<replaceable>option</replaceable>]...]]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam-recover"/>
+
+        <para>
+          Set the <literal>MyISAM</literal> storage engine recovery
+          mode. The option value is any combination of the values of
+          <literal>DEFAULT</literal>, <literal>BACKUP</literal>,
+          <literal>FORCE</literal>, or <literal>QUICK</literal>. If you
+          specify multiple values, separate them by commas. Specifying
+          the option with no argument is the same as specifying
+          <literal>DEFAULT</literal>, and specifying with an explicit
+          value of <literal>&quot;&quot;</literal> disables recovery
+          (same as not giving the option). If recovery is enabled, each
+          time <command>mysqld</command> opens a
+          <literal>MyISAM</literal> table, it checks whether the table
+          is marked as crashed or wasn't closed properly. (The last
+          option works only if you are running with external locking
+          disabled.) If this is the case, <command>mysqld</command> runs
+          a check on the table. If the table was corrupted,
+          <command>mysqld</command> attempts to repair it.
+        </para>
+
+        <para>
+          The following options affect how the repair works:
+        </para>
+
+        <informaltable>
+          <tgroup cols="2">
+            <colspec colwidth="15*"/>
+            <colspec colwidth="70*"/>
+            <tbody>
+              <row>
+                <entry><emphasis role="bold">Option</emphasis></entry>
+                <entry><emphasis role="bold">Description</emphasis></entry>
+              </row>
+              <row>
+                <entry><literal>DEFAULT</literal></entry>
+                <entry>Recovery without backup, forcing, or quick checking.</entry>
+              </row>
+              <row>
+                <entry><literal>BACKUP</literal></entry>
+                <entry>If the data file was changed during recovery, save a backup of the
+                  <filename><replaceable>tbl_name</replaceable>.MYD</filename>
+                  file as
+                  <filename><replaceable>tbl_name-datetime</replaceable>.BAK</filename>.</entry>
+              </row>
+              <row>
+                <entry><literal>FORCE</literal></entry>
+                <entry>Run recovery even if we would lose more than one row from the
+                  <filename>.MYD</filename> file.</entry>
+              </row>
+              <row>
+                <entry><literal>QUICK</literal></entry>
+                <entry>Don't check the rows in the table if there aren't any delete blocks.</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+
+        <para>
+          Before the server automatically repairs a table, it writes a
+          note about the repair to the error log. If you want to be able
+          to recover from most problems without user intervention, you
+          should use the options <literal>BACKUP,FORCE</literal>. This
+          forces a repair of a table even if some rows would be deleted,
+          but it keeps the old data file as a backup so that you can
+          later examine what happened.
+        </para>
+
+        <para>
+          See <xref linkend="myisam-start"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_old-passwords">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>old-passwords option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>old-passwords option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--old-passwords</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:old-passwords"/>
+
+        <para>
+          Force the server to generate short (pre-4.1) password hashes
+          for new passwords. This is useful for compatibility when the
+          server must support older client programs. See
+          <xref linkend="password-hashing"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_old-style-user-limits">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>old-style-user-limits option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>old-style-user-limits option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--old-style-user-limits</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:old-style-user-limits"/>
+
+        <para>
+          Enable old-style user limits. (Before MySQL 5.0.3, account
+          resource limits were counted separately for each host from
+          which a user connected rather than per account row in the
+          <literal>user</literal> table.) See
+          <xref linkend="user-resources"/>. This option was added in
+          MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_one-thread">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>one-thread option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>one-thread option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--one-thread</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:one-thread"/>
+
+        <para>
+          Only use one thread (for debugging under Linux). This option
+          is available only if the server is built with debugging
+          enabled. See
+          <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+          Internals: Porting</ulink>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_open-files-limit">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>open-files-limit option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>open-files-limit option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--open-files-limit=<replaceable>count</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:open-files-limit"/>
+
+        <para>
+          Changes the number of file descriptors available to
+          <command>mysqld</command>. You should try increasing the value
+          of this option if <command>mysqld</command> gives you the
+          error <literal>Too many open files</literal>.
+          <command>mysqld</command> uses the option value to reserve
+          descriptors with <function>setrlimit()</function>. If the
+          requested number of file descriptors cannot be allocated,
+          <command>mysqld</command> writes a warning to the error log.
+        </para>
+
+        <para>
+          <command>mysqld</command> may attempt to allocate more than
+          the requested number of descriptors (if they are available),
+          using the values of
+          <literal role="sysvar">max_connections</literal> and
+          <literal role="sysvar">table_cache</literal> to estimate
+          whether more descriptors will be needed.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_pid-file">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>pid-file option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>pid-file option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--pid-file=<replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:pid-file"/>
+
+        <para>
+          The pathname of the process ID file. This file is used by
+          other programs such as <command>mysqld_safe</command> to
+          determine the server's process ID.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_port">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>port option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>port option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--port=<replaceable>port_num</replaceable></option>,
+          <option>-P <replaceable>port_num</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:port"/>
+
+        <para>
+          The port number to use when listening for TCP/IP connections.
+          The port number must be 1024 or higher unless the server is
+          started by the <literal>root</literal> system user.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_port-open-timeout">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>port-open-timeout option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>port-open-timeout option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--port-open-timeout=<replaceable>num</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:port-open-timeout"/>
+
+        <para>
+          On some systems, when the server is stopped, the TCP/IP port
+          might not become available immediately. If the server is
+          restarted quickly afterward, its attempt to reopen the port
+          can fail. This option indicates how many seconds the server
+          should wait for the TCP/IP port to become free if it cannot be
+          opened. The default is not to wait. This option was added in
+          MySQL 5.0.19.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_safe-mode">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>safe-mode option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>safe-mode option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--safe-mode</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:safe-mode"/>
+
+        <para>
+          Skip some optimization stages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_safe-show-database">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>safe-show-database option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>safe-show-database option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--safe-show-database</option>
+          (<emphasis>DEPRECATED</emphasis>)
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:safe-show-database"/>
+
+        <para>
+          See <xref linkend="privileges-provided"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_safe-user-create">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>safe-user-create option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>safe-user-create option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--safe-user-create</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:safe-user-create"/>
+
+        <para>
+          If this option is enabled, a user cannot create new MySQL
+          users by using the <literal role="stmt">GRANT</literal>
+          statement unless the user has the
+          <literal role="priv">INSERT</literal> privilege for the
+          <literal>mysql.user</literal> table or any column in the
+          table. If you want a user to have the ability to create new
+          users that have those privileges that the user has the right
+          to grant, you should grant the user the following privilege:
+        </para>
+
+<programlisting>
+GRANT INSERT(user) ON mysql.user TO '<replaceable>user_name</replaceable>'@'<replaceable>host_name</replaceable>';
+</programlisting>
+
+        <para>
+          This ensures that the user cannot change any privilege columns
+          directly, but has to use the
+          <literal role="stmt">GRANT</literal> statement to give
+          privileges to other users.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_secure-auth">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>secure-auth option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>secure-auth option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--secure-auth</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:secure-auth"/>
+
+        <para>
+          Disallow authentication by clients that attempt to use
+          accounts that have old (pre-4.1) passwords.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_secure-file-priv">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>secure-file-priv option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>secure-file-priv option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--secure-file-priv=<replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:secure-file-priv"/>
+
+        <para>
+          This option limits the effect of the
+          <literal role="func">LOAD_FILE()</literal> function and the
+          <literal role="stmt">LOAD DATA</literal> and <literal>SELECT
+          ... INTO OUTFILE</literal> statements to work only with files
+          in the specified directory.
+        </para>
+
+        <para>
+          This option was added in MySQL 5.0.38.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_shared-memory">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>shared-memory option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>shared-memory option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--shared-memory</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:shared-memory"/>
+
+        <para>
+          Enable shared-memory connections by local clients. This option
+          is available only on Windows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_share-memory-base-name">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>shared-memory-base-name option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>shared-memory-base-name option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--shared-memory-base-name=<replaceable>name</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:shared-memory-base-name"/>
+
+        <para>
+          The name of shared memory to use for shared-memory
+          connections. This option is available only on Windows. The
+          default name is <literal>MYSQL</literal>. The name is case
+          sensitive.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-bdb">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-bdb option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-bdb option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-bdb</option>
+        </para>
+
+        <para>
+          Disable the <literal>BDB</literal> storage engine. This saves
+          memory and might speed up some operations. Do not use this
+          option if you require <literal>BDB</literal> tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-concurrent-insert">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-concurrent-insert option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-concurrent-insert option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-concurrent-insert</option>
+        </para>
+
+        <para>
+          Turn off the ability to select and insert at the same time on
+          <literal>MyISAM</literal> tables. (This is to be used only if
+          you think you have found a bug in this feature.) See
+          <xref linkend="concurrent-inserts"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-external-locking">
+          <indexterm>
+            <primary>external locking</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>locking</primary>
+            <secondary>external</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-external-locking option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-external-locking option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-external-locking</option>
+        </para>
+
+        <para>
+          Do not use external locking (system locking). For more
+          information about external locking, including conditions under
+          which it can and cannot be used, see
+          <xref linkend="external-locking"/>.
+        </para>
+
+        <para>
+          External locking has been disabled by default since MySQL 4.0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-grant-tables">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-grant-tables option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-grant-tables option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-grant-tables</option>
+        </para>
+
+        <para>
+          This option causes the server not to use the privilege system
+          at all, which gives anyone with access to the server
+          <emphasis>unrestricted access to all databases</emphasis>. You
+          can cause a running server to start using the grant tables
+          again by executing <command>mysqladmin
+          flush-privileges</command> or <command>mysqladmin
+          reload</command> command from a system shell, or by issuing a
+          MySQL <literal role="stmt" condition="flush">FLUSH
+          PRIVILEGES</literal> statement after connecting to the server.
+          This option also suppresses loading of user-defined functions
+          (UDFs).
+        </para>
+
+        <para>
+          This option is unavailable if MySQL was configured with the
+          <option>--disable-grant-options</option> option. See
+          <xref linkend="configure-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-host-cache">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-host-cache option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-host-cache option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-host-cache</option>
+        </para>
+
+        <para>
+          Do not use the internal hostname cache for faster name-to-IP
+          resolution. Instead, query the DNS server every time a client
+          connects. See <xref linkend="dns"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-innodb">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-innodb option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-innodb option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-innodb</option>
+        </para>
+
+        <para>
+          Disable the <literal>InnoDB</literal> storage engine. This
+          saves memory and disk space and might speed up some
+          operations. Do not use this option if you require
+          <literal>InnoDB</literal> tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-merge">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-merge option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-merge option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-merge</option>
+        </para>
+
+        <para>
+          Disable the <literal>MERGE</literal> storage engine. This
+          option was added in MySQL 5.0.24. It can be used if the
+          following behavior is undesirable: If a user has access to
+          <literal>MyISAM</literal> table <replaceable>t</replaceable>,
+          that user can create a <literal>MERGE</literal> table
+          <replaceable>m</replaceable> that accesses
+          <replaceable>t</replaceable>. However, if the user's
+          privileges on <replaceable>t</replaceable> are subsequently
+          revoked, the user can continue to access
+          <replaceable>t</replaceable> by doing so through
+          <replaceable>m</replaceable>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-name-resolve">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-name-resolve option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-name-resolve option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-name-resolve</option>
+        </para>
+
+        <para>
+          Do not resolve hostnames when checking client connections. Use
+          only IP numbers. If you use this option, all
+          <literal>Host</literal> column values in the grant tables must
+          be IP numbers or <literal>localhost</literal>. See
+          <xref linkend="dns"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-networking">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-networking option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-networking option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-networking</option>
+        </para>
+
+        <para>
+          Don't listen for TCP/IP connections at all. All interaction
+          with <command>mysqld</command> must be made via named pipes or
+          shared memory (on Windows) or Unix socket files (on Unix).
+          This option is highly recommended for systems where only local
+          clients are allowed. See <xref linkend="dns"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>SSL options</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SSL options</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--ssl*</option>
+        </para>
+
+        <para>
+          Options that begin with <option>--ssl</option> specify whether
+          to allow clients to connect via SSL and indicate where to find
+          SSL keys and certificates. See <xref linkend="ssl-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_standalone">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>standalone option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>standalone option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--standalone</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:standalone"/>
+
+        <para>
+          Instructs the MySQL server not to run as a service.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_symbolic-links">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>symbolic-links option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>symbolic-links option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-symbolic-links option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-symbolic-links option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--symbolic-links</option>,
+          <option>--skip-symbolic-links</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:symbolic-links"/>
+
+        <para>
+          Enable or disable symbolic link support. This option has
+          different effects on Windows and Unix:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              On Windows, enabling symbolic links allows you to
+              establish a symbolic link to a database directory by
+              creating a
+              <filename><replaceable>db_name</replaceable>.sym</filename>
+              file that contains the path to the real directory. See
+              <xref linkend="windows-symbolic-links"/>.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              On Unix, enabling symbolic links means that you can link a
+              <literal>MyISAM</literal> index file or data file to
+              another directory with the <literal>INDEX
+              DIRECTORY</literal> or <literal>DATA DIRECTORY</literal>
+              options of the <literal role="stmt">CREATE TABLE</literal>
+              statement. If you delete or rename the table, the files
+              that its symbolic links point to also are deleted or
+              renamed. See <xref linkend="symbolic-links-to-tables"/>.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-safemalloc">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-safemalloc option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-safemalloc option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-safemalloc</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:skip-safemalloc"/>
+
+        <para>
+          If MySQL is configured with
+          <option>--with-debug=full</option>, all MySQL programs check
+          for memory overruns during each memory allocation and memory
+          freeing operation. This checking is very slow, so for the
+          server you can avoid it when you don't need it by using the
+          <option>--skip-safemalloc</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-show-database">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-show-database option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-show-database option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-show-database</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:skip-show-database"/>
+
+        <para>
+          With this option, the <literal role="stmt">SHOW
+          DATABASES</literal> statement is allowed only to users who
+          have the <literal role="priv">SHOW DATABASES</literal>
+          privilege, and the statement displays all database names.
+          Without this option, <literal role="stmt">SHOW
+          DATABASES</literal> is allowed to all users, but displays each
+          database name only if the user has the
+          <literal role="priv">SHOW DATABASES</literal> privilege or
+          some privilege for the database. Note that
+          <emphasis>any</emphasis> global privilege is considered a
+          privilege for the database.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-stack-trace">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-stack-trace option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-stack-trace option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-stack-trace</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:skip-stack-trace"/>
+
+        <para>
+          Don't write stack traces. This option is useful when you are
+          running <command>mysqld</command> under a debugger. On some
+          systems, you also must use this option to get a core file. See
+          <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+          Internals: Porting</ulink>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_skip-thread-priority">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>skip-thread-priority option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip-thread-priority option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--skip-thread-priority</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:skip-thread-priority"/>
+
+        <para>
+          Disable using thread priorities for faster response time.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_socket">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>socket option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>socket option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--socket=<replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:socket"/>
+
+        <remark>
+          The Unix description comes first because the option name
+          relates directly to the Unix meaning. Putting the Windows
+          meaning first makes this more confusing.
+        </remark>
+
+        <para>
+          On Unix, this option specifies the Unix socket file to use
+          when listening for local connections. The default value is
+          <filename>/tmp/mysql.sock</filename>. On Windows, the option
+          specifies the pipe name to use when listening for local
+          connections that use a named pipe. The default value is
+          <literal>MySQL</literal> (not case sensitive).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_sql-mode">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>sql-mode option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>sql-mode option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--sql-mode=<replaceable>value</replaceable>[,<replaceable>value</replaceable>[,<replaceable>value</replaceable>...]]</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sql-mode"/>
+
+        <para>
+          Set the SQL mode. See <xref linkend="server-sql-mode"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_sysdate-is-now">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>sysdate-is-now option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>sysdate-is-now option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--sysdate-is-now</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sysdate-is-now"/>
+
+        <para>
+          As of MySQL 5.0.13, <literal role="func">SYSDATE()</literal>
+          by default returns the time at which it executes, not the time
+          at which the statement in which it occurs begins executing.
+          This differs from the behavior of
+          <literal role="func">NOW()</literal>. This option causes
+          <literal role="func">SYSDATE()</literal> to be an alias for
+          <literal role="func">NOW()</literal>. For information about
+          the implications for binary logging and replication, see the
+          description for <literal role="func">SYSDATE()</literal> in
+          <xref linkend="date-and-time-functions"/> and for <literal>SET
+          TIMESTAMP</literal> in
+          <xref linkend="server-session-variables"/>.
+        </para>
+
+        <para>
+          This option was added in MySQL 5.0.20.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_tc-heuristic-recover">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>tc-heuristic-recover option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>tc-heuristic-recover option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--tc-heuristic-recover={COMMIT|ROLLBACK}</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:tc-heuristic-recover"/>
+
+        <para>
+          The type of decision to use in the heuristic recovery process.
+          Currently, this option is unused. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_temp-pool">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>temp-pool option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>temp-pool option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--temp-pool</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:temp-pool"/>
+
+        <para>
+          This option causes most temporary files created by the server
+          to use a small set of names, rather than a unique name for
+          each new file. This works around a problem in the Linux kernel
+          dealing with creating many new files with different names.
+          With the old behavior, Linux seems to <quote>leak</quote>
+          memory, because it is being allocated to the directory entry
+          cache rather than to the disk cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_transaction-isolation">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>transaction-isolation option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>transaction-isolation option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--transaction-isolation=<replaceable>level</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:transaction-isolation"/>
+
+        <para>
+          Sets the default transaction isolation level. The
+          <literal>level</literal> value can be
+          <literal role="isolevel">READ-UNCOMMITTED</literal>,
+          <literal role="isolevel">READ-COMMITTED</literal>,
+          <literal role="isolevel">REPEATABLE-READ</literal>, or
+          <literal role="isolevel">SERIALIZABLE</literal>. See
+          <xref linkend="set-transaction"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_tmpdir">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>tmpdir option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>tmpdir option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--tmpdir=<replaceable>path</replaceable></option>,
+          <option>-t <replaceable>path</replaceable></option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:tmpdir"/>
+
+        <para>
+          The path of the directory to use for creating temporary files.
+          It might be useful if your default <literal>/tmp</literal>
+          directory resides on a partition that is too small to hold
+          temporary tables. This option accepts several paths that are
+          used in round-robin fashion. Paths should be separated by
+          colon characters (<quote><literal>:</literal></quote>) on Unix
+          and semicolon characters (<quote><literal>;</literal></quote>)
+          on Windows, NetWare, and OS/2. If the MySQL server is acting
+          as a replication slave, you should not set
+          <option>--tmpdir</option> to point to a directory on a
+          memory-based filesystem or to a directory that is cleared when
+          the server host restarts. For more information about the
+          storage location of temporary files, see
+          <xref linkend="temporary-files"/>. A replication slave needs
+          some of its temporary files to survive a machine restart so
+          that it can replicate temporary tables or
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> operations. If files in the temporary file
+          directory are lost when the server restarts, replication
+          fails.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_user">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>user option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>user option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--user={<replaceable>user_name</replaceable>|<replaceable>user_id</replaceable>}</option>,
+          <option>-u
+          {<replaceable>user_name</replaceable>|<replaceable>user_id</replaceable>}</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:user"/>
+
+        <para>
+          Run the <command>mysqld</command> server as the user having
+          the name <replaceable>user_name</replaceable> or the numeric
+          user ID <replaceable>user_id</replaceable>.
+          (<quote>User</quote> in this context refers to a system login
+          account, not a MySQL user listed in the grant tables.)
+        </para>
+
+        <para>
+          This option is <emphasis>mandatory</emphasis> when starting
+          <command>mysqld</command> as <literal>root</literal>. The
+          server changes its user ID during its startup sequence,
+          causing it to run as that particular user rather than as
+          <literal>root</literal>. See
+          <xref linkend="security-guidelines"/>.
+        </para>
+
+        <para>
+          To avoid a possible security hole where a user adds a
+          <option>--user=root</option> option to a
+          <filename>my.cnf</filename> file (thus causing the server to
+          run as <literal>root</literal>), <command>mysqld</command>
+          uses only the first <option>--user</option> option specified
+          and produces a warning if there are multiple
+          <option>--user</option> options. Options in
+          <filename>/etc/my.cnf</filename> and
+          <filename>$MYSQL_HOME/my.cnf</filename> are processed before
+          command-line options, so it is recommended that you put a
+          <option>--user</option> option in
+          <filename>/etc/my.cnf</filename> and specify a value other
+          than <literal>root</literal>. The option in
+          <filename>/etc/my.cnf</filename> is found before any other
+          <option>--user</option> options, which ensures that the server
+          runs as a user other than <literal>root</literal>, and that a
+          warning results if any other <option>--user</option> option is
+          found.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_version">
+          <indexterm>
+            <primary>mysqld</primary>
+            <secondary>version option</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>version option</primary>
+            <secondary>mysqld</secondary>
+          </indexterm>
+
+          <option>--version</option>, <option>-V</option>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:version"/>
+
+        <para>
+          Display version information and exit.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      You can assign a value to a server system variable by using an
+      option of the form
+      <option>--<replaceable>var_name</replaceable>=<replaceable>value</replaceable></option>.
+      For example, <option>--key_buffer_size=32M</option> sets the
+      <literal role="sysvar">key_buffer_size</literal> variable to a
+      value of 32MB.
+    </para>
+
+    <para>
+      Note that when you assign a value to a variable, MySQL might
+      automatically correct the value to stay within a given range, or
+      adjust the value to the closest allowable value if only certain
+      values are allowed.
+    </para>
+
+    <para>
+      If you want to restrict the maximum value to which a variable can
+      be set at runtime with
+      <literal role="stmt" condition="set-option">SET</literal>, you can
+      define this by using the
+      <option>--maximum-<replaceable>var_name</replaceable>=<replaceable>value</replaceable></option>
+      command-line option.
+    </para>
+
+    <para>
+      It is also possible to set variables by using
+      <option>--set-variable=<replaceable>var_name</replaceable>=<replaceable>value</replaceable></option>
+      or <option>-O
+      <replaceable>var_name</replaceable>=<replaceable>value</replaceable></option>
+      syntax. <emphasis>This syntax is deprecated</emphasis>.
+    </para>
+
+    <para>
+      You can change the values of most system variables for a running
+      server with the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement. See <xref linkend="set-option"/>.
+    </para>
+
+    <para>
+      <xref linkend="server-system-variables"/>, provides a full
+      description for all variables, and additional information for
+      setting them at server startup and runtime.
+      <xref linkend="server-parameters"/>, includes information on
+      optimizing the server by tuning system variables.
+    </para>
+
+  </section>
+
+  <section id="server-system-variables">
+
+    <title>Server System Variables</title>
+
+    <indexterm>
+      <primary>system variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>server variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>variables</primary>
+      <secondary>server</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>variables</primary>
+      <secondary>system</secondary>
+    </indexterm>
+
+    <para>
+      The MySQL server maintains many system variables that indicate how
+      it is configured. Each system variable has a default value. System
+      variables can be set at server startup using options on the
+      command line or in an option file. Most of them can be changed
+      dynamically while the server is running by means of the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement, which enables you to modify operation of the server
+      without having to stop and restart it. You can refer to system
+      variable values in expressions.
+    </para>
+
+    <para>
+      There are several ways to see the names and values of system
+      variables:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          To see the values that a server will use based on its
+          compiled-in defaults and any option files that it reads, use
+          this command:
+        </para>
+
+<programlisting>
+mysqld --verbose --help
+</programlisting>
+      </listitem>
+
+      <listitem>
+        <para>
+          To see the values that a server will use based on its
+          compiled-in defaults, ignoring the settings in any option
+          files, use this command:
+        </para>
+
+<programlisting>
+mysqld --no-defaults --verbose --help
+</programlisting>
+      </listitem>
+
+      <listitem>
+        <para>
+          To see the current values used by a running server, use the
+          <literal role="stmt">SHOW VARIABLES</literal> statement.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      This section provides a description of each system variable.
+      Variables with no version indicated are present in all MySQL
+      &current-series; releases. For historical information concerning
+      their implementation, please see <ulink url="/4.1/en/"/>.
+    </para>
+
+    <para>
+      The following table lists all available system variables:
+    </para>
+
+    <para condition="dynamic:optvar:fullsummary" role="5.0:mysqld:systemvar:System Variable Summary"/>
+
+    <para>
+      For additional system variable information, see these sections:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          <xref linkend="server-session-variables"/>, describes system
+          variables that exist only as session variables (that is, they
+          do not have any global counterpart).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <xref linkend="using-system-variables"/>, discusses the syntax
+          for setting and displaying system variable values.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <xref linkend="dynamic-system-variables"/>, lists the
+          variables that can be set at runtime.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          Information on tuning system variables can be found in
+          <xref linkend="server-parameters"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <xref linkend="innodb-parameters"/>, lists
+          <literal>InnoDB</literal> system variables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <xref linkend="mysql-cluster-system-variables"/>, lists system
+          variables which are specific to MySQL Cluster.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          For information on server system variables specific to
+          replication, see <xref linkend="replication-options"/>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <note>
+      <para>
+        Some of the following variable descriptions refer to
+        <quote>enabling</quote> or <quote>disabling</quote> a variable.
+        These variables can be enabled with the
+        <literal role="stmt" condition="set-option">SET</literal>
+        statement by setting them to <literal>ON</literal> or
+        <literal>1</literal>, or disabled by setting them to
+        <literal>OFF</literal> or <literal>0</literal>. However, to set
+        such a variable on the command line or in an option file, you
+        must set it to <literal>1</literal> or <literal>0</literal>;
+        setting it to <literal>ON</literal> or <literal>OFF</literal>
+        will not work. For example, on the command line,
+        <option>--delay_key_write=1</option> works but
+        <option>--delay_key_write=ON</option> does not.
+      </para>
+    </note>
+
+    <para>
+      Values for buffer sizes, lengths, and stack sizes are given in
+      bytes unless otherwise specified.
+    </para>
+
+    <itemizedlist>
+
+      <remark role="todo">
+        Move examples to appropriate section of Replication chapter once
+        particulars of multiple-master replication setup are determined.
+        (E.g. how to CHANGE MASTER TO in such circumstances.)
+      </remark>
+
+      <listitem>
+        <para id="sysvar_automatic_sp_privileges">
+          <indexterm>
+            <primary>automatic_sp_privileges system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>automatic_sp_privileges</secondary>
+          </indexterm>
+
+          <literal role="sysvar">automatic_sp_privileges</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:automatic_sp_privileges"/>
+
+        <para>
+          When this variable has a value of 1 (the default), the server
+          automatically grants the
+          <literal role="priv">EXECUTE</literal> and
+          <literal role="priv">ALTER ROUTINE</literal> privileges to the
+          creator of a stored routine, if the user cannot already
+          execute and alter or drop the routine. (The
+          <literal role="priv">ALTER ROUTINE</literal> privilege is
+          required to drop the routine.) The server also automatically
+          drops those privileges when the creator drops the routine. If
+          <literal role="sysvar">automatic_sp_privileges</literal> is 0,
+          the server does not automatically add or drop these
+          privileges. This variable was added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_back_log">
+          <indexterm>
+            <primary>back_log system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>back_log</secondary>
+          </indexterm>
+
+          <literal role="sysvar">back_log</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:back_log"/>
+
+        <para>
+          The number of outstanding connection requests MySQL can have.
+          This comes into play when the main MySQL thread gets very many
+          connection requests in a very short time. It then takes some
+          time (although very little) for the main thread to check the
+          connection and start a new thread. The
+          <literal role="sysvar">back_log</literal> value indicates how
+          many requests can be stacked during this short time before
+          MySQL momentarily stops answering new requests. You need to
+          increase this only if you expect a large number of connections
+          in a short period of time.
+        </para>
+
+        <para>
+          In other words, this value is the size of the listen queue for
+          incoming TCP/IP connections. Your operating system has its own
+          limit on the size of this queue. The manual page for the Unix
+          <literal>listen()</literal> system call should have more
+          details. Check your OS documentation for the maximum value for
+          this variable. <literal role="sysvar">back_log</literal>
+          cannot be set higher than your operating system limit.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_basedir">
+          <indexterm>
+            <primary>basedir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>basedir</secondary>
+          </indexterm>
+
+          <literal role="sysvar">basedir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:basedir"/>
+
+        <para>
+          The MySQL installation base directory. This variable can be
+          set with the <option>--basedir</option> option. Relative
+          pathnames for other variables usually are resolved relative to
+          the base directory.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_bdb_cache_size">
+          <indexterm>
+            <primary>bdb_cache_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_cache_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">bdb_cache_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb_cache_size"/>
+
+        <para>
+          The size of the buffer that is allocated for caching indexes
+          and rows for <literal>BDB</literal> tables. If you don't use
+          <literal>BDB</literal> tables, you should start
+          <command>mysqld</command> with <option>--skip-bdb</option> to
+          not allocate memory for this cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb-home">
+          <indexterm>
+            <primary>bdb_home system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_home</secondary>
+          </indexterm>
+
+          <literal>bdb_home</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb-home"/>
+
+        <para>
+          The base directory for <literal>BDB</literal> tables. This
+          should be assigned the same value as the
+          <literal role="sysvar">datadir</literal> variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb_log_buffer_size">
+          <indexterm>
+            <primary>bdb_log_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_log_buffer_size</secondary>
+          </indexterm>
+
+          <literal>bdb_log_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb_log_buffer_size"/>
+
+        <para>
+          The size of the buffer that is allocated for caching indexes
+          and rows for <literal>BDB</literal> tables. If you don't use
+          <literal>BDB</literal> tables, you should set this to 0 or
+          start <command>mysqld</command> with
+          <option>--skip-bdb</option> to not allocate memory for this
+          cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb-logdir">
+          <indexterm>
+            <primary>bdb_logdir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_logdir</secondary>
+          </indexterm>
+
+          <literal>bdb_logdir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb-logdir"/>
+
+        <para>
+          The directory where the <literal>BDB</literal> storage engine
+          writes its log files. This variable can be set with the
+          <option>--bdb-logdir</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb_max_lock">
+          <indexterm>
+            <primary>bdb_max_lock system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_max_lock</secondary>
+          </indexterm>
+
+          <literal>bdb_max_lock</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb_max_lock"/>
+
+        <para>
+          The maximum number of locks that can be active for a
+          <literal>BDB</literal> table (10,000 by default). You should
+          increase this value if errors such as the following occur when
+          you perform long transactions or when
+          <command>mysqld</command> has to examine many rows to
+          calculate a query:
+        </para>
+
+<programlisting>
+bdb: Lock table is out of available locks
+Got error 12 from ...
+</programlisting>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb-shared-data">
+          <indexterm>
+            <primary>bdb_shared_data system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_shared_data</secondary>
+          </indexterm>
+
+          <literal>bdb_shared_data</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb-shared-data"/>
+
+        <para>
+          This is <literal>ON</literal> if you are using
+          <option>--bdb-shared-data</option> to start Berkeley DB in
+          multi-process mode. (Do not use <literal>DB_PRIVATE</literal>
+          when initializing Berkeley DB.)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="option_mysqld_bdb-tmpdir">
+          <indexterm>
+            <primary>bdb_tmpdir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bdb_tmpdir</secondary>
+          </indexterm>
+
+          <literal>bdb_tmpdir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bdb-tmpdir"/>
+
+        <para>
+          The <literal>BDB</literal> temporary file directory.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_binlog_cache_size">
+          <indexterm>
+            <primary>binlog_cache_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>binlog_cache_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">binlog_cache_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:binlog_cache_size"/>
+
+        <para>
+          The size of the cache to hold the SQL statements for the
+          binary log during a transaction. A binary log cache is
+          allocated for each client if the server supports any
+          transactional storage engines and if the server has the binary
+          log enabled (<option>--log-bin</option> option). If you often
+          use large, multiple-statement transactions, you can increase
+          this cache size to get more performance. The
+          <literal role="statvar">Binlog_cache_use</literal> and
+          <literal role="statvar">Binlog_cache_disk_use</literal> status
+          variables can be useful for tuning the size of this variable.
+          See <xref linkend="binary-log"/>.
+        </para>
+
+        <formalpara role="mnmas">
+
+          <title>MySQL Enterprise</title>
+
+          <para>
+            For recommendations on the optimum setting for
+            <literal role="sysvar">binlog_cache_size</literal> subscribe
+            to the MySQL Enterprise Monitor. For more information, see
+            <ulink url="advisors.html"/>.
+          </para>
+
+        </formalpara>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_bulk_insert_buffer_size">
+          <indexterm>
+            <primary>bulk_insert_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>bulk_insert_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">bulk_insert_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:bulk_insert_buffer_size"/>
+
+        <para>
+          <literal>MyISAM</literal> uses a special tree-like cache to
+          make bulk inserts faster for <literal>INSERT ...
+          SELECT</literal>, <literal>INSERT ... VALUES (...), (...),
+          ...</literal>, and
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> when adding data to non-empty tables. This
+          variable limits the size of the cache tree in bytes per
+          thread. Setting it to 0 disables this optimization. The
+          default value is 8MB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_client">
+          <indexterm>
+            <primary>character_set_client system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_client</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_client</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character_set_client"/>
+
+        <para>
+          The character set for statements that arrive from the client.
+          The session value of this variable is set using the character
+          set requested by the client when the client connects to the
+          server. (Many clients support a
+          <option>--default-character-set</option> option to enable this
+          character set to be specified explicitly. See also
+          <xref linkend="charset-connection"/>.) The global value of the
+          variable is used to set the session value in cases when the
+          client-requested value is unknown or not available, or the
+          server is configured to ignore client requests:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              The client is from a version of MySQL older than MySQL
+              4.1, and thus does not request a character set.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              The client requests a character set not known to the
+              server. For example, a Japanese-enabled client requests
+              <literal>sjis</literal> when connecting to a server not
+              configured with <literal>sjis</literal> support.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <command>mysqld</command> was started with the
+              <option>--skip-character-set-client-handshake</option>
+              option, which causes it to ignore client character set
+              configuration. This reproduces MySQL 4.0 behavior and is
+              useful should you wish to upgrade the server without
+              upgrading all the clients.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_connection">
+          <indexterm>
+            <primary>character_set_connection system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_connection</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_connection</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character_set_connection"/>
+
+        <remark role="todo">
+          Wording: &quot;introducer&quot;?
+        </remark>
+
+        <para>
+          The character set used for literals that do not have a
+          character set introducer and for number-to-string conversion.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_database">
+          <indexterm>
+            <primary>character_set_database system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_database</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_database</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character_set_database"/>
+
+        <para>
+          The character set used by the default database. The server
+          sets this variable whenever the default database changes. If
+          there is no default database, the variable has the same value
+          as <literal role="sysvar">character_set_server</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_filesystem">
+          <indexterm>
+            <primary>character_set_filesystem system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_filesystem</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_filesystem</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-set-filesystem"/>
+
+        <para>
+          The filesystem character set. This variable is used to
+          interpret string literals that refer to filenames, such as in
+          the <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> and <literal>SELECT ... INTO
+          OUTFILE</literal> statements and the
+          <literal role="func">LOAD_FILE()</literal> function. Such
+          filenames are converted from
+          <literal role="sysvar">character_set_client</literal> to
+          <literal role="sysvar">character_set_filesystem</literal>
+          before the file opening attempt occurs. The default value is
+          <literal>binary</literal>, which means that no conversion
+          occurs. For systems on which multi-byte filenames are allowed,
+          a different value may be more appropriate. For example, if the
+          system represents filenames using UTF-8, set
+          <literal role="sysvar">character_set_filesystem</literal> to
+          <literal>'utf8'</literal>. This variable was added in MySQL
+          5.0.19.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_results">
+          <indexterm>
+            <primary>character_set_results system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_results</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_results</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character_set_results"/>
+
+        <para>
+          The character set used for returning query results to the
+          client.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_server">
+          <indexterm>
+            <primary>character_set_server system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_server</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_server</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-set-server"/>
+
+        <para>
+          The server's default character set.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_set_system">
+          <indexterm>
+            <primary>character_set_system system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_set_system</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_set_system</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character_set_system"/>
+
+        <para>
+          The character set used by the server for storing identifiers.
+          The value is always <literal>utf8</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_character_sets_dir">
+          <indexterm>
+            <primary>character_sets_dir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>character_sets_dir</secondary>
+          </indexterm>
+
+          <literal role="sysvar">character_sets_dir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:character-sets-dir"/>
+
+        <para>
+          The directory where character sets are installed.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_collation_connection">
+          <indexterm>
+            <primary>collation_connection system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>collation_connection</secondary>
+          </indexterm>
+
+          <literal role="sysvar">collation_connection</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:collation_connection"/>
+
+        <para>
+          The collation of the connection character set.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_collation_database">
+          <indexterm>
+            <primary>collation_database system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>collation_database</secondary>
+          </indexterm>
+
+          <literal role="sysvar">collation_database</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:collation_database"/>
+
+        <para>
+          The collation used by the default database. The server sets
+          this variable whenever the default database changes. If there
+          is no default database, the variable has the same value as
+          <literal role="sysvar">collation_server</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_collation_server">
+          <indexterm>
+            <primary>collation_server system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>collation_server</secondary>
+          </indexterm>
+
+          <literal role="sysvar">collation_server</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:collation-server"/>
+
+        <para>
+          The server's default collation.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_completion_type">
+          <indexterm>
+            <primary>completion_type system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>completion_type</secondary>
+          </indexterm>
+
+          <literal role="sysvar">completion_type</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:completion_type"/>
+
+        <para>
+          The transaction completion type:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              If the value is 0 (the default),
+              <literal role="stmt">COMMIT</literal> and
+              <literal role="stmt" condition="commit">ROLLBACK</literal>
+              are unaffected.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              If the value is 1, <literal role="stmt">COMMIT</literal>
+              and
+              <literal role="stmt" condition="commit">ROLLBACK</literal>
+              are equivalent to <literal>COMMIT AND CHAIN</literal> and
+              <literal>ROLLBACK AND CHAIN</literal>, respectively. (A
+              new transaction starts immediately with the same isolation
+              level as the just-terminated transaction.)
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              If the value is 2, <literal role="stmt">COMMIT</literal>
+              and
+              <literal role="stmt" condition="commit">ROLLBACK</literal>
+              are equivalent to <literal>COMMIT RELEASE</literal> and
+              <literal>ROLLBACK RELEASE</literal>, respectively. (The
+              server disconnects after terminating the transaction.)
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+        <para>
+          This variable was added in MySQL 5.0.3
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_concurrent_insert">
+          <indexterm>
+            <primary>concurrent_insert system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>concurrent_insert</secondary>
+          </indexterm>
+
+          <literal role="sysvar">concurrent_insert</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:concurrent_insert"/>
+
+        <para>
+          If 1 (the default), MySQL allows
+          <literal role="stmt">INSERT</literal> and
+          <literal role="stmt">SELECT</literal> statements to run
+          concurrently for <literal>MyISAM</literal> tables that have no
+          free blocks in the middle of the data file. You can turn this
+          option off by starting <command>mysqld</command> with
+          <option>--safe</option> or <option>--skip-new</option>.
+        </para>
+
+        <para>
+          In MySQL 5.0.6, this variable was changed to take three
+          integer values:
+        </para>
+
+        <informaltable>
+          <tgroup cols="2">
+            <colspec colwidth="10*"/>
+            <colspec colwidth="75*"/>
+            <tbody>
+              <row>
+                <entry><emphasis role="bold">Value</emphasis></entry>
+                <entry><emphasis role="bold">Description</emphasis></entry>
+              </row>
+              <row>
+                <entry>0</entry>
+                <entry>Off</entry>
+              </row>
+              <row>
+                <entry>1</entry>
+                <entry>(Default) Enables concurrent insert for <literal>MyISAM</literal> tables
+                  that don't have holes</entry>
+              </row>
+              <row>
+                <entry>2</entry>
+                <entry>Enables concurrent inserts for all <literal>MyISAM</literal> tables,
+                  even those that have holes. For a table with a hole,
+                  new rows are inserted at the end of the table if it is
+                  in use by another thread. Otherwise, MySQL acquires a
+                  normal write lock and inserts the row into the hole.</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+
+        <para>
+          See also <xref linkend="concurrent-inserts"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_connect_timeout">
+          <indexterm>
+            <primary>timeout</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>connect_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>connect_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">connect_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:connect_timeout"/>
+
+        <para>
+          The number of seconds that the <command>mysqld</command>
+          server waits for a connect packet before responding with
+          <literal>Bad handshake</literal>. The default value is 10
+          seconds as of MySQL 5.0.52 and 5 seconds before that.
+        </para>
+
+        <para>
+          Increasing the
+          <literal role="sysvar">connect_timeout</literal> value might
+          help if clients frequently encounter errors of the form
+          <literal>Lost connection to MySQL server at
+          '<replaceable>XXX</replaceable>', system error:
+          <replaceable>errno</replaceable></literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_datadir">
+          <indexterm>
+            <primary>datadir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>datadir</secondary>
+          </indexterm>
+
+          <literal role="sysvar">datadir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:datadir"/>
+
+        <para>
+          The MySQL data directory. This variable can be set with the
+          <option>--datadir</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_date_format">
+          <indexterm>
+            <primary>date_format system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>date_format</secondary>
+          </indexterm>
+
+          <literal role="sysvar">date_format</literal>
+        </para>
+
+        <para>
+          This variable is unused.
+        </para>
+
+<!--
+          <para>
+            Determines how the server converts <literal role="type">DATE</literal>
+            values to strings. This variable is available as a global,
+            local, or command-line option.
+            <replaceable>format_str</replaceable> can be specified
+            conveniently using the <literal role="func">GET_FORMAT()</literal>
+            function. See <xref linkend="date-and-time-functions"/>.
+          </para>
+-->
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_datetime_format">
+          <indexterm>
+            <primary>datetime_format system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>datetime_format</secondary>
+          </indexterm>
+
+          <literal role="sysvar">datetime_format</literal>
+        </para>
+
+        <para>
+          This variable is unused.
+        </para>
+
+<!--
+           <para>
+             Determines how the server converts
+             <literal role="type">DATETIME</literal> values to strings. This variable
+             is available as a global, local, or command-line option.
+             <replaceable>format_str</replaceable> can be specified
+             conveniently using the <literal role="func">GET_FORMAT()</literal>
+             function. See <xref linkend="date-and-time-functions"/>.
+           </para>
+-->
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_default_week_format">
+          <indexterm>
+            <primary>default_week_format system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>default_week_format</secondary>
+          </indexterm>
+
+          <literal role="sysvar">default_week_format</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:default_week_format"/>
+
+        <para>
+          The default mode value to use for the
+          <literal role="func">WEEK()</literal> function. See
+          <xref linkend="date-and-time-functions"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_delay_key_write">
+          <indexterm>
+            <primary>delay_key_write system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>delay_key_write</secondary>
+          </indexterm>
+
+          <literal role="sysvar">delay_key_write</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:delay-key-write"/>
+
+        <para>
+          This option applies only to <literal>MyISAM</literal> tables.
+          It can have one of the following values to affect handling of
+          the <literal>DELAY_KEY_WRITE</literal> table option that can
+          be used in <literal role="stmt">CREATE TABLE</literal>
+          statements.
+        </para>
+
+        <informaltable>
+          <tgroup cols="2">
+            <colspec colwidth="10*"/>
+            <colspec colwidth="75*"/>
+            <tbody>
+              <row>
+                <entry><emphasis role="bold">Option</emphasis></entry>
+                <entry><emphasis role="bold">Description</emphasis></entry>
+              </row>
+              <row>
+                <entry><literal>OFF</literal></entry>
+                <entry><literal>DELAY_KEY_WRITE</literal> is ignored.</entry>
+              </row>
+              <row>
+                <entry><literal>ON</literal></entry>
+                <entry>MySQL honors any <literal>DELAY_KEY_WRITE</literal> option specified in
+                  <literal role="stmt">CREATE TABLE</literal>
+                  statements. This is the default value.</entry>
+              </row>
+              <row>
+                <entry><literal>ALL</literal></entry>
+                <entry>All new opened tables are treated as if they were created with the
+                  <literal>DELAY_KEY_WRITE</literal> option enabled.</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+
+        <para>
+          If <literal>DELAY_KEY_WRITE</literal> is enabled for a table,
+          the key buffer is not flushed for the table on every index
+          update, but only when the table is closed. This speeds up
+          writes on keys a lot, but if you use this feature, you should
+          add automatic checking of all <literal>MyISAM</literal> tables
+          by starting the server with the
+          <option>--myisam-recover</option> option (for example,
+          <option>--myisam-recover=BACKUP,FORCE</option>). See
+          <xref linkend="server-options"/>, and
+          <xref linkend="myisam-start"/>.
+        </para>
+
+        <para>
+          Note that if you enable external locking with
+          <option>--external-locking</option>, there is no protection
+          against index corruption for tables that use delayed key
+          writes.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_delayed_insert_limit">
+          <indexterm>
+            <primary>delayed_insert_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>delayed_insert_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">delayed_insert_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:delayed_insert_limit"/>
+
+        <para>
+          After inserting
+          <literal role="sysvar">delayed_insert_limit</literal> delayed
+          rows, the <literal>INSERT DELAYED</literal> handler thread
+          checks whether there are any
+          <literal role="stmt">SELECT</literal> statements pending. If
+          so, it allows them to execute before continuing to insert
+          delayed rows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_delayed_insert_timeout">
+          <indexterm>
+            <primary>delayed_insert_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>delayed_insert_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">delayed_insert_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:delayed_insert_timeout"/>
+
+        <para>
+          How many seconds an <literal>INSERT DELAYED</literal> handler
+          thread should wait for <literal role="stmt">INSERT</literal>
+          statements before terminating.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_delayed_queue_size">
+          <indexterm>
+            <primary>delayed_queue_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>delayed_queue_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">delayed_queue_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:delayed_queue_size"/>
+
+        <para>
+          This is a per-table limit on the number of rows to queue when
+          handling <literal>INSERT DELAYED</literal> statements. If the
+          queue becomes full, any client that issues an <literal>INSERT
+          DELAYED</literal> statement waits until there is room in the
+          queue again.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_div_precision_increment">
+          <indexterm>
+            <primary>div_precision_increment system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>div_precision_increment</secondary>
+          </indexterm>
+
+          <literal role="sysvar">div_precision_increment</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:div_precision_increment"/>
+
+        <para>
+          This variable indicates the number of digits by which to
+          increase the scale of the result of division operations
+          performed with the
+          <literal role="op" condition="divide">/</literal> operator.
+          The default value is 4. The minimum and maximum values are 0
+          and 30, respectively. The following example illustrates the
+          effect of increasing the default value.
+        </para>
+
+<programlisting>
+mysql&gt; <userinput>SELECT 1/7;</userinput>
++--------+
+| 1/7    |
++--------+
+| 0.1429 |
++--------+
+mysql&gt; <userinput>SET div_precision_increment = 12;</userinput>
+mysql&gt; <userinput>SELECT 1/7;</userinput>
++----------------+
+| 1/7            |
++----------------+
+| 0.142857142857 |
++----------------+
+</programlisting>
+
+        <para>
+          This variable was added in MySQL 5.0.6.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_expire_logs_days">
+          <indexterm>
+            <primary>expire_logs_days system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>expire_logs_days</secondary>
+          </indexterm>
+
+          <literal role="sysvar">expire_logs_days</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:expire_logs_days"/>
+
+        <para>
+          The number of days for automatic binary log removal. The
+          default is 0, which means <quote>no automatic removal.</quote>
+          Possible removals happen at startup and at binary log
+          rotation.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_flush">
+          <indexterm>
+            <primary>flush system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>flush</secondary>
+          </indexterm>
+
+          <literal role="sysvar">flush</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:flush"/>
+
+        <para>
+          If <literal>ON</literal>, the server flushes (synchronizes)
+          all changes to disk after each SQL statement. Normally, MySQL
+          does a write of all changes to disk only after each SQL
+          statement and lets the operating system handle the
+          synchronizing to disk. See <xref linkend="crashing"/>. This
+          variable is set to <literal>ON</literal> if you start
+          <command>mysqld</command> with the <option>--flush</option>
+          option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_flush_time">
+          <indexterm>
+            <primary>flush_time system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>flush_time</secondary>
+          </indexterm>
+
+          <literal role="sysvar">flush_time</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:flush_time"/>
+
+        <para>
+          If this is set to a non-zero value, all tables are closed
+          every <literal role="sysvar">flush_time</literal> seconds to
+          free up resources and synchronize unflushed data to disk. We
+          recommend that this option be used only on systems with
+          minimal resources.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ft_boolean_syntax">
+          <indexterm>
+            <primary>ft_boolean_syntax system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ft_boolean_syntax</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ft_boolean_syntax</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ft_boolean_syntax"/>
+
+        <para>
+          The list of operators supported by boolean full-text searches
+          performed using <literal>IN BOOLEAN MODE</literal>. See
+          <xref linkend="fulltext-boolean"/>.
+        </para>
+
+        <para>
+          The default variable value is
+          <literal>'+&nbsp;-&gt;&lt;()~*:&quot;&quot;&amp;|'</literal>.
+          The rules for changing the value are as follows:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              Operator function is determined by position within the
+              string.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              The replacement value must be 14 characters.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Each character must be an ASCII non-alphanumeric
+              character.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Either the first or second character must be a space.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              No duplicates are allowed except the phrase quoting
+              operators in positions 11 and 12. These two characters are
+              not required to be the same, but they are the only two
+              that may be.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              Positions 10, 13, and 14 (which by default are set to
+              <quote><literal>:</literal></quote>,
+              <quote><literal>&amp;</literal></quote>, and
+              <quote><literal>|</literal></quote>) are reserved for
+              future extensions.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ft_max_word_len">
+          <indexterm>
+            <primary>ft_max_word_len system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ft_max_word_len</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ft_max_word_len</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ft_max_word_len"/>
+
+        <para>
+          The maximum length of the word to be included in a
+          <literal>FULLTEXT</literal> index.
+        </para>
+
+        <note>
+          <para>
+            <literal>FULLTEXT</literal> indexes must be rebuilt after
+            changing this variable. Use <literal>REPAIR TABLE
+            <replaceable>tbl_name</replaceable> QUICK</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ft_min_word_len">
+          <indexterm>
+            <primary>ft_min_word_len system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ft_min_word_len</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ft_min_word_len</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ft_min_word_len"/>
+
+        <para>
+          The minimum length of the word to be included in a
+          <literal>FULLTEXT</literal> index.
+        </para>
+
+        <note>
+          <para>
+            <literal>FULLTEXT</literal> indexes must be rebuilt after
+            changing this variable. Use <literal>REPAIR TABLE
+            <replaceable>tbl_name</replaceable> QUICK</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ft_query_expansion_limit">
+          <indexterm>
+            <primary>ft_query_expansion_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ft_query_expansion_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ft_query_expansion_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ft_query_expansion_limit"/>
+
+        <para>
+          The number of top matches to use for full-text searches
+          performed using <literal>WITH QUERY EXPANSION</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ft_stopword_file">
+          <indexterm>
+            <primary>ft_stopword_file system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ft_stopword_file</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ft_stopword_file</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ft_stopword_file"/>
+
+        <para>
+          The file from which to read the list of stopwords for
+          full-text searches. All the words from the file are used;
+          comments are <emphasis>not</emphasis> honored. By default, a
+          built-in list of stopwords is used (as defined in the
+          <filename>myisam/ft_static.c</filename> file). Setting this
+          variable to the empty string (<literal>''</literal>) disables
+          stopword filtering.
+        </para>
+
+        <note>
+          <para>
+            <literal>FULLTEXT</literal> indexes must be rebuilt after
+            changing this variable or the contents of the stopword file.
+            Use <literal>REPAIR TABLE
+            <replaceable>tbl_name</replaceable> QUICK</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_group_concat_max_len">
+          <indexterm>
+            <primary>group_concat_max_len system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>group_concat_max_len</secondary>
+          </indexterm>
+
+          <literal role="sysvar">group_concat_max_len</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:group_concat_max_len"/>
+
+        <para>
+          The maximum allowed result length in bytes for the
+          <literal role="func">GROUP_CONCAT()</literal> function. The
+          default is 1024.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_archive">
+          <indexterm>
+            <primary>have_archive system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_archive</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_archive</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>ARCHIVE</literal> tables, <literal>NO</literal> if
+          not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_bdb">
+          <indexterm>
+            <primary>have_bdb system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_bdb</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_bdb</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>BDB</literal> tables. <literal>DISABLED</literal> if
+          <option>--skip-bdb</option> is used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_blackhole_engine">
+          <indexterm>
+            <primary>have_blackhole_engine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_blackhole_engine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_blackhole_engine</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>BLACKHOLE</literal> tables, <literal>NO</literal> if
+          not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_compress">
+          <indexterm>
+            <primary>have_compress system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_compress</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_compress</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if the <literal>zlib</literal>
+          compression library is available to the server,
+          <literal>NO</literal> if not. If not, the
+          <literal role="func">COMPRESS()</literal> and
+          <literal role="func">UNCOMPRESS()</literal> functions cannot
+          be used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_crypt">
+          <indexterm>
+            <primary>have_crypt system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_crypt</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_crypt</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if the <function>crypt()</function>
+          system call is available to the server, <literal>NO</literal>
+          if not. If not, the <literal role="func">ENCRYPT()</literal>
+          function cannot be used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_csv">
+          <indexterm>
+            <primary>have_csv system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_csv</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_csv</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>CSV</literal> tables, <literal>NO</literal> if not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_example_engine">
+          <indexterm>
+            <primary>have_example_engine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_example_engine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_example_engine</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>EXAMPLE</literal> tables, <literal>NO</literal> if
+          not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_federated_engine">
+          <indexterm>
+            <primary>have_federated_engine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_federated_engine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_federated_engine</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>FEDERATED</literal> tables, <literal>NO</literal> if
+          not. This variable was added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_geometry">
+          <indexterm>
+            <primary>have_geometry system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_geometry</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_geometry</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if the server supports spatial data
+          types, <literal>NO</literal> if not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_innodb">
+          <indexterm>
+            <primary>have_innodb system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_innodb</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_innodb</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>InnoDB</literal> tables. <literal>DISABLED</literal>
+          if <option>--skip-innodb</option> is used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_isam">
+          <indexterm>
+            <primary>have_isam system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_isam</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_isam</literal>
+        </para>
+
+        <para>
+          In MySQL &current-series;, this variable appears only for
+          reasons of backward compatibility. It is always
+          <literal>NO</literal> because <literal>ISAM</literal> tables
+          are no longer supported.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_merge_engine">
+          <indexterm>
+            <primary>have_merge_engine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_merge_engine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_merge_engine</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          <literal>MERGE</literal> tables. <literal>DISABLED</literal>
+          if <option>--skip-merge</option> is used. This variable was
+          added in MySQL 5.0.24.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_openssl">
+          <indexterm>
+            <primary>have_openssl system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_openssl</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_openssl</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          SSL connections, <literal>NO</literal> if not. As of MySQL
+          5.0.38, this variable is an alias for
+          <literal role="sysvar">have_ssl</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_query_cache">
+          <indexterm>
+            <primary>have_query_cache system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_query_cache</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_query_cache</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          the query cache, <literal>NO</literal> if not.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_raid">
+          <indexterm>
+            <primary>have_raid system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_raid</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_raid</literal>
+        </para>
+
+        <para>
+          In MySQL &current-series;, this variable appears only for
+          reasons of backward compatibility. It is always
+          <literal>NO</literal> because <literal>RAID</literal> tables
+          are no longer supported.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_rtree_keys">
+          <indexterm>
+            <primary>have_rtree_keys system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_rtree_keys</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_rtree_keys</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <literal>RTREE</literal> indexes are
+          available, <literal>NO</literal> if not. (These are used for
+          spatial indexes in <literal>MyISAM</literal> tables.)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_ssl">
+          <indexterm>
+            <primary>have_ssl system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_ssl</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_ssl</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if <command>mysqld</command> supports
+          SSL connections, <literal>NO</literal> if not. This variable
+          was added in MySQL 5.0.38. Before that, use
+          <literal role="sysvar">have_openssl</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_have_symlink">
+          <indexterm>
+            <primary>have_symlink system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>have_symlink</secondary>
+          </indexterm>
+
+          <literal role="sysvar">have_symlink</literal>
+        </para>
+
+        <para>
+          <literal>YES</literal> if symbolic link support is enabled,
+          <literal>NO</literal> if not. This is required on Unix for
+          support of the <literal>DATA DIRECTORY</literal> and
+          <literal>INDEX DIRECTORY</literal> table options, and on
+          Windows for support of data directory symlinks.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_hostname">
+          <indexterm>
+            <primary>hostname system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>hostname</secondary>
+          </indexterm>
+
+          <literal role="sysvar">hostname</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:hostname"/>
+
+        <para>
+          The server sets this variable to the server hostname at
+          startup. This variable was added in MySQL 5.0.38.
+        </para>
+      </listitem>
+
+      <listitem>
+        <remark role="todo">
+          it may be that init_connect/init_slave should be discussed in
+          a separate section that describes how to control client/slave
+          startup. Move the examples to such a section if this is done.
+        </remark>
+
+        <para id="sysvar_init_connect">
+          <indexterm>
+            <primary>init_connect system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>init_connect</secondary>
+          </indexterm>
+
+          <literal role="sysvar">init_connect</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:init_connect"/>
+
+        <para>
+          A string to be executed by the server for each client that
+          connects. The string consists of one or more SQL statements.
+          To specify multiple statements, separate them by semicolon
+          characters. For example, each client begins by default with
+          autocommit mode enabled. There is no global system variable to
+          specify that autocommit should be disabled by default, but
+          <literal role="sysvar">init_connect</literal> can be used to
+          achieve the same effect:
+        </para>
+
+<programlisting>
+SET GLOBAL init_connect='SET autocommit=0';
+</programlisting>
+
+        <para>
+          This variable can also be set on the command line or in an
+          option file. To set the variable as just shown using an option
+          file, include these lines:
+        </para>
+
+<programlisting>
+[mysqld]
+init_connect='SET autocommit=0'
+</programlisting>
+
+        <para>
+          Note that the content of
+          <literal role="sysvar">init_connect</literal> is not executed
+          for users that have the <literal role="priv">SUPER</literal>
+          privilege. This is done so that an erroneous value for
+          <literal role="sysvar">init_connect</literal> does not prevent
+          all clients from connecting. For example, the value might
+          contain a statement that has a syntax error, thus causing
+          client connections to fail. Not executing
+          <literal role="sysvar">init_connect</literal> for users that
+          have the <literal role="priv">SUPER</literal> privilege
+          enables them to open a connection and fix the
+          <literal role="sysvar">init_connect</literal> value.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_init_file">
+          <indexterm>
+            <primary>init_file system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>init_file</secondary>
+          </indexterm>
+
+          <literal role="sysvar">init_file</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:init-file"/>
+
+        <para>
+          The name of the file specified with the
+          <option>--init-file</option> option when you start the server.
+          This should be a file containing SQL statements that you want
+          the server to execute when it starts. Each statement must be
+          on a single line and should not include comments.
+        </para>
+
+        <para>
+          Note that the <option>--init-file</option> option is
+          unavailable if MySQL was configured with the
+          <option>--disable-grant-options</option> option. See
+          <xref linkend="configure-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>innodb_<replaceable>xxx</replaceable></literal>
+        </para>
+
+        <para>
+          <literal>InnoDB</literal> system variables are listed in
+          <xref linkend="innodb-parameters"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_interactive_timeout">
+          <indexterm>
+            <primary>interactive_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>interactive_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">interactive_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:interactive_timeout"/>
+
+        <para>
+          The number of seconds the server waits for activity on an
+          interactive connection before closing it. An interactive
+          client is defined as a client that uses the
+          <literal>CLIENT_INTERACTIVE</literal> option to
+          <literal role="cfunc">mysql_real_connect()</literal>. See also
+          <literal role="sysvar">wait_timeout</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_join_buffer_size">
+          <indexterm>
+            <primary>join_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>join_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">join_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:join_buffer_size"/>
+
+        <para>
+          The size of the buffer that is used for joins that do not use
+          indexes and thus perform full table scans. Normally, the best
+          way to get fast joins is to add indexes. Increase the value of
+          <literal role="sysvar">join_buffer_size</literal> to get a
+          faster full join when adding indexes is not possible. One join
+          buffer is allocated for each full join between two tables. For
+          a complex join between several tables for which indexes are
+          not used, multiple join buffers might be necessary.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">join_buffer_size</literal> is 4GB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_keep_files_on_create">
+          <indexterm>
+            <primary>keep_files_on_create system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>keep_files_on_create</secondary>
+          </indexterm>
+
+          <literal role="sysvar">keep_files_on_create</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:keep_files_on_create"/>
+
+        <para>
+          If a <literal>MyISAM</literal> table is created with no
+          <literal>DATA DIRECTORY</literal> option, the
+          <filename>.MYD</filename> file is created in the database
+          directory. By default, if <literal>MyISAM</literal> finds an
+          existing <filename>.MYD</filename> file in this case, it
+          overwrites it. The same applies to <filename>.MYI</filename>
+          files for tables created with no <literal>INDEX
+          DIRECTORY</literal> option. To suppress this behavior, set the
+          <literal role="sysvar">keep_files_on_create</literal> variable
+          to <literal>ON</literal> (1), in which case
+          <literal>MyISAM</literal> will not overwrite existing files
+          and returns an error instead. The default value is
+          <literal>OFF</literal> (0).
+        </para>
+
+        <para>
+          If a <literal>MyISAM</literal> table is created with a
+          <literal>DATA DIRECTORY</literal> or <literal>INDEX
+          DIRECTORY</literal> option and an existing
+          <filename>.MYD</filename> or <filename>.MYI</filename> file is
+          found, MyISAM always returns an error. It will not overwrite a
+          file in the specified directory.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.48.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_key_buffer_size">
+          <indexterm>
+            <primary>indexes</primary>
+            <secondary>block size</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>key_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>key_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">key_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:key_buffer_size"/>
+
+        <para>
+          Index blocks for <literal>MyISAM</literal> tables are buffered
+          and are shared by all threads.
+          <literal role="sysvar">key_buffer_size</literal> is the size
+          of the buffer used for index blocks. The key buffer is also
+          known as the key cache.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">key_buffer_size</literal> is 4GB on
+          32-bit platforms. As of MySQL 5.0.52, values larger than 4GB
+          are allowed for 64-bit platforms (except 64-bit Windows, for
+          which large values are truncated to 4GB with a warning). The
+          effective maximum size might be less, depending on your
+          available physical RAM and per-process RAM limits imposed by
+          your operating system or hardware platform. The value of this
+          variable indicates the amount of memory requested. Internally,
+          the server allocates as much memory as possible up to this
+          amount, but the actual allocation might be less.
+        </para>
+
+        <para>
+          Increase the value to get better index handling (for all reads
+          and multiple writes) to as much as you can afford. Using a
+          value that is 25% of total memory on a machine that mainly
+          runs MySQL is quite common. However, if you make the value too
+          large (for example, more than 50% of your total memory) your
+          system might start to page and become extremely slow. MySQL
+          relies on the operating system to perform filesystem caching
+          for data reads, so you must leave some room for the filesystem
+          cache. Consider also the memory requirements of other storage
+          engines.
+        </para>
+
+        <para>
+          For even more speed when writing many rows at the same time,
+          use <literal role="stmt">LOCK TABLES</literal>. See
+          <xref linkend="insert-speed"/>.
+        </para>
+
+        <para>
+          You can check the performance of the key buffer by issuing a
+          <literal role="stmt">SHOW STATUS</literal> statement and
+          examining the
+          <literal role="statvar">Key_read_requests</literal>,
+          <literal role="statvar">Key_reads</literal>,
+          <literal role="statvar">Key_write_requests</literal>, and
+          <literal role="statvar">Key_writes</literal> status variables.
+          (See <xref linkend="show"/>.) The
+          <literal>Key_reads/Key_read_requests</literal> ratio should
+          normally be less than 0.01. The
+          <literal>Key_writes/Key_write_requests</literal> ratio is
+          usually near 1 if you are using mostly updates and deletes,
+          but might be much smaller if you tend to do updates that
+          affect many rows at the same time or if you are using the
+          <literal>DELAY_KEY_WRITE</literal> table option.
+        </para>
+
+        <para>
+          The fraction of the key buffer in use can be determined using
+          <literal role="sysvar">key_buffer_size</literal> in
+          conjunction with the
+          <literal role="statvar">Key_blocks_unused</literal> status
+          variable and the buffer block size, which is available from
+          the <literal role="sysvar">key_cache_block_size</literal>
+          system variable:
+        </para>
+
+<programlisting>
+1 - ((Key_blocks_unused &times; key_cache_block_size) / key_buffer_size)
+</programlisting>
+
+        <para>
+          This value is an approximation because some space in the key
+          buffer may be allocated internally for administrative
+          structures.
+        </para>
+
+        <para>
+          It is possible to create multiple <literal>MyISAM</literal>
+          key caches. The size limit of 4GB applies to each cache
+          individually, not as a group. See
+          <xref linkend="myisam-key-cache"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_key_cache_age_threshold">
+          <indexterm>
+            <primary>key_cache_age_threshold system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>key_cache_age_threshold</secondary>
+          </indexterm>
+
+          <literal role="sysvar">key_cache_age_threshold</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:key_cache_age_threshold"/>
+
+        <para>
+          This value controls the demotion of buffers from the hot
+          sub-chain of a key cache to the warm sub-chain. Lower values
+          cause demotion to happen more quickly. The minimum value is
+          100. The default value is 300. See
+          <xref linkend="myisam-key-cache"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_key_cache_block_size">
+          <indexterm>
+            <primary>key_cache_block_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>key_cache_block_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">key_cache_block_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:key_cache_block_size"/>
+
+        <para>
+          The size in bytes of blocks in the key cache. The default
+          value is 1024. See <xref linkend="myisam-key-cache"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_key_cache_division_limit">
+          <indexterm>
+            <primary>key_cache_division_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>key_cache_division_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">key_cache_division_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:key_cache_division_limit"/>
+
+        <para>
+          The division point between the hot and warm sub-chains of the
+          key cache buffer chain. The value is the percentage of the
+          buffer chain to use for the warm sub-chain. Allowable values
+          range from 1 to 100. The default value is 100. See
+          <xref linkend="myisam-key-cache"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_language">
+          <indexterm>
+            <primary>language system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>language</secondary>
+          </indexterm>
+
+          <literal role="sysvar">language</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:language"/>
+
+        <para>
+          The language used for error messages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_large_files_support">
+          <indexterm>
+            <primary>large_files_support system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>large_files_support</secondary>
+          </indexterm>
+
+          <literal role="sysvar">large_files_support</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:large_files_support"/>
+
+        <para>
+          Whether <command>mysqld</command> was compiled with options
+          for large file support.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_large_pages">
+          <indexterm>
+            <primary>large_pages system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>large_pages</secondary>
+          </indexterm>
+
+          <literal role="sysvar">large_pages</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:large-pages"/>
+
+        <para>
+          Whether large page support is enabled. This variable was added
+          in MySQL 5.0.3.
+        </para>
+
+        <para>
+          For more information, see
+          <link linkend="option_mysqld_large-pages">the entry for the
+          <option>--large-pages</option> server option</link>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_large_page_size">
+          <indexterm>
+            <primary>large_page_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>large_page_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">large_page_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:large_page_size"/>
+
+        <para>
+          If large page support is enabled, this shows the size of
+          memory pages. Currently, large memory pages are supported only
+          on Linux; on other platforms, the value of this variable is
+          always 0. This variable was added in MySQL 5.0.3.
+        </para>
+
+        <para>
+          For more information, see
+          <link linkend="option_mysqld_large-pages">the entry for the
+          <option>--large-pages</option> server option</link>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_lc_time_names">
+          <indexterm>
+            <primary>lc_time_names system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>lc_time_names</secondary>
+          </indexterm>
+
+          <literal role="sysvar">lc_time_names</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:lc_time_names"/>
+
+        <para>
+          This variable specifies the locale that controls the language
+          used to display day and month names and abbreviations. This
+          variable affects the output from the
+          <literal role="func">DATE_FORMAT()</literal>,
+          <literal role="func">DAYNAME()</literal> and
+          <literal role="func">MONTHNAME()</literal> functions. Locale
+          names are POSIX-style values such as
+          <literal>'ja_JP'</literal> or <literal>'pt_BR'</literal>. The
+          default value is <literal>'en_US'</literal> regardless of your
+          system's locale setting. For further information, see
+          <xref linkend="locale-support"/>. This variable was added in
+          MySQL 5.0.25.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_license">
+          <indexterm>
+            <primary>license system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>license</secondary>
+          </indexterm>
+
+          <literal role="sysvar">license</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:license"/>
+
+        <para>
+          The type of license the server has.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_local_infile">
+          <indexterm>
+            <primary>local_infile system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>local_infile</secondary>
+          </indexterm>
+
+          <literal role="sysvar">local_infile</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:local_infile"/>
+
+        <para>
+          Whether <literal>LOCAL</literal> is supported for
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> statements. See
+          <xref linkend="load-data-local"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_locked_in_memory">
+          <indexterm>
+            <primary>locked_in_memory system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>locked_in_memory</secondary>
+          </indexterm>
+
+          <literal role="sysvar">locked_in_memory</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:locked_in_memory"/>
+
+        <para>
+          Whether <command>mysqld</command> was locked in memory with
+          <option>--memlock</option>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log">
+          <indexterm>
+            <primary>log system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:_log"/>
+
+        <para>
+          Whether logging of all statements to the general query log is
+          enabled. See <xref linkend="query-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_bin">
+          <indexterm>
+            <primary>log_bin system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_bin</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_bin</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log_bin"/>
+
+        <para>
+          Whether the binary log is enabled. See
+          <xref linkend="binary-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_bin_trust_function_creators">
+          <indexterm>
+            <primary>log_bin_trust_function_creators system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_bin_trust_function_creators</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_bin_trust_function_creators</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-bin-trust-function-creators"/>
+
+        <para>
+          This variable applies when binary logging is enabled. It
+          controls whether stored function creators can be trusted not
+          to create stored functions that will cause unsafe events to be
+          written to the binary log. If set to 0 (the default), users
+          are not allowed to create or alter stored functions unless
+          they have the <literal role="priv">SUPER</literal> privilege
+          in addition to the <literal role="priv">CREATE
+          ROUTINE</literal> or <literal role="priv">ALTER
+          ROUTINE</literal> privilege. A setting of 0 also enforces the
+          restriction that a function must be declared with the
+          <literal>DETERMINISTIC</literal> characteristic, or with the
+          <literal>READS SQL DATA</literal> or <literal>NO SQL</literal>
+          characteristic. If the variable is set to 1, MySQL does not
+          enforce these restrictions on stored function creation. This
+          variable also applies to trigger creation. See
+          <xref linkend="stored-programs-logging"/>.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.16.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_bin_trust_routine_creators">
+          <indexterm>
+            <primary>log_bin_trust_routine_creators system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_bin_trust_routine_creators</secondary>
+          </indexterm>
+
+          <literal>log_bin_trust_routine_creators</literal>
+        </para>
+
+        <para>
+          This is the old name for
+          <literal role="sysvar">log_bin_trust_function_creators</literal>.
+          Before MySQL 5.0.16, it also applies to stored procedures, not
+          just stored functions. As of 5.0.16, this variable is
+          deprecated. It is recognized for backward compatibility but
+          its use results in a warning.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.6.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_error">
+          <indexterm>
+            <primary>log_error system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_error</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_error</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-error"/>
+
+        <para>
+          The location of the error log.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_queries_not_using_indexes">
+          <indexterm>
+            <primary>log_queries_not_using_indexes system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_queries_not_using_indexes</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_queries_not_using_indexes</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-queries-not-using-indexes"/>
+
+        <para>
+          Whether queries that do not use indexes are logged to the slow
+          query log. See <xref linkend="slow-query-log"/>. This variable
+          was added in MySQL 5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_slow_queries">
+          <indexterm>
+            <primary>log_slow_queries system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_slow_queries</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_slow_queries</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-slow-queries"/>
+
+        <para>
+          Whether slow queries should be logged. <quote>Slow</quote> is
+          determined by the value of the
+          <literal role="sysvar">long_query_time</literal> variable. See
+          <xref linkend="slow-query-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_log_warnings">
+          <indexterm>
+            <primary>log_warnings system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>log_warnings</secondary>
+          </indexterm>
+
+          <literal role="sysvar">log_warnings</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:log-warnings"/>
+
+        <para>
+          Whether to produce additional warning messages. It is enabled
+          (1) by default and can be disabled by setting it to 0. Aborted
+          connections are not logged to the error log unless the value
+          is greater than 1.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_long_query_time">
+          <indexterm>
+            <primary>long_query_time system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>long_query_time</secondary>
+          </indexterm>
+
+          <literal role="sysvar">long_query_time</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:long_query_time"/>
+
+        <para>
+          If a query takes longer than this many seconds, the server
+          increments the <literal role="statvar">Slow_queries</literal>
+          status variable. If you are using the
+          <option>--log-slow-queries</option> option, the query is
+          logged to the slow query log file. This value is measured in
+          real time, not CPU time, so a query that is under the
+          threshold on a lightly loaded system might be above the
+          threshold on a heavily loaded one. The minimum value is 1. The
+          default is 10. See <xref linkend="slow-query-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_low_priority_updates">
+          <indexterm>
+            <primary>low_priority_updates system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>low_priority_updates</secondary>
+          </indexterm>
+
+          <literal role="sysvar">low_priority_updates</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:low-priority-updates"/>
+
+        <para>
+          If set to <literal>1</literal>, all
+          <literal role="stmt">INSERT</literal>,
+          <literal role="stmt">UPDATE</literal>,
+          <literal role="stmt">DELETE</literal>, and <literal>LOCK TABLE
+          WRITE</literal> statements wait until there is no pending
+          <literal role="stmt">SELECT</literal> or <literal>LOCK TABLE
+          READ</literal> on the affected table. This affects only
+          storage engines that use only table-level locking
+          (<literal>MyISAM</literal>, <literal>MEMORY</literal>,
+          <literal>MERGE</literal>). This variable previously was named
+          <literal>sql_low_priority_updates</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_lower_case_file_system">
+          <indexterm>
+            <primary>lower_case_file_system system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>lower_case_file_system</secondary>
+          </indexterm>
+
+          <literal role="sysvar">lower_case_file_system</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:lower_case_file_system"/>
+
+        <para>
+          This variable describes the case sensitivity of filenames on
+          the filesystem where the data directory is located.
+          <literal>OFF</literal> means filenames are case sensitive,
+          <literal>ON</literal> means they are not case sensitive.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_lower_case_table_names">
+          <indexterm>
+            <primary>lower_case_table_names system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>lower_case_table_names</secondary>
+          </indexterm>
+
+          <literal role="sysvar">lower_case_table_names</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:lower_case_table_names"/>
+
+        <para>
+          If set to 1, table names are stored in lowercase on disk and
+          table name comparisons are not case sensitive. If set to 2
+          table names are stored as given but compared in lowercase.
+          This option also applies to database names and table aliases.
+          See <xref linkend="identifier-case-sensitivity"/>.
+        </para>
+
+        <para>
+          If you are using <literal>InnoDB</literal> tables, you should
+          set this variable to 1 on all platforms to force names to be
+          converted to lowercase.
+        </para>
+
+        <para>
+          You should <emphasis>not</emphasis> set this variable to 0 if
+          you are running MySQL on a system that does not have
+          case-sensitive filenames (such as Windows or Mac OS X). If
+          this variable is not set at startup and the filesystem on
+          which the data directory is located does not have
+          case-sensitive filenames, MySQL automatically sets
+          <literal role="sysvar">lower_case_table_names</literal> to 2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_allowed_packet">
+          <indexterm>
+            <primary>max_allowed_packet system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_allowed_packet</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_allowed_packet</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_allowed_packet"/>
+
+        <para>
+          The maximum size of one packet or any generated/intermediate
+          string.
+        </para>
+
+        <para>
+          The packet message buffer is initialized to
+          <literal role="sysvar">net_buffer_length</literal> bytes, but
+          can grow up to
+          <literal role="sysvar">max_allowed_packet</literal> bytes when
+          needed. This value by default is small, to catch large
+          (possibly incorrect) packets.
+        </para>
+
+        <para>
+          You must increase this value if you are using large
+          <literal role="type">BLOB</literal> columns or long strings.
+          It should be as big as the largest
+          <literal role="type">BLOB</literal> you want to use. The
+          protocol limit for
+          <literal role="sysvar">max_allowed_packet</literal> is 1GB.
+          The value should be a multiple of 1024; non-multiples are
+          rounded down to the nearest multiple.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_connect_errors">
+          <indexterm>
+            <primary>max_connect_errors system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_connect_errors</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_connect_errors</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_connect_errors"/>
+
+        <para>
+          If there are more than this number of interrupted connections
+          from a host, that host is blocked from further connections.
+          You can unblock blocked hosts with the
+          <literal role="stmt" condition="flush">FLUSH HOSTS</literal>
+          statement.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_connections">
+          <indexterm>
+            <primary>max_connections system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_connections</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_connections</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_connections"/>
+
+        <para>
+          The number of simultaneous client connections allowed. By
+          default, this is 100. See
+          <xref linkend="too-many-connections"/>, for more information.
+        </para>
+
+        <formalpara role="mnmas">
+
+          <title>MySQL Enterprise</title>
+
+          <para>
+            For notification that the maximum number of connections is
+            getting dangerously high and for advice on setting the
+            optimum value for
+            <literal role="sysvar">max_connections</literal> subscribe
+            to the MySQL Enterprise Monitor. For more information see
+            <ulink url="advisors.html"/>.
+          </para>
+
+        </formalpara>
+
+        <para>
+          Increasing this value increases the number of file descriptors
+          that <command>mysqld</command> requires. See
+          <xref linkend="table-cache"/>, for comments on file descriptor
+          limits.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_delayed_threads">
+          <indexterm>
+            <primary>max_delayed_threads system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_delayed_threads</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_delayed_threads</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_delayed_threads"/>
+
+        <para>
+          Do not start more than this number of threads to handle
+          <literal>INSERT DELAYED</literal> statements. If you try to
+          insert data into a new table after all <literal>INSERT
+          DELAYED</literal> threads are in use, the row is inserted as
+          if the <literal>DELAYED</literal> attribute wasn't specified.
+          If you set this to 0, MySQL never creates a thread to handle
+          <literal>DELAYED</literal> rows; in effect, this disables
+          <literal>DELAYED</literal> entirely.
+        </para>
+
+        <para>
+          For the <literal>SESSION</literal> value of this variable, the
+          only valid values are 0 or the <literal>GLOBAL</literal>
+          value.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_error_count">
+          <indexterm>
+            <primary>max_error_count system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_error_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_error_count</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_error_count"/>
+
+        <para>
+          The maximum number of error, warning, and note messages to be
+          stored for display by the <literal role="stmt">SHOW
+          ERRORS</literal> and <literal role="stmt">SHOW
+          WARNINGS</literal> statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_heap_table_size">
+          <indexterm>
+            <primary>max_heap_table_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_heap_table_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_heap_table_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_heap_table_size"/>
+
+        <para>
+          This variable sets the maximum size to which
+          <literal>MEMORY</literal> tables are allowed to grow. The
+          value of the variable is used to calculate
+          <literal>MEMORY</literal> table <literal>MAX_ROWS</literal>
+          values. Setting this variable has no effect on any existing
+          <literal>MEMORY</literal> table, unless the table is
+          re-created with a statement such as
+          <literal role="stmt">CREATE TABLE</literal> or altered with
+          <literal role="stmt">ALTER TABLE</literal> or
+          <literal role="stmt" condition="truncate">TRUNCATE
+          TABLE</literal>. A server restart also sets the maximum size
+          of existing <literal>MEMORY</literal> tables to the global
+          <literal role="sysvar">max_heap_table_size</literal> value.
+        </para>
+
+        <formalpara role="mnmas">
+
+          <title>MySQL Enterprise</title>
+
+          <para>
+            Subscribers to the MySQL Enterprise Monitor receive
+            recommendations for the optimum setting for
+            <literal role="sysvar">max_heap_table_size</literal>. For
+            more information see <ulink url="advisors.html"/>.
+          </para>
+
+        </formalpara>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_insert_delayed_threads">
+          <indexterm>
+            <primary>max_insert_delayed_threads system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_insert_delayed_threads</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_insert_delayed_threads</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_insert_delayed_threads"/>
+
+        <para>
+          This variable is a synonym for
+          <literal role="sysvar">max_delayed_threads</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_join_size">
+          <indexterm>
+            <primary>max_join_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_join_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_join_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_join_size"/>
+
+        <para>
+          Do not allow <literal role="stmt">SELECT</literal> statements
+          that probably need to examine more than
+          <literal role="sysvar">max_join_size</literal> rows (for
+          single-table statements) or row combinations (for
+          multiple-table statements) or that are likely to do more than
+          <literal role="sysvar">max_join_size</literal> disk seeks. By
+          setting this value, you can catch
+          <literal role="stmt">SELECT</literal> statements where keys
+          are not used properly and that would probably take a long
+          time. Set it if your users tend to perform joins that lack a
+          <literal>WHERE</literal> clause, that take a long time, or
+          that return millions of rows.
+        </para>
+
+        <para>
+          Setting this variable to a value other than
+          <literal>DEFAULT</literal> resets the value of
+          <literal role="sysvar">sql_big_selects</literal> to
+          <literal>0</literal>. If you set the
+          <literal role="sysvar">sql_big_selects</literal> value again,
+          the <literal role="sysvar">max_join_size</literal> variable is
+          ignored.
+        </para>
+
+        <para>
+          If a query result is in the query cache, no result size check
+          is performed, because the result has previously been computed
+          and it does not burden the server to send it to the client.
+        </para>
+
+        <para>
+          This variable previously was named
+          <literal>sql_max_join_size</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_length_for_sort_data">
+          <indexterm>
+            <primary>max_length_for_sort_data system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_length_for_sort_data</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_length_for_sort_data</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_length_for_sort_data"/>
+
+        <para>
+          The cutoff on the size of index values that determines which
+          <literal>filesort</literal> algorithm to use. See
+          <xref linkend="order-by-optimization"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_prepared_stmt_count">
+          <indexterm>
+            <primary>max_prepared_stmt_count system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_prepared_stmt_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_prepared_stmt_count</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_prepared_stmt_count"/>
+
+        <para>
+          This variable limits the total number of prepared statements
+          in the server. It can be used in environments where there is
+          the potential for denial-of-service attacks based on running
+          the server out of memory by preparing huge numbers of
+          statements. The default value is 16,382. The allowable range
+          of values is from 0 to 1 million. If the value is set lower
+          than the current number of prepared statements, existing
+          statements are not affected and can be used, but no new
+          statements can be prepared until the current number drops
+          below the limit. This variable was added in MySQL 5.0.21.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_relay_log_size">
+          <indexterm>
+            <primary>max_relay_log_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_relay_log_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_relay_log_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_relay_log_size"/>
+
+        <para>
+          If a write by a replication slave to its relay log causes the
+          current log file size to exceed the value of this variable,
+          the slave rotates the relay logs (closes the current file and
+          opens the next one). If
+          <literal role="sysvar">max_relay_log_size</literal> is 0, the
+          server uses <literal role="sysvar">max_binlog_size</literal>
+          for both the binary log and the relay log. If
+          <literal role="sysvar">max_relay_log_size</literal> is greater
+          than 0, it constrains the size of the relay log, which enables
+          you to have different sizes for the two logs. You must set
+          <literal role="sysvar">max_relay_log_size</literal> to between
+          4096 bytes and 1GB (inclusive), or to 0. The default value is
+          0. See <xref linkend="replication-implementation-details"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_seeks_for_key">
+          <indexterm>
+            <primary>max_seeks_for_key system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_seeks_for_key</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_seeks_for_key</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_seeks_for_key"/>
+
+        <para>
+          Limit the assumed maximum number of seeks when looking up rows
+          based on a key. The MySQL optimizer assumes that no more than
+          this number of key seeks are required when searching for
+          matching rows in a table by scanning an index, regardless of
+          the actual cardinality of the index (see
+          <xref linkend="show-index"/>). By setting this to a low value
+          (say, 100), you can force MySQL to prefer indexes instead of
+          table scans.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_sort_length">
+          <indexterm>
+            <primary>max_sort_length system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_sort_length</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_sort_length</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_sort_length"/>
+
+        <para>
+          The number of bytes to use when sorting
+          <literal role="type">BLOB</literal> or
+          <literal role="type">TEXT</literal> values. Only the first
+          <literal role="sysvar">max_sort_length</literal> bytes of each
+          value are used; the rest are ignored.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_sp_recursion_depth">
+          <indexterm>
+            <primary>max_sp_recursion_depth system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_sp_recursion_depth</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_sp_recursion_depth</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_sp_recursion_depth"/>
+
+        <para>
+          The number of times that any given stored procedure may be
+          called recursively. The default value for this option is 0,
+          which completely disallows recursion in stored procedures. The
+          maximum value is 255.
+        </para>
+
+        <para>
+          Stored procedure recursion increases the demand on thread
+          stack space. If you increase the value of
+          <literal role="sysvar">max_sp_recursion_depth</literal>, it
+          may be necessary to increase thread stack size by increasing
+          the value of <literal role="sysvar">thread_stack</literal> at
+          server startup.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.17.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_tmp_tables">
+          <indexterm>
+            <primary>max_tmp_tables system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_tmp_tables</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_tmp_tables</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_tmp_tables"/>
+
+        <para>
+          The maximum number of temporary tables a client can keep open
+          at the same time. (This option does not yet do anything.)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_user_connections">
+          <indexterm>
+            <primary>max_user_connections system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_user_connections</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_user_connections</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_user_connections"/>
+
+        <para>
+          The maximum number of simultaneous connections allowed to any
+          given MySQL account. A value of 0 means <quote>no
+          limit.</quote>
+        </para>
+
+        <para>
+          Before MySQL 5.0.3, this variable has only global scope.
+          Beginning with MySQL 5.0.3, it also has a read-only session
+          scope. The session variable has the same value as the global
+          variable unless the current account has a non-zero
+          <literal>MAX_USER_CONNECTIONS</literal> resource limit. In
+          that case, the session value reflects the account limit.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_max_write_lock_count">
+          <indexterm>
+            <primary>max_write_lock_count system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>max_write_lock_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">max_write_lock_count</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:max_write_lock_count"/>
+
+        <para>
+          After this many write locks, allow some pending read lock
+          requests to be processed in between.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_block_size">
+          <indexterm>
+            <primary>myisam_block_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_block_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_block_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_block_size"/>
+
+        <para>
+          The block size to be used for <literal>MyISAM</literal> index
+          pages.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_data_pointer_size">
+          <indexterm>
+            <primary>myisam_data_pointer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_data_pointer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_data_pointer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_data_pointer_size"/>
+
+        <para>
+          The default pointer size in bytes, to be used by
+          <literal role="stmt">CREATE TABLE</literal> for
+          <literal>MyISAM</literal> tables when no
+          <literal>MAX_ROWS</literal> option is specified. This variable
+          cannot be less than 2 or larger than 7. The default value is 6
+          (4 before MySQL 5.0.6). See <xref linkend="full-table"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_max_extra_sort_file_size">
+          <indexterm>
+            <primary>myisam_max_extra_sort_file_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_max_extra_sort_file_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_max_extra_sort_file_size</literal>
+          (<emphasis>DEPRECATED</emphasis>)
+        </para>
+
+        <para>
+          This variable is not used. It was removed in MySQL 5.0.6.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_max_sort_file_size">
+          <indexterm>
+            <primary>myisam_max_sort_file_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_max_sort_file_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_max_sort_file_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_max_sort_file_size"/>
+
+        <para>
+          The maximum size of the temporary file that MySQL is allowed
+          to use while re-creating a <literal>MyISAM</literal> index
+          (during <literal role="stmt">REPAIR TABLE</literal>,
+          <literal role="stmt">ALTER TABLE</literal>, or
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal>). If the file size would be larger than this
+          value, the index is created using the key cache instead, which
+          is slower. The value is given in bytes.
+        </para>
+
+        <para>
+          The default value is 2GB. If <literal>MyISAM</literal> index
+          files exceed this size and disk space is available, increasing
+          the value may help performance.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_recover_options">
+          <indexterm>
+            <primary>myisam_recover_options system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_recover_options</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_recover_options</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_recover_options"/>
+
+        <para>
+          The value of the <option>--myisam-recover</option> option. See
+          <xref linkend="server-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_repair_threads">
+          <indexterm>
+            <primary>myisam_repair_threads system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_repair_threads</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_repair_threads</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_repair_threads"/>
+
+        <para>
+          If this value is greater than 1, <literal>MyISAM</literal>
+          table indexes are created in parallel (each index in its own
+          thread) during the <literal>Repair by sorting</literal>
+          process. The default value is 1.
+        </para>
+
+        <note>
+          <para>
+            Multi-threaded repair is still
+            <emphasis>beta-quality</emphasis> code.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_sort_buffer_size">
+          <indexterm>
+            <primary>myisam_sort_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_sort_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_sort_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_sort_buffer_size"/>
+
+        <para>
+          The size of the buffer that is allocated when sorting
+          <literal>MyISAM</literal> indexes during a
+          <literal role="stmt">REPAIR TABLE</literal> or when creating
+          indexes with <literal role="stmt">CREATE INDEX</literal> or
+          <literal role="stmt">ALTER TABLE</literal>.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">myisam_sort_buffer_size</literal> is
+          4GB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_myisam_stats_method">
+          <indexterm>
+            <primary>myisam_stats_method system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>myisam_stats_method</secondary>
+          </indexterm>
+
+          <literal role="sysvar">myisam_stats_method</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:myisam_stats_method"/>
+
+        <para>
+          How the server treats <literal>NULL</literal> values when
+          collecting statistics about the distribution of index values
+          for <literal>MyISAM</literal> tables. This variable has two
+          possible values, <literal>nulls_equal</literal> and
+          <literal>nulls_unequal</literal>. For
+          <literal>nulls_equal</literal>, all <literal>NULL</literal>
+          index values are considered equal and form a single value
+          group that has a size equal to the number of
+          <literal>NULL</literal> values. For
+          <literal>nulls_unequal</literal>, <literal>NULL</literal>
+          values are considered unequal, and each
+          <literal>NULL</literal> forms a distinct value group of size
+          1.
+        </para>
+
+        <para>
+          The method that is used for generating table statistics
+          influences how the optimizer chooses indexes for query
+          execution, as described in
+          <xref linkend="myisam-index-statistics"/>.
+        </para>
+
+        <para>
+          Any unique prefix of a valid value may be used to set the
+          value of this variable.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.14. For older versions,
+          the statistics collection method is equivalent to
+          <literal>nulls_equal</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_named_pipe">
+          <indexterm>
+            <primary>named_pipe system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>named_pipe</secondary>
+          </indexterm>
+
+          <literal role="sysvar">named_pipe</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:named_pipe"/>
+
+        <para>
+          (Windows only.) Indicates whether the server supports
+          connections over named pipes.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_net_buffer_length">
+          <indexterm>
+            <primary>net_buffer_length system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>net_buffer_length</secondary>
+          </indexterm>
+
+          <literal role="sysvar">net_buffer_length</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:net_buffer_length"/>
+
+        <para>
+          Each client thread is associated with a connection buffer and
+          result buffer. Both begin with a size given by
+          <literal role="sysvar">net_buffer_length</literal> but are
+          dynamically enlarged up to
+          <literal role="sysvar">max_allowed_packet</literal> bytes as
+          needed. The result buffer shrinks to
+          <literal role="sysvar">net_buffer_length</literal> after each
+          SQL statement.
+        </para>
+
+        <para>
+          This variable should not normally be changed, but if you have
+          very little memory, you can set it to the expected length of
+          statements sent by clients. If statements exceed this length,
+          the connection buffer is automatically enlarged. The maximum
+          value to which
+          <literal role="sysvar">net_buffer_length</literal> can be set
+          is 1MB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_net_read_timeout">
+          <indexterm>
+            <primary>net_read_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>net_read_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">net_read_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:net_read_timeout"/>
+
+        <para>
+          The number of seconds to wait for more data from a connection
+          before aborting the read. This timeout applies only to TCP/IP
+          connections, not to connections made via Unix socket files,
+          named pipes, or shared memory. When the server is reading from
+          the client, <literal role="sysvar">net_read_timeout</literal>
+          is the timeout value controlling when to abort. When the
+          server is writing to the client,
+          <literal role="sysvar">net_write_timeout</literal> is the
+          timeout value controlling when to abort. See also
+          <literal role="sysvar">slave_net_timeout</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_net_retry_count">
+          <indexterm>
+            <primary>net_retry_count system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>net_retry_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">net_retry_count</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:net_retry_count"/>
+
+        <para>
+          If a read on a communication port is interrupted, retry this
+          many times before giving up. This value should be set quite
+          high on FreeBSD because internal interrupts are sent to all
+          threads.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_net_write_timeout">
+          <indexterm>
+            <primary>net_write_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>net_write_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">net_write_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:net_write_timeout"/>
+
+        <para>
+          The number of seconds to wait for a block to be written to a
+          connection before aborting the write. This timeout applies
+          only to TCP/IP connections, not to connections made via Unix
+          socket files, named pipes, or shared memory. See also
+          <literal role="sysvar">net_read_timeout</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_new">
+          <indexterm>
+            <primary>new system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>new</secondary>
+          </indexterm>
+
+          <literal role="sysvar">new</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:new"/>
+
+        <para>
+          This variable was used in MySQL 4.0 to turn on some 4.1
+          behaviors, and is retained for backward compatibility. In
+          MySQL &current-series;, its value is always
+          <literal>OFF</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_old_passwords">
+          <indexterm>
+            <primary>old_passwords system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>old_passwords</secondary>
+          </indexterm>
+
+          <literal role="sysvar">old_passwords</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:old-passwords"/>
+
+        <para>
+          Whether the server should use pre-4.1-style passwords for
+          MySQL user accounts. See <xref linkend="old-client"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_one_shot">
+          <indexterm>
+            <primary>one_shot system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>one_shot</secondary>
+          </indexterm>
+
+          <literal role="sysvar">one_shot</literal>
+        </para>
+
+        <para>
+          This is not a variable, but it can be used when setting some
+          variables. It is described in <xref linkend="set-option"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_open_files_limit">
+          <indexterm>
+            <primary>open_files_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>open_files_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">open_files_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:open-files-limit"/>
+
+        <para>
+          The number of files that the operating system allows
+          <command>mysqld</command> to open. This is the real value
+          allowed by the system and might be different from the value
+          you gave using the <option>--open-files-limit</option> option
+          to <command>mysqld</command> or
+          <command>mysqld_safe</command>. The value is 0 on systems
+          where MySQL can't change the number of open files.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_optimizer_prune_level">
+          <indexterm>
+            <primary>optimizer_prune_level system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>optimizer_prune_level</secondary>
+          </indexterm>
+
+          <literal role="sysvar">optimizer_prune_level</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:optimizer_prune_level"/>
+
+        <para>
+          Controls the heuristics applied during query optimization to
+          prune less-promising partial plans from the optimizer search
+          space. A value of 0 disables heuristics so that the optimizer
+          performs an exhaustive search. A value of 1 causes the
+          optimizer to prune plans based on the number of rows retrieved
+          by intermediate plans. This variable was added in MySQL 5.0.1.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_optimizer_search_depth">
+          <indexterm>
+            <primary>optimizer_search_depth system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>optimizer_search_depth</secondary>
+          </indexterm>
+
+          <literal role="sysvar">optimizer_search_depth</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:optimizer_search_depth"/>
+
+        <para>
+          The maximum depth of search performed by the query optimizer.
+          Values larger than the number of relations in a query result
+          in better query plans, but take longer to generate an
+          execution plan for a query. Values smaller than the number of
+          relations in a query return an execution plan quicker, but the
+          resulting plan may be far from being optimal. If set to 0, the
+          system automatically picks a reasonable value. If set to the
+          maximum number of tables used in a query plus 2, the optimizer
+          switches to the algorithm used in MySQL 5.0.0 (and previous
+          versions) for performing searches. This variable was added in
+          MySQL 5.0.1.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_pid_file">
+          <indexterm>
+            <primary>pid_file system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>pid_file</secondary>
+          </indexterm>
+
+          <literal role="sysvar">pid_file</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:pid-file"/>
+
+        <para>
+          The pathname of the process ID (PID) file. This variable can
+          be set with the <option>--pid-file</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_plugin_dir">
+          <indexterm>
+            <primary>plugin_dir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>plugin_dir</secondary>
+          </indexterm>
+
+          <literal role="sysvar">plugin_dir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:plugin_dir"/>
+
+        <para>
+          The pathname of the plugin directory. This variable was added
+          in MySQL 5.0.67. If the value is non-empty, user-defined
+          function object files must be located in this directory. If
+          the value is empty, the behavior that is used before 5.0.67
+          applies: The UDF object files must be located in a directory
+          that is searched by your system's dynamic linker.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_port">
+          <indexterm>
+            <primary>port system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>port</secondary>
+          </indexterm>
+
+          <literal>port</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:port"/>
+
+        <para>
+          The number of the port on which the server listens for TCP/IP
+          connections. This variable can be set with the
+          <option>--port</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_preload_buffer_size">
+          <indexterm>
+            <primary>preload_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>preload_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">preload_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:preload_buffer_size"/>
+
+        <para>
+          The size of the buffer that is allocated when preloading
+          indexes.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_prepared_stmt_count">
+          <indexterm>
+            <primary>prepared_stmt_count system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>prepared_stmt_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">prepared_stmt_count</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:prepared_stmt_count"/>
+
+        <para>
+          The current number of prepared statements. (The maximum number
+          of statements is given by the
+          <literal role="sysvar">max_prepared_stmt_count</literal>
+          system variable.) This variable was added in MySQL 5.0.21. In
+          MySQL 5.0.32, it was converted to the global
+          <literal role="statvar">Prepared_stmt_count</literal> status
+          variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_protocol_version">
+          <indexterm>
+            <primary>protocol_version system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>protocol_version</secondary>
+          </indexterm>
+
+          <literal role="sysvar">protocol_version</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:protocol_version"/>
+
+        <para>
+          The version of the client/server protocol used by the MySQL
+          server.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_alloc_block_size">
+          <indexterm>
+            <primary>query_alloc_block_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_alloc_block_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_alloc_block_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_alloc_block_size"/>
+
+        <remark role="todo">
+          How much is &quot;a bit&quot;?
+        </remark>
+
+        <para>
+          The allocation size of memory blocks that are allocated for
+          objects created during statement parsing and execution. If you
+          have problems with memory fragmentation, it might help to
+          increase this a bit.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_cache_limit">
+          <indexterm>
+            <primary>query_cache_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_cache_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_cache_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_cache_limit"/>
+
+        <para>
+          Don't cache results that are larger than this number of bytes.
+          The default value is 1MB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_cache_min_res_unit">
+          <indexterm>
+            <primary>query_cache_min_res_unit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_cache_min_res_unit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_cache_min_res_unit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_cache_min_res_unit"/>
+
+        <para>
+          The minimum size (in bytes) for blocks allocated by the query
+          cache. The default value is 4096 (4KB). Tuning information for
+          this variable is given in
+          <xref linkend="query-cache-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_cache_size">
+          <indexterm>
+            <primary>query_cache_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_cache_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_cache_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_cache_size"/>
+
+        <para>
+          The amount of memory allocated for caching query results. The
+          default value is 0, which disables the query cache. The
+          allowable values are multiples of 1024; other values are
+          rounded down to the nearest multiple. Note that
+          <literal role="sysvar">query_cache_size</literal> bytes of
+          memory are allocated even if
+          <literal role="sysvar">query_cache_type</literal> is set to 0.
+          See <xref linkend="query-cache-configuration"/>, for more
+          information.
+        </para>
+
+        <para>
+          The query cache needs a minimum size of about 40KB to allocate
+          its structures. (The exact size depends on system
+          architecture.) If you set the value of
+          <literal role="sysvar">query_cache_size</literal> too small,
+          you'll get a warning, as described in
+          <xref linkend="query-cache-configuration"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_cache_type">
+          <indexterm>
+            <primary>query_cache_type system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_cache_type</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_cache_type</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_cache_type"/>
+
+        <para>
+          Set the query cache type. Setting the
+          <literal>GLOBAL</literal> value sets the type for all clients
+          that connect thereafter. Individual clients can set the
+          <literal>SESSION</literal> value to affect their own use of
+          the query cache. Possible values are shown in the following
+          table:
+        </para>
+
+        <informaltable>
+          <tgroup cols="2">
+            <colspec colwidth="15*"/>
+            <colspec colwidth="70*"/>
+            <tbody>
+              <row>
+                <entry><emphasis role="bold">Option</emphasis></entry>
+                <entry><emphasis role="bold">Description</emphasis></entry>
+              </row>
+              <row>
+                <entry><literal>0</literal> or <literal>OFF</literal></entry>
+                <entry>Don't cache results in or retrieve results from the query cache. Note
+                  that this does not deallocate the query cache buffer.
+                  To do that, you should set
+                  <literal role="sysvar">query_cache_size</literal> to
+                  0.</entry>
+              </row>
+              <row>
+                <entry><literal>1</literal> or <literal>ON</literal></entry>
+                <entry>Cache all cacheable query results except for those that begin with
+                  <literal>SELECT SQL_NO_CACHE</literal>.</entry>
+              </row>
+              <row>
+                <entry><literal>2</literal> or <literal>DEMAND</literal></entry>
+                <entry>Cache results only for cacheable queries that begin with <literal>SELECT
+                  SQL_CACHE</literal>.</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </informaltable>
+
+        <para>
+          This variable defaults to <literal>ON</literal>.
+        </para>
+
+        <para>
+          Any unique prefix of a valid value may be used to set the
+          value of this variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_cache_wlock_invalidate">
+          <indexterm>
+            <primary>query_cache_wlock_invalidate system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_cache_wlock_invalidate</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_cache_wlock_invalidate</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_cache_wlock_invalidate"/>
+
+        <para>
+          Normally, when one client acquires a <literal>WRITE</literal>
+          lock on a <literal>MyISAM</literal> table, other clients are
+          not blocked from issuing statements that read from the table
+          if the query results are present in the query cache. Setting
+          this variable to 1 causes acquisition of a
+          <literal>WRITE</literal> lock for a table to invalidate any
+          queries in the query cache that refer to the table. This
+          forces other clients that attempt to access the table to wait
+          while the lock is in effect.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_query_prealloc_size">
+          <indexterm>
+            <primary>query_prealloc_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>query_prealloc_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">query_prealloc_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:query_prealloc_size"/>
+
+        <para>
+          The size of the persistent buffer used for statement parsing
+          and execution. This buffer is not freed between statements. If
+          you are running complex queries, a larger
+          <literal role="sysvar">query_prealloc_size</literal> value
+          might be helpful in improving performance, because it can
+          reduce the need for the server to perform memory allocation
+          during query execution operations.
+        </para>
+
+        <remark>
+          It will not necessarily eliminate allocation completely;
+          server *may* still allocate memory in some situations, e.g.,
+          transaction-related or sp-related ops.
+        </remark>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_range_alloc_block_size">
+          <indexterm>
+            <primary>range_alloc_block_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>range_alloc_block_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">range_alloc_block_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:range_alloc_block_size"/>
+
+        <para>
+          The size of blocks that are allocated when doing range
+          optimization.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_read_buffer_size">
+          <indexterm>
+            <primary>read_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>read_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">read_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:read_buffer_size"/>
+
+        <para>
+          Each thread that does a sequential scan allocates a buffer of
+          this size (in bytes) for each table it scans. If you do many
+          sequential scans, you might want to increase this value, which
+          defaults to 131072. The value of this variable should be a
+          multiple of 4KB. If it is set to a value that is not a
+          multiple of 4KB, its value will be rounded down to the nearest
+          multiple of 4KB.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">read_buffer_size</literal> is 2GB.
+        </para>
+
+        <para>
+          <literal role="sysvar">read_buffer_size</literal> and
+          <literal role="sysvar">read_rnd_buffer_size</literal> are not
+          specific to any storage engine and apply in a general manner
+          for optimization. See <xref linkend="memory-use"/>, for
+          example.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_read_only">
+          <indexterm>
+            <primary>read_only system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>read_only</secondary>
+          </indexterm>
+
+          <literal role="sysvar">read_only</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:read_only"/>
+
+        <para>
+          This variable is off by default. When it is enabled, the
+          server allows no updates except from users that have the
+          <literal role="priv">SUPER</literal> privilege or (on a slave
+          server) from updates performed by slave threads. On a slave
+          server, this can be useful to ensure that the slave accepts
+          updates only from its master server and not from clients. As
+          of MySQL 5.0.16, this variable does not apply to
+          <literal>TEMPORARY</literal> tables.
+        </para>
+
+        <para>
+          <literal role="sysvar">read_only</literal> exists only as a
+          <literal>GLOBAL</literal> variable, so changes to its value
+          require the <literal role="priv">SUPER</literal> privilege.
+          Changes to <literal role="sysvar">read_only</literal> on a
+          master server are not replicated to slave servers. The value
+          can be set on a slave server independent of the setting on the
+          master.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_read_rnd_buffer_size">
+          <indexterm>
+            <primary>read_rnd_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>read_rnd_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">read_rnd_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:read_rnd_buffer_size"/>
+
+        <para>
+          When reading rows in sorted order following a key-sorting
+          operation, the rows are read through this buffer to avoid disk
+          seeks. See <xref linkend="order-by-optimization"/>. Setting
+          the variable to a large value can improve <literal>ORDER
+          BY</literal> performance by a lot. However, this is a buffer
+          allocated for each client, so you should not set the global
+          variable to a large value. Instead, change the session
+          variable only from within those clients that need to run large
+          queries.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">read_rnd_buffer_size</literal> is 2GB.
+        </para>
+
+        <para>
+          <literal role="sysvar">read_buffer_size</literal> and
+          <literal role="sysvar">read_rnd_buffer_size</literal> are not
+          specific to any storage engine and apply in a general manner
+          for optimization. See <xref linkend="memory-use"/>, for
+          example.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_secure_auth">
+          <indexterm>
+            <primary>secure_auth system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>secure_auth</secondary>
+          </indexterm>
+
+          <literal role="sysvar">secure_auth</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:secure-auth"/>
+
+        <para>
+          If the MySQL server has been started with the
+          <option>--secure-auth</option> option, it blocks connections
+          from all accounts that have passwords stored in the old
+          (pre-4.1) format. In that case, the value of this variable is
+          <literal>ON</literal>, otherwise it is <literal>OFF</literal>.
+        </para>
+
+        <para>
+          You should enable this option if you want to prevent all use
+          of passwords employing the old format (and hence insecure
+          communication over the network).
+        </para>
+
+        <para>
+          Server startup fails with an error if this option is enabled
+          and the privilege tables are in pre-4.1 format. See
+          <xref linkend="old-client"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_secure_file_priv">
+          <indexterm>
+            <primary>secure_file_priv system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>secure_file_priv</secondary>
+          </indexterm>
+
+          <literal role="sysvar">secure_file_priv</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:secure-file-priv"/>
+
+        <para>
+          By default, this variable is empty. If set to the name of a
+          directory, it limits the effect of the
+          <literal role="func">LOAD_FILE()</literal> function and the
+          <literal role="stmt">LOAD DATA</literal> and <literal>SELECT
+          ... INTO OUTFILE</literal> statements to work only with files
+          in that directory.
+        </para>
+
+        <para>
+          This variable was added in MySQL 5.0.38.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_shared_memory">
+          <indexterm>
+            <primary>shared_memory system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>shared_memory</secondary>
+          </indexterm>
+
+          <literal role="sysvar">shared_memory</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:shared_memory"/>
+
+        <para>
+          (Windows only.) Whether the server allows shared-memory
+          connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_shared_memory_base_name">
+          <indexterm>
+            <primary>shared_memory_base_name system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>shared_memory_base_name</secondary>
+          </indexterm>
+
+          <literal role="sysvar">shared_memory_base_name</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:shared_memory_base_name"/>
+
+        <para>
+          (Windows only.) The name of shared memory to use for
+          shared-memory connections. This is useful when running
+          multiple MySQL instances on a single physical machine. The
+          default name is <literal>MYSQL</literal>. The name is case
+          sensitive.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_skip_external_locking">
+          <indexterm>
+            <primary>external locking</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>locking</primary>
+            <secondary>external</secondary>
+          </indexterm>
+
+          <indexterm>
+            <primary>skip_external_locking system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>skip_external_locking</secondary>
+          </indexterm>
+
+          <literal role="sysvar">skip_external_locking</literal>
+        </para>
+
+        <para>
+          This is <literal>OFF</literal> if <command>mysqld</command>
+          uses external locking, <literal>ON</literal> if external
+          locking is disabled.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_skip_networking">
+          <indexterm>
+            <primary>skip_networking system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>skip_networking</secondary>
+          </indexterm>
+
+          <literal role="sysvar">skip_networking</literal>
+        </para>
+
+        <para>
+          This is <literal>ON</literal> if the server allows only local
+          (non-TCP/IP) connections. On Unix, local connections use a
+          Unix socket file. On Windows, local connections use a named
+          pipe or shared memory. On NetWare, only TCP/IP connections are
+          supported, so do not set this variable to
+          <literal>ON</literal>. This variable can be set to
+          <literal>ON</literal> with the
+          <option>--skip-networking</option> option.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_skip_show_database">
+          <indexterm>
+            <primary>skip_show_database system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>skip_show_database</secondary>
+          </indexterm>
+
+          <literal role="sysvar">skip_show_database</literal>
+        </para>
+
+        <para>
+          This prevents people from using the <literal role="stmt">SHOW
+          DATABASES</literal> statement if they do not have the
+          <literal role="priv">SHOW DATABASES</literal> privilege. This
+          can improve security if you have concerns about users being
+          able to see databases belonging to other users. Its effect
+          depends on the <literal role="priv">SHOW DATABASES</literal>
+          privilege: If the variable value is <literal>ON</literal>, the
+          <literal role="stmt">SHOW DATABASES</literal> statement is
+          allowed only to users who have the <literal role="priv">SHOW
+          DATABASES</literal> privilege, and the statement displays all
+          database names. If the value is <literal>OFF</literal>,
+          <literal role="stmt">SHOW DATABASES</literal> is allowed to
+          all users, but displays the names of only those databases for
+          which the user has the <literal role="priv">SHOW
+          DATABASES</literal> or other privilege.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_slow_launch_time">
+          <indexterm>
+            <primary>slow_launch_time system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>slow_launch_time</secondary>
+          </indexterm>
+
+          <literal role="sysvar">slow_launch_time</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:slow_launch_time"/>
+
+        <para>
+          If creating a thread takes longer than this many seconds, the
+          server increments the
+          <literal role="statvar">Slow_launch_threads</literal> status
+          variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_socket">
+          <indexterm>
+            <primary>socket system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>socket</secondary>
+          </indexterm>
+
+          <literal role="sysvar">socket</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:socket"/>
+
+        <para>
+          On Unix platforms, this variable is the name of the socket
+          file that is used for local client connections. The default is
+          <filename>/tmp/mysql.sock</filename>. (For some distribution
+          formats, the directory might be different, such as
+          <filename>/var/lib/mysql</filename> for RPMs.)
+        </para>
+
+        <para>
+          On Windows, this variable is the name of the named pipe that
+          is used for local client connections. The default value is
+          <literal>MySQL</literal> (not case sensitive).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sort_buffer_size">
+          <indexterm>
+            <primary>sort_buffer_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>sort_buffer_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sort_buffer_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sort_buffer_size"/>
+
+        <para>
+          Each thread that needs to do a sort allocates a buffer of this
+          size. Increase this value for faster <literal>ORDER
+          BY</literal> or <literal>GROUP BY</literal> operations. See
+          <xref linkend="temporary-files"/>.
+        </para>
+
+        <para>
+          The maximum allowable setting for
+          <literal role="sysvar">sort_buffer_size</literal> is 4GB.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_mode">
+          <indexterm>
+            <primary>sql_mode system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>sql_mode</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_mode</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sql-mode"/>
+
+        <para>
+          The current server SQL mode, which can be set dynamically. See
+          <xref linkend="server-sql-mode"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_select_limit">
+          <indexterm>
+            <primary>sql_select_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>sql_select_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_select_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sql_select_limit"/>
+
+        <para>
+          The maximum number of rows to return from
+          <literal role="stmt">SELECT</literal> statements. The default
+          value for a new connection is the maximum number of rows that
+          the server allows per table, which depends on the server
+          configuration and may be affected if the server build was
+          configured with <option>--with-big-tables</option>. Typical
+          default values are (2<superscript>32</superscript>)&minus;1 or
+          (2<superscript>64</superscript>)&minus;1. If you have changed
+          the limit, the default value can be restored by assigning a
+          value of <literal>DEFAULT</literal>.
+        </para>
+
+        <para>
+          If a <literal role="stmt">SELECT</literal> has a
+          <literal>LIMIT</literal> clause, the <literal>LIMIT</literal>
+          takes precedence over the value of
+          <literal role="sysvar">sql_select_limit</literal>.
+        </para>
+
+        <para>
+          <literal role="sysvar">sql_select_limit</literal> does not
+          apply to <literal role="stmt">SELECT</literal> statements
+          executed within stored routines. It also does not apply to
+          <literal role="stmt">SELECT</literal> statements that do not
+          produce a result set to be returned to the client. These
+          include <literal role="stmt">SELECT</literal> statements in
+          subqueries, <literal>CREATE TABLE ... SELECT</literal>, and
+          <literal>INSERT INTO ... SELECT</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ssl_ca">
+          <indexterm>
+            <primary>ssl_ca system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ssl_ca</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ssl_ca</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ssl-ca"/>
+
+        <para>
+          The path to a file with a list of trusted SSL CAs. This
+          variable was added in MySQL 5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ssl_capath">
+          <indexterm>
+            <primary>ssl_capath system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ssl_capath</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ssl_capath</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ssl-capath"/>
+
+        <para>
+          The path to a directory that contains trusted SSL CA
+          certificates in PEM format. This variable was added in MySQL
+          5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ssl_cert">
+          <indexterm>
+            <primary>ssl_cert system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ssl_cert</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ssl_cert</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ssl-cert"/>
+
+        <para>
+          The name of the SSL certificate file to use for establishing a
+          secure connection. This variable was added in MySQL 5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ssl_cipher">
+          <indexterm>
+            <primary>ssl_cipher system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ssl_cipher</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ssl_cipher</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ssl-cipher"/>
+
+        <para>
+          A list of allowable ciphers to use for SSL encryption. This
+          variable was added in MySQL 5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_ssl_key">
+          <indexterm>
+            <primary>ssl_key system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>ssl_key</secondary>
+          </indexterm>
+
+          <literal role="sysvar">ssl_key</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:ssl-key"/>
+
+        <para>
+          The name of the SSL key file to use for establishing a secure
+          connection. This variable was added in MySQL 5.0.23.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_storage_engine">
+          <indexterm>
+            <primary>storage_engine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>storage_engine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">storage_engine</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:storage_engine"/>
+
+        <para>
+          The default storage engine (table type). To set the storage
+          engine at server startup, use the
+          <option>--default-storage-engine</option> option. See
+          <xref linkend="server-options"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sync_frm">
+          <indexterm>
+            <primary>sync_frm system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>sync_frm</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sync_frm</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:sync-frm"/>
+
+        <para>
+          If this variable is set to 1, when any non-temporary table is
+          created its <filename>.frm</filename> file is synchronized to
+          disk (using <literal>fdatasync()</literal>). This is slower
+          but safer in case of a crash. The default is 1.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_system_time_zone">
+          <indexterm>
+            <primary>system_time_zone system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>system_time_zone</secondary>
+          </indexterm>
+
+          <literal role="sysvar">system_time_zone</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:system_time_zone"/>
+
+        <para>
+          The server system time zone. When the server begins executing,
+          it inherits a time zone setting from the machine defaults,
+          possibly modified by the environment of the account used for
+          running the server or the startup script. The value is used to
+          set <literal role="sysvar">system_time_zone</literal>.
+          Typically the time zone is specified by the
+          <literal>TZ</literal> environment variable. It also can be
+          specified using the <option>--timezone</option> option of the
+          <command>mysqld_safe</command> script.
+        </para>
+
+        <para>
+          The <literal role="sysvar">system_time_zone</literal> variable
+          differs from <literal role="sysvar">time_zone</literal>.
+          Although they might have the same value, the latter variable
+          is used to initialize the time zone for each client that
+          connects. See <xref linkend="time-zone-support"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_table_cache">
+          <indexterm>
+            <primary>table_cache system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>table_cache</secondary>
+          </indexterm>
+
+          <literal role="sysvar">table_cache</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:table_cache"/>
+
+        <para>
+          The number of open tables for all threads. Increasing this
+          value increases the number of file descriptors that
+          <command>mysqld</command> requires. You can check whether you
+          need to increase the table cache by checking the
+          <literal role="statvar">Opened_tables</literal> status
+          variable. See <xref linkend="server-status-variables"/>. If
+          the value of <literal role="statvar">Opened_tables</literal>
+          is large and you don't do
+          <literal role="stmt" condition="flush">FLUSH TABLES</literal>
+          often (which just forces all tables to be closed and
+          reopened), then you should increase the value of the
+          <literal role="sysvar">table_cache</literal> variable. For
+          more information about the table cache, see
+          <xref linkend="table-cache"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_table_lock_wait_timeout">
+          <indexterm>
+            <primary>table_lock_wait_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>table_lock_wait_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">table_lock_wait_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:table_lock_wait_timeout"/>
+
+        <para>
+          Specifies a wait timeout for table-level locks, in seconds.
+          The default timeout is 50 seconds. The timeout is active only
+          if the connection has open cursors. This variable can also be
+          set globally at runtime (you need the
+          <literal role="priv">SUPER</literal> privilege to do this).
+          It's available as of MySQL 5.0.10.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_table_type">
+          <indexterm>
+            <primary>table_type system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>table_type</secondary>
+          </indexterm>
+
+          <literal role="sysvar">table_type</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:table_type"/>
+
+        <para>
+          This variable is a synonym for
+          <literal role="sysvar">storage_engine</literal>. In MySQL
+          &current-series;,
+          <literal role="sysvar">storage_engine</literal> is the
+          preferred name.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_thread_cache_size">
+          <indexterm>
+            <primary>thread_cache_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>thread_cache_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">thread_cache_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:thread_cache_size"/>
+
+        <para>
+          How many threads the server should cache for reuse. When a
+          client disconnects, the client's threads are put in the cache
+          if there are fewer than
+          <literal role="sysvar">thread_cache_size</literal> threads
+          there. Requests for threads are satisfied by reusing threads
+          taken from the cache if possible, and only when the cache is
+          empty is a new thread created. This variable can be increased
+          to improve performance if you have a lot of new connections.
+          (Normally, this doesn't provide a notable performance
+          improvement if you have a good thread implementation.) By
+          examining the difference between the
+          <literal role="statvar">Connections</literal> and
+          <literal role="statvar">Threads_created</literal> status
+          variables, you can see how efficient the thread cache is. For
+          details, see <xref linkend="server-status-variables"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_thread_concurrency">
+          <indexterm>
+            <primary>thread_concurrency system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>thread_concurrency</secondary>
+          </indexterm>
+
+          <literal role="sysvar">thread_concurrency</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:thread_concurrency"/>
+
+        <para>
+          On Solaris, <command>mysqld</command> calls
+          <function>thr_setconcurrency()</function> with this value.
+          This function enables applications to give the threads system
+          a hint about the desired number of threads that should be run
+          at the same time. This variable does not apply on other
+          systems.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_thread_stack">
+          <indexterm>
+            <primary>thread_stack system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>thread_stack</secondary>
+          </indexterm>
+
+          <literal role="sysvar">thread_stack</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:thread_stack"/>
+
+        <para>
+          The stack size for each thread. Many of the limits detected by
+          the <literal>crash-me</literal> test are dependent on this
+          value. See <xref linkend="mysql-benchmarks"/>. The default
+          (192KB) is large enough for normal operation. If the thread
+          stack size is too small, it limits the complexity of the SQL
+          statements that the server can handle, the recursion depth of
+          stored procedures, and other memory-consuming actions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_time_format">
+          <indexterm>
+            <primary>time_format system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>time_format</secondary>
+          </indexterm>
+
+          <literal role="sysvar">time_format</literal>
+        </para>
+
+        <para>
+          This variable is unused.
+        </para>
+
+<!--
+          <para>
+            Determines how the server converts <literal role="type">TIME</literal>
+            values to strings. This variable is available as a global,
+            local, or command-line option.
+            <replaceable>format_str</replaceable> can be specified
+            conveniently using the <literal role="func">GET_FORMAT()</literal>
+            function. See <xref linkend="date-and-time-functions"/>.
+          </para>
+-->
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_time_zone">
+          <indexterm>
+            <primary>time_zone system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>time_zone</secondary>
+          </indexterm>
+
+          <literal role="sysvar">time_zone</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:time_zone"/>
+
+        <para>
+          The current time zone. This variable is used to initialize the
+          time zone for each client that connects. By default, the
+          initial value of this is <literal>'SYSTEM'</literal> (which
+          means, <quote>use the value of
+          <literal role="sysvar">system_time_zone</literal></quote>).
+          The value can be specified explicitly at server startup with
+          the <option>--default-time-zone</option> option. See
+          <xref linkend="time-zone-support"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_timed_mutexes">
+          <indexterm>
+            <primary>timed_mutexes system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>timed_mutexes</secondary>
+          </indexterm>
+
+          <literal role="sysvar">timed_mutexes</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:timed_mutexes"/>
+
+        <para>
+          This variable controls whether <literal>InnoDB</literal>
+          mutexes are timed. If this variable is set to 0 or
+          <literal>OFF</literal> (the default), mutex timing is
+          disabled. If the variable is set to 1 or
+          <literal>ON</literal>, mutex timing is enabled. With timing
+          enabled, the <literal>os_wait_times</literal> value in the
+          output from <literal role="stmt" condition="show-engine">SHOW
+          ENGINE INNODB MUTEX</literal> indicates the amount of time (in
+          ms) spent in operating system waits. Otherwise, the value is
+          0. This variable was added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_tmp_table_size">
+          <indexterm>
+            <primary>tmp_table_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>tmp_table_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">tmp_table_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:tmp_table_size"/>
+
+        <para>
+          The maximum size of internal in-memory temporary tables. (The
+          actual limit is determined as the smaller of
+          <literal role="sysvar">max_heap_table_size</literal> and
+          <literal role="sysvar">tmp_table_size</literal>.) If an
+          in-memory temporary table exceeds the limit, MySQL
+          automatically converts it to an on-disk
+          <literal>MyISAM</literal> table. Increase the value of
+          <literal role="sysvar">tmp_table_size</literal> (and
+          <literal role="sysvar">max_heap_table_size</literal> if
+          necessary) if you do many advanced <literal>GROUP BY</literal>
+          queries and you have lots of memory. This variable does not
+          apply to user-created <literal>MEMORY</literal> tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_tmpdir">
+          <indexterm>
+            <primary>tmpdir system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>tmpdir</secondary>
+          </indexterm>
+
+          <literal>tmpdir</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:tmpdir"/>
+
+        <para>
+          The directory used for temporary files and temporary tables.
+          This variable can be set to a list of several paths that are
+          used in round-robin fashion. Paths should be separated by
+          colon characters (<quote><literal>:</literal></quote>) on Unix
+          and semicolon characters (<quote><literal>;</literal></quote>)
+          on Windows, NetWare, and OS/2.
+        </para>
+
+        <para>
+          The multiple-directory feature can be used to spread the load
+          between several physical disks. If the MySQL server is acting
+          as a replication slave, you should not set
+          <literal>tmpdir</literal> to point to a directory on a
+          memory-based filesystem or to a directory that is cleared when
+          the server host restarts. A replication slave needs some of
+          its temporary files to survive a machine restart so that it
+          can replicate temporary tables or
+          <literal role="stmt" condition="load-data">LOAD DATA
+          INFILE</literal> operations. If files in the temporary file
+          directory are lost when the server restarts, replication
+          fails. However, if you are using MySQL 4.0.0 or later, you can
+          set the slave's temporary directory using the
+          <literal role="sysvar">slave_load_tmpdir</literal> variable.
+          In that case, the slave won't use the general
+          <literal>tmpdir</literal> value and you can set
+          <literal>tmpdir</literal> to a non-permanent location.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_transaction_alloc_block_size">
+          <indexterm>
+            <primary>transaction_alloc_block_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>transaction_alloc_block_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">transaction_alloc_block_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:transaction_alloc_block_size"/>
+
+        <para>
+          The amount in bytes by which to increase a per-transaction
+          memory pool which needs memory. See the description of
+          <literal role="sysvar">transaction_prealloc_size</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_transaction_prealloc_size">
+          <indexterm>
+            <primary>transaction_prealloc_size system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>transaction_prealloc_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">transaction_prealloc_size</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:transaction_prealloc_size"/>
+
+        <para>
+          There is a per-transaction memory pool from which various
+          transaction-related allocations take memory. The initial size
+          of the pool in bytes is
+          <literal role="sysvar">transaction_prealloc_size</literal>.
+          For every allocation that cannot be satisfied from the pool
+          because it has insufficient memory available, the pool is
+          increased by
+          <literal role="sysvar">transaction_alloc_block_size</literal>
+          bytes. When the transaction ends, the pool is truncated to
+          <literal role="sysvar">transaction_prealloc_size</literal>
+          bytes.
+        </para>
+
+        <para>
+          By making
+          <literal role="sysvar">transaction_prealloc_size</literal>
+          sufficiently large to contain all statements within a single
+          transaction, you can avoid many <literal>malloc()</literal>
+          calls.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_tx_isolation">
+          <indexterm>
+            <primary>tx_isolation system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>tx_isolation</secondary>
+          </indexterm>
+
+          <literal role="sysvar">tx_isolation</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:tx_isolation"/>
+
+        <para>
+          The default transaction isolation level. Defaults to
+          <literal role="isolevel">REPEATABLE-READ</literal>.
+        </para>
+
+        <para>
+          This variable is set by the
+          <literal role="stmt" condition="set-transaction">SET
+          TRANSACTION ISOLATION LEVEL</literal> statement. See
+          <xref linkend="set-transaction"/>. If you set
+          <literal role="sysvar">tx_isolation</literal> directly to an
+          isolation level name that contains a space, the name should be
+          enclosed within quotes, with the space replaced by a dash. For
+          example:
+        </para>
+
+<programlisting>
+SET tx_isolation = 'READ-COMMITTED';
+</programlisting>
+
+        <para>
+          Any unique prefix of a valid value may be used to set the
+          value of this variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_updatable_views_with_limit">
+          <indexterm>
+            <primary>updatable_views_with_limit system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>updatable_views_with_limit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">updatable_views_with_limit</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:updatable_views_with_limit"/>
+
+        <para>
+          This variable controls whether updates to a view can be made
+          when the view does not contain all columns of the primary key
+          defined in the underlying table, if the update statement
+          contains a <literal>LIMIT</literal> clause. (Such updates
+          often are generated by GUI tools.) An update is an
+          <literal role="stmt">UPDATE</literal> or
+          <literal role="stmt">DELETE</literal> statement. Primary key
+          here means a <literal>PRIMARY KEY</literal>, or a
+          <literal>UNIQUE</literal> index in which no column can contain
+          <literal>NULL</literal>.
+        </para>
+
+        <para>
+          The variable can have two values:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>1</literal> or <literal>YES</literal>: Issue a
+              warning only (not an error message). This is the default
+              value.
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>0</literal> or <literal>NO</literal>: Prohibit
+              the update.
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+        <para>
+          This variable was added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>version system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>version</secondary>
+          </indexterm>
+
+          <literal>version</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:version"/>
+
+        <para>
+          The version number for the server.
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:version"/>
+
+        <para>
+          Starting with MySQL 5.0.24, the version number will also
+          indicate whether the server is a standard release (Community)
+          or Enterprise release (for example, <literal>
+          5.0.28-enterprise-gpl-nt</literal>).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_version_bdb">
+          <indexterm>
+            <primary>version_bdb system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>version_bdb</secondary>
+          </indexterm>
+
+          <literal role="sysvar">version_bdb</literal>
+        </para>
+
+        <para>
+          The <literal>BDB</literal> storage engine version.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_version_comment">
+          <indexterm>
+            <primary>version_comment system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>version_comment</secondary>
+          </indexterm>
+
+          <literal role="sysvar">version_comment</literal>
+        </para>
+
+        <para>
+          The <command>configure</command> script has a
+          <option>--with-comment</option> option that allows a comment
+          to be specified when building MySQL. This variable contains
+          the value of that comment.
+        </para>
+
+        <para>
+          For precompiled binaries, this variable will hold the server
+          version and license information. Starting with MySQL 5.0.24,
+          <literal role="sysvar">version_comment</literal> will include
+          the full server type and license. For community users this
+          will appear as <literal>MySQL Community Edition - Standard
+          (GPL)</literal>. For Enterprise users, the version might be
+          displayed as <literal>MySQL Enterprise Server (GPL)</literal>.
+          The corresponding license for your MySQL binary is shown in
+          parentheses. For server compiled from source, the default
+          value will be the same as that for Community releases.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_version_compile_machine">
+          <indexterm>
+            <primary>version_compile_machine system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>version_compile_machine</secondary>
+          </indexterm>
+
+          <literal role="sysvar">version_compile_machine</literal>
+        </para>
+
+        <para>
+          The type of machine or architecture on which MySQL was built.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_version_compile_os">
+          <indexterm>
+            <primary>version_compile_os system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>version_compile_os</secondary>
+          </indexterm>
+
+          <literal role="sysvar">version_compile_os</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:version_compile_os"/>
+
+        <para>
+          The type of operating system on which MySQL was built.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_wait_timeout">
+          <indexterm>
+            <primary>wait_timeout system variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>system variable</primary>
+            <secondary>wait_timeout</secondary>
+          </indexterm>
+
+          <literal role="sysvar">wait_timeout</literal>
+        </para>
+
+        <para condition="dynamic:optvar:item" role="5.0:mysqld:wait_timeout"/>
+
+        <para>
+          The number of seconds the server waits for activity on a
+          non-interactive connection before closing it. This timeout
+          applies only to TCP/IP and Unix socket file connections, not
+          to connections made via named pipes, or shared memory.
+        </para>
+
+        <para>
+          On thread startup, the session
+          <literal role="sysvar">wait_timeout</literal> value is
+          initialized from the global
+          <literal role="sysvar">wait_timeout</literal> value or from
+          the global
+          <literal role="sysvar">interactive_timeout</literal> value,
+          depending on the type of client (as defined by the
+          <literal>CLIENT_INTERACTIVE</literal> connect option to
+          <literal role="cfunc">mysql_real_connect()</literal>). See
+          also <literal role="sysvar">interactive_timeout</literal>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        Expert use of server system variables is part of the service
+        offered by the MySQL Enterprise Monitor. To subscribe, see
+        <ulink url="advisors.html"/>.
+      </para>
+
+    </formalpara>
+
+  </section>
+
+  <section id="server-session-variables">
+
+    <title>Session System Variables</title>
+
+    <indexterm>
+      <primary>session system variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>session server variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>session variables</primary>
+      <secondary>server</secondary>
+    </indexterm>
+
+    <indexterm>
+      <primary>session variables</primary>
+      <secondary>system</secondary>
+    </indexterm>
+
+    <para>
+      Several system variables exist only as session variables. These
+      cannot be set at server startup but can be assigned values at
+      runtime using the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement (except for those that are read only). Most of them are
+      not displayed by <literal role="stmt">SHOW VARIABLES</literal>,
+      but you can obtain their values using
+      <literal role="stmt">SELECT</literal>. This section describes the
+      session system variables. For information about setting or
+      displaying their values, see
+      <xref linkend="using-system-variables"/>. For example:
+    </para>
+
+<programlisting>
+mysql&gt; <userinput>SELECT @@autocommit;</userinput>
++--------------+
+| @@autocommit |
++--------------+
+|            1 |
++--------------+
+</programlisting>
+
+    <para>
+      The lettercase of these variables does not matter.
+    </para>
+
+    <para>
+      The following table lists the system variables that have only
+      session scope:
+    </para>
+
+    <para condition="dynamic:optvar:fullsummary" role="5.0:mysqld:sessionvar:Session System Variable Summary"/>
+
+    <itemizedlist>
+
+      <listitem>
+        <para id="sysvar_autocommit">
+          <indexterm>
+            <primary>autocommit session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>autocommit</secondary>
+          </indexterm>
+
+          <literal role="sysvar">autocommit</literal>
+        </para>
+
+        <para>
+          The autocommit mode. If set to 1, all changes to a table take
+          effect immediately. If set to 0, you must use
+          <literal role="stmt">COMMIT</literal> to accept a transaction
+          or <literal role="stmt" condition="commit">ROLLBACK</literal>
+          to cancel it. By default, client connections begin with
+          <literal role="sysvar">autocommit</literal> set to 1. If you
+          change <literal role="sysvar">autocommit</literal> mode from 0
+          to 1, MySQL performs an automatic
+          <literal role="stmt">COMMIT</literal> of any open transaction.
+          Another way to begin a transaction is to use a
+          <literal role="stmt" condition="commit">START
+          TRANSACTION</literal> or
+          <literal role="stmt" condition="commit">BEGIN</literal>
+          statement. See <xref linkend="commit"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_big_tables">
+          <indexterm>
+            <primary>big_tables session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>big_tables</secondary>
+          </indexterm>
+
+          <literal role="sysvar">big_tables</literal>
+        </para>
+
+        <para>
+          <indexterm>
+            <primary>table is full</primary>
+          </indexterm>
+
+          If set to 1, all temporary tables are stored on disk rather
+          than in memory. This is a little slower, but the error
+          <literal>The table <replaceable>tbl_name</replaceable> is
+          full</literal> does not occur for
+          <literal role="stmt">SELECT</literal> operations that require
+          a large temporary table. The default value for a new
+          connection is 0 (use in-memory temporary tables). Normally,
+          you should never need to set this variable, because in-memory
+          tables are automatically converted to disk-based tables as
+          required.
+        </para>
+
+        <note>
+          <para>
+            This variable was formerly named
+            <literal>sql_big_tables</literal>.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_error_count">
+          <indexterm>
+            <primary>error_count session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>error_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">error_count</literal>
+        </para>
+
+        <para>
+          The number of errors that resulted from the last statement
+          that generated messages. This variable is read only. See
+          <xref linkend="show-errors"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_foreign_key_checks">
+          <indexterm>
+            <primary>foreign_key_checks session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>foreign_key_checks</secondary>
+          </indexterm>
+
+          <literal role="sysvar">foreign_key_checks</literal>
+        </para>
+
+        <para>
+          If set to 1 (the default), foreign key constraints for
+          <literal>InnoDB</literal> tables are checked. If set to 0,
+          they are ignored. Disabling foreign key checking can be useful
+          for reloading <literal>InnoDB</literal> tables in an order
+          different from that required by their parent/child
+          relationships. See
+          <xref linkend="innodb-foreign-key-constraints"/>.
+        </para>
+
+        <para>
+          Setting <literal role="sysvar">foreign_key_checks</literal> to
+          0 also affects data definition statements:
+          <literal role="stmt">DROP DATABASE</literal> drops a database
+          even if it contains tables that have foreign keys that are
+          referred to by tables outside the database, and
+          <literal role="stmt">DROP TABLE</literal> drops tables that
+          have foreign keys that are referred to by other tables.
+        </para>
+
+        <note>
+          <para>
+            Setting <literal role="sysvar">foreign_key_checks</literal>
+            to 1 does not trigger a scan of the existing table data.
+            Therefore, rows added to the table while
+            <literal role="sysvar">foreign_key_checks = 0</literal> will
+            not be verified for consistency.
+          </para>
+        </note>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_identity">
+          <indexterm>
+            <primary>identity session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>identity</secondary>
+          </indexterm>
+
+          <literal role="sysvar">identity</literal>
+        </para>
+
+        <para>
+          This variable is a synonym for the
+          <literal role="sysvar">last_insert_id</literal> variable. It
+          exists for compatibility with other database systems. You can
+          read its value with <literal>SELECT @@identity</literal>, and
+          set it using <literal>SET identity</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_insert_id">
+          <indexterm>
+            <primary>insert_id session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>insert_id</secondary>
+          </indexterm>
+
+          <literal role="sysvar">insert_id</literal>
+        </para>
+
+        <para>
+          The value to be used by the following
+          <literal role="stmt">INSERT</literal> or
+          <literal role="stmt">ALTER TABLE</literal> statement when
+          inserting an <literal>AUTO_INCREMENT</literal> value. This is
+          mainly used with the binary log.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_last_insert_id">
+          <indexterm>
+            <primary>last_insert_id session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>last_insert_id</secondary>
+          </indexterm>
+
+          <literal role="sysvar">last_insert_id</literal>
+        </para>
+
+        <para>
+          The value to be returned from
+          <literal role="func">LAST_INSERT_ID()</literal>. This is
+          stored in the binary log when you use
+          <literal role="func">LAST_INSERT_ID()</literal> in a statement
+          that updates a table. Setting this variable does not update
+          the value returned by the
+          <literal role="cfunc">mysql_insert_id()</literal> C API
+          function.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_profiling">
+          <indexterm>
+            <primary>profiling session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>profiling</secondary>
+          </indexterm>
+
+          <literal role="sysvar">profiling</literal>
+        </para>
+
+        <para>
+          If set to 0 (the default), statement profiling is disabled. If
+          set to 1, statement profiling is enabled and the
+          <literal role="stmt">SHOW PROFILES</literal> and
+          <literal role="stmt">SHOW PROFILE</literal> statements provide
+          access to profiling information. See
+          <xref linkend="show-profiles"/>. This variable was added in
+          MySQL 5.0.37. <emphasis>Note</emphasis>: This option does not
+          apply to MySQL Enterprise Server users.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_profiling_history_size">
+          <indexterm>
+            <primary>profiling_history_size session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>profiling_history_size</secondary>
+          </indexterm>
+
+          <literal role="sysvar">profiling_history_size</literal>
+        </para>
+
+        <para>
+          The number of statements for which to maintain profiling
+          information if <literal role="sysvar">profiling</literal> is
+          enabled. The default value is 15. The maximum value is 100.
+          Setting the value to 0 effectively disables profiling. See
+          <xref linkend="show-profiles"/>. This variable was added in
+          MySQL 5.0.37. <emphasis>Note</emphasis>: This option does not
+          apply to MySQL Enterprise Server users.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_rand_seed1">
+          <indexterm>
+            <primary>rand_seed1 session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>rand_seed1</secondary>
+          </indexterm>
+
+          <literal role="sysvar">rand_seed1</literal>
+        </para>
+
+        <para>
+          The <literal role="sysvar">rand_seed1</literal> and
+          <literal role="sysvar">rand_seed2</literal> variables exist as
+          session variables only, and can be set but not read. They are
+          not shown in the output of <literal role="stmt">SHOW
+          VARIABLES</literal>.
+        </para>
+
+        <para>
+          The purpose of these variables is to support replication of
+          the <literal role="func">RAND()</literal> function. For
+          statements that invoke <literal role="func">RAND()</literal>,
+          the master passes two values to the slave, where they are used
+          to seed the random number generator. The slave uses these
+          values to set the session variables
+          <literal role="sysvar">rand_seed1</literal> and
+          <literal role="sysvar">rand_seed2</literal> so that
+          <literal role="func">RAND()</literal> on the slave generates
+          the same value as on the master.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_rand_seed2">
+          <indexterm>
+            <primary>rand_seed2 session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>rand_seed2</secondary>
+          </indexterm>
+
+          <literal role="sysvar">rand_seed2</literal>
+        </para>
+
+        <para>
+          See the description for
+          <literal role="sysvar">rand_seed1</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_auto_is_null">
+          <indexterm>
+            <primary>sql_auto_is_null session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_auto_is_null</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_auto_is_null</literal>
+        </para>
+
+        <para>
+          If set to 1 (the default), you can find the last inserted row
+          for a table that contains an <literal>AUTO_INCREMENT</literal>
+          column by using the following construct:
+        </para>
+
+<programlisting>
+WHERE <replaceable>auto_increment_column</replaceable> IS NULL
+</programlisting>
+
+        <para>
+          This behavior is used by some ODBC programs, such as Access.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_big_selects">
+          <indexterm>
+            <primary>sql_big_selects session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_big_selects</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_big_selects</literal>
+        </para>
+
+        <para>
+          If set to 0, MySQL aborts
+          <literal role="stmt">SELECT</literal> statements that are
+          likely to take a very long time to execute (that is,
+          statements for which the optimizer estimates that the number
+          of examined rows exceeds the value of
+          <literal role="sysvar">max_join_size</literal>). This is
+          useful when an inadvisable <literal>WHERE</literal> statement
+          has been issued. The default value for a new connection is 1,
+          which allows all <literal role="stmt">SELECT</literal>
+          statements.
+        </para>
+
+        <para>
+          If you set the <literal role="sysvar">max_join_size</literal>
+          system variable to a value other than
+          <literal>DEFAULT</literal>,
+          <literal role="sysvar">sql_big_selects</literal> is set to 0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_buffer_result">
+          <indexterm>
+            <primary>sql_buffer_result session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_buffer_result</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_buffer_result</literal>
+        </para>
+
+        <para>
+          If set to 1,
+          <literal role="sysvar">sql_buffer_result</literal> forces
+          results from <literal role="stmt">SELECT</literal> statements
+          to be put into temporary tables. This helps MySQL free the
+          table locks early and can be beneficial in cases where it
+          takes a long time to send results to the client. The default
+          value is 0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_log_bin">
+          <indexterm>
+            <primary>sql_log_bin session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_log_bin</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_log_bin</literal>
+        </para>
+
+        <para>
+          If set to 0, no logging is done to the binary log for the
+          client. The client must have the
+          <literal role="priv">SUPER</literal> privilege to set this
+          option. The default value is 1.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_log_off">
+          <indexterm>
+            <primary>sql_log_off session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_log_off</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_log_off</literal>
+        </para>
+
+        <para>
+          If set to 1, no logging is done to the general query log for
+          this client. The client must have the
+          <literal role="priv">SUPER</literal> privilege to set this
+          option. The default value is 0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_log_update">
+          <indexterm>
+            <primary>sql_log_update session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_log_update</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_log_update</literal>
+        </para>
+
+        <para>
+          This variable is deprecated, and is mapped to
+          <literal role="sysvar">sql_log_bin</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_notes">
+          <indexterm>
+            <primary>sql_notes session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_notes</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_notes</literal>
+        </para>
+
+        <para>
+          If set to 1 (the default), warnings of <literal>Note</literal>
+          level are recorded. If set to 0, <literal>Note</literal>
+          warnings are suppressed. <command>mysqldump</command> includes
+          output to set this variable to 0 so that reloading the dump
+          file does not produce warnings for events that do not affect
+          the integrity of the reload operation.
+          <literal role="sysvar">sql_notes</literal> was added in MySQL
+          5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_quote_show_create">
+          <indexterm>
+            <primary>sql_quote_show_create session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_quote_show_create</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_quote_show_create</literal>
+        </para>
+
+        <para>
+          If set to 1 (the default), the server quotes identifiers for
+          <literal role="stmt">SHOW CREATE TABLE</literal> and
+          <literal role="stmt">SHOW CREATE DATABASE</literal>
+          statements. If set to 0, quoting is disabled. This option is
+          enabled by default so that replication works for identifiers
+          that require quoting. See <xref linkend="show-create-table"/>,
+          and <xref linkend="show-create-database"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_safe_updates">
+          <indexterm>
+            <primary>sql_safe_updates session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_safe_updates</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_safe_updates</literal>
+        </para>
+
+        <para>
+          If set to 1, MySQL aborts
+          <literal role="stmt">UPDATE</literal> or
+          <literal role="stmt">DELETE</literal> statements that do not
+          use a key in the <literal>WHERE</literal> clause or a
+          <literal>LIMIT</literal> clause. This makes it possible to
+          catch <literal role="stmt">UPDATE</literal> or
+          <literal role="stmt">DELETE</literal> statements where keys
+          are not used properly and that would probably change or delete
+          a large number of rows. The default value is 0.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_sql_warnings">
+          <indexterm>
+            <primary>sql_warnings session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>sql_warnings</secondary>
+          </indexterm>
+
+          <literal role="sysvar">sql_warnings</literal>
+        </para>
+
+        <para>
+          This variable controls whether single-row
+          <literal role="stmt">INSERT</literal> statements produce an
+          information string if warnings occur. The default is 0. Set
+          the value to 1 to produce an information string.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_timestamp">
+          <indexterm>
+            <primary>timestamp session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>timestamp</secondary>
+          </indexterm>
+
+          <literal role="sysvar">timestamp =
+          {<replaceable>timestamp_value</replaceable> |
+          DEFAULT}</literal>
+        </para>
+
+        <para>
+          Set the time for this client. This is used to get the original
+          timestamp if you use the binary log to restore rows.
+          <replaceable>timestamp_value</replaceable> should be a Unix
+          epoch timestamp, not a MySQL timestamp.
+        </para>
+
+        <para>
+          <literal>SET timestamp</literal> affects the value returned by
+          <literal role="func">NOW()</literal> but not by
+          <literal role="func">SYSDATE()</literal>. This means that
+          timestamp settings in the binary log have no effect on
+          invocations of <literal role="func">SYSDATE()</literal>. The
+          server can be started with the
+          <option>--sysdate-is-now</option> option to cause
+          <literal role="func">SYSDATE()</literal> to be an alias for
+          <literal role="func">NOW()</literal>, in which case
+          <literal>SET timestamp</literal> affects both functions.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_unique_checks">
+          <indexterm>
+            <primary>unique_checks session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>unique_checks</secondary>
+          </indexterm>
+
+          <literal role="sysvar">unique_checks</literal>
+        </para>
+
+        <para>
+          If set to 1 (the default), uniqueness checks for secondary
+          indexes in <literal>InnoDB</literal> tables are performed. If
+          set to 0, storage engines are allowed to assume that duplicate
+          keys are not present in input data. If you know for certain
+          that your data does not contain uniqueness violations, you can
+          set this to 0 to speed up large table imports to
+          <literal>InnoDB</literal>.
+        </para>
+
+        <para>
+          Note that setting this variable to 0 does not
+          <emphasis>require</emphasis> storage engines to ignore
+          duplicate keys. An engine is still allowed to check for them
+          and issue duplicate-key errors if it detects them.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sysvar_warning_count">
+          <indexterm>
+            <primary>warning_count session variable</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>session variable</primary>
+            <secondary>warning_count</secondary>
+          </indexterm>
+
+          <literal role="sysvar">warning_count</literal>
+        </para>
+
+        <para>
+          The number of errors, warnings, and notes that resulted from
+          the last statement that generated messages. This variable is
+          read only. See <xref linkend="show-warnings"/>.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+  </section>
+
+  <section id="using-system-variables">
+
+    <title>Using System Variables</title>
+
+    <indexterm>
+      <primary>system variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>variables</primary>
+      <secondary>system</secondary>
+    </indexterm>
+
+    <para>
+      The MySQL server maintains many system variables that indicate how
+      it is configured. <xref linkend="server-system-variables"/>,
+      describes the meaning of these variables. Each system variable has
+      a default value. System variables can be set at server startup
+      using options on the command line or in an option file. Most of
+      them can be changed dynamically while the server is running by
+      means of the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement, which enables you to modify operation of the server
+      without having to stop and restart it. You can refer to system
+      variable values in expressions.
+    </para>
+
+    <para>
+      The server maintains two kinds of system variables. Global
+      variables affect the overall operation of the server. Session
+      variables affect its operation for individual client connections.
+      A given system variable can have both a global and a session
+      value. Global and session system variables are related as follows:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          When the server starts, it initializes all global variables to
+          their default values. These defaults can be changed by options
+          specified on the command line or in an option file. (See
+          <xref linkend="program-options"/>.)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          The server also maintains a set of session variables for each
+          client that connects. The client's session variables are
+          initialized at connect time using the current values of the
+          corresponding global variables. For example, the client's SQL
+          mode is controlled by the session
+          <literal role="sysvar">sql_mode</literal> value, which is
+          initialized when the client connects to the value of the
+          global <literal role="sysvar">sql_mode</literal> value.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      System variable values can be set globally at server startup by
+      using options on the command line or in an option file. When you
+      use a startup option to set a variable that takes a numeric value,
+      the value can be given with a suffix of <literal>K</literal>,
+      <literal>M</literal>, or <literal>G</literal> (either uppercase or
+      lowercase) to indicate a multiplier of 1024,
+      1024<superscript>2</superscript> or
+      1024<superscript>3</superscript>; that is, units of kilobytes,
+      megabytes, or gigabytes, respectively. Thus, the following command
+      starts the server with a query cache size of 16 megabytes and a
+      maximum packet size of one gigabyte:
+    </para>
+
+<programlisting>
+mysqld --query_cache_size=16M --max_allowed_packet=1G
+</programlisting>
+
+    <para>
+      Within an option file, those variables are set like this:
+    </para>
+
+<programlisting>
+[mysqld]
+query_cache_size=16M
+max_allowed_packet=1G
+</programlisting>
+
+    <para>
+      The lettercase of suffix letters does not matter;
+      <literal>16M</literal> and <literal>16m</literal> are equivalent,
+      as are <literal>1G</literal> and <literal>1g</literal>.
+    </para>
+
+    <para>
+      If you want to restrict the maximum value to which a system
+      variable can be set at runtime with the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement, you can specify this maximum by using an option of the
+      form
+      <option>--maximum-<replaceable>var_name</replaceable>=<replaceable>value</replaceable></option>
+      at server startup. For example, to prevent the value of
+      <literal role="sysvar">query_cache_size</literal> from being
+      increased to more than 32MB at runtime, use the option
+      <option>--maximum-query_cache_size=32M</option>.
+    </para>
+
+    <remark role="note">
+      [pd] Following paragraphs appear both in set-option and
+      using-system-variables. Revisions should be made both places.
+    </remark>
+
+    <para>
+      Many system variables are dynamic and can be changed while the
+      server runs by using the
+      <literal role="stmt" condition="set-option">SET</literal>
+      statement. For a list, see
+      <xref linkend="dynamic-system-variables"/>. To change a system
+      variable with
+      <literal role="stmt" condition="set-option">SET</literal>, refer
+      to it as <replaceable>var_name</replaceable>, optionally preceded
+      by a modifier:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          To indicate explicitly that a variable is a global variable,
+          precede its name by <literal>GLOBAL</literal> or
+          <literal>@@global.</literal>. The
+          <literal role="priv">SUPER</literal> privilege is required to
+          set global variables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          To indicate explicitly that a variable is a session variable,
+          precede its name by <literal>SESSION</literal>,
+          <literal>@@session.</literal>, or <literal>@@</literal>.
+          Setting a session variable requires no special privilege, but
+          a client can change only its own session variables, not those
+          of any other client.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <literal>LOCAL</literal> and <literal>@@local.</literal> are
+          synonyms for <literal>SESSION</literal> and
+          <literal>@@session.</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          If no modifier is present,
+          <literal role="stmt" condition="set-option">SET</literal>
+          changes the session variable.
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      A <literal role="stmt" condition="set-option">SET</literal>
+      statement can contain multiple variable assignments, separated by
+      commas. If you set several system variables, the most recent
+      <literal>GLOBAL</literal> or <literal>SESSION</literal> modifier
+      in the statement is used for following variables that have no
+      modifier specified.
+    </para>
+
+    <para>
+      Examples:
+    </para>
+
+<programlisting>
+SET sort_buffer_size=10000;
+SET @@local.sort_buffer_size=10000;
+SET GLOBAL sort_buffer_size=1000000, SESSION sort_buffer_size=1000000;
+SET @@sort_buffer_size=1000000;
+SET @@global.sort_buffer_size=1000000, @@local.sort_buffer_size=1000000;
+</programlisting>
+
+    <para>
+      The <literal>@@<replaceable>var_name</replaceable></literal>
+      syntax for system variables is supported for compatibility with
+      some other database systems.
+    </para>
+
+    <para>
+      If you change a session system variable, the value remains in
+      effect until your session ends or until you change the variable to
+      a different value. The change is not visible to other clients.
+    </para>
+
+    <para>
+      If you change a global system variable, the value is remembered
+      and used for new connections until the server restarts. (To make a
+      global system variable setting permanent, you should set it in an
+      option file.) The change is visible to any client that accesses
+      that global variable. However, the change affects the
+      corresponding session variable only for clients that connect after
+      the change. The global variable change does not affect the session
+      variable for any client that is currently connected (not even that
+      of the client that issues the
+      <literal role="stmt" condition="set-option">SET GLOBAL</literal>
+      statement).
+    </para>
+
+    <para>
+      To prevent incorrect usage, MySQL produces an error if you use
+      <literal role="stmt" condition="set-option">SET GLOBAL</literal>
+      with a variable that can only be used with
+      <literal role="stmt" condition="set-option">SET SESSION</literal>
+      or if you do not specify <literal>GLOBAL</literal> (or
+      <literal>@@global.</literal>) when setting a global variable.
+    </para>
+
+    <para>
+      To set a <literal>SESSION</literal> variable to the
+      <literal>GLOBAL</literal> value or a <literal>GLOBAL</literal>
+      value to the compiled-in MySQL default value, use the
+      <literal>DEFAULT</literal> keyword. For example, the following two
+      statements are identical in setting the session value of
+      <literal role="sysvar">max_join_size</literal> to the global
+      value:
+    </para>
+
+<programlisting>
+SET max_join_size=DEFAULT;
+SET @@session.max_join_size=@@global.max_join_size;
+</programlisting>
+
+    <para>
+      Not all system variables can be set to <literal>DEFAULT</literal>.
+      In such cases, use of <literal>DEFAULT</literal> results in an
+      error.
+    </para>
+
+    <para>
+      You can refer to the values of specific global or sesson system
+      variables in expressions by using one of the
+      <literal>@@</literal>-modifiers. For example, you can retrieve
+      values in a <literal role="stmt">SELECT</literal> statement like
+      this:
+    </para>
+
+<programlisting>
+SELECT @@global.sql_mode, @@session.sql_mode, @@sql_mode;
+</programlisting>
+
+    <para>
+      When you refer to a system variable in an expression as
+      <literal>@@<replaceable>var_name</replaceable></literal> (that is,
+      when you do not specify <literal>@@global.</literal> or
+      <literal>@@session.</literal>), MySQL returns the session value if
+      it exists and the global value otherwise. (This differs from
+      <literal>SET @@<replaceable>var_name</replaceable> =
+      <replaceable>value</replaceable></literal>, which always refers to
+      the session value.)
+    </para>
+
+    <para>
+      Suffixes for specifying a value multiplier can be used when
+      setting a variable at server startup, but not to set the value
+      with <literal role="stmt" condition="set-option">SET</literal> at
+      runtime. On the other hand, with
+      <literal role="stmt" condition="set-option">SET</literal> you can
+      assign a variable's value using an expression, which is not true
+      when you set a variable at server startup. For example, the first
+      of the following lines is legal at server startup, but the second
+      is not:
+    </para>
+
+<programlisting>
+shell&gt; <userinput>mysql --max_allowed_packet=16M</userinput>
+shell&gt; <userinput>mysql --max_allowed_packet=16*1024*1024</userinput>
+</programlisting>
+
+    <para>
+      Conversely, the second of the following lines is legal at runtime,
+      but the first is not:
+    </para>
+
+<programlisting>
+mysql&gt; <userinput>SET GLOBAL max_allowed_packet=16M;</userinput>
+mysql&gt; <userinput>SET GLOBAL max_allowed_packet=16*1024*1024;</userinput>
+</programlisting>
+
+    <note>
+      <para>
+        Some system variables can be enabled with the
+        <literal role="stmt" condition="set-option">SET</literal>
+        statement by setting them to <literal>ON</literal> or
+        <literal>1</literal>, or disabled by setting them to
+        <literal>OFF</literal> or <literal>0</literal>. However, to set
+        such a variable on the command line or in an option file, you
+        must set it to <literal>1</literal> or <literal>0</literal>;
+        setting it to <literal>ON</literal> or <literal>OFF</literal>
+        will not work. For example, on the command line,
+        <option>--delay_key_write=1</option> works but
+        <option>--delay_key_write=ON</option> does not.
+      </para>
+    </note>
+
+    <para>
+      To display system variable names and values, use the
+      <literal role="stmt">SHOW VARIABLES</literal> statement:
+    </para>
+
+<programlisting>
+mysql&gt; <userinput>SHOW VARIABLES;</userinput>
++--------+--------------------------------------------------------------+
+| Variable_name                   | Value                               |
++--------+--------------------------------------------------------------+
+| auto_increment_increment        | 1                                   |
+| auto_increment_offset           | 1                                   |
+| automatic_sp_privileges         | ON                                  |
+| back_log                        | 50                                  |
+| basedir                         | /                                   |
+| bdb_cache_size                  | 8388600                             |
+| bdb_home                        | /var/lib/mysql/                     |
+| bdb_log_buffer_size             | 32768                               |
+| bdb_logdir                      |                                     |
+| bdb_max_lock                    | 10000                               |
+| bdb_shared_data                 | OFF                                 |
+| bdb_tmpdir                      | /tmp/                               |
+| binlog_cache_size               | 32768                               |
+| bulk_insert_buffer_size         | 8388608                             |
+| character_set_client            | latin1                              |
+| character_set_connection        | latin1                              |
+| character_set_database          | latin1                              |
+| character_set_results           | latin1                              |
+| character_set_server            | latin1                              |
+| character_set_system            | utf8                                |
+| character_sets_dir              | /usr/share/mysql/charsets/          |
+| collation_connection            | latin1_swedish_ci                   |
+| collation_database              | latin1_swedish_ci                   |
+| collation_server                | latin1_swedish_ci                   |
+...
+| innodb_additional_mem_pool_size | 1048576                             |
+| innodb_autoextend_increment     | 8                                   |
+| innodb_buffer_pool_awe_mem_mb   | 0                                   |
+| innodb_buffer_pool_size         | 8388608                             |
+| innodb_checksums                | ON                                  |
+| innodb_commit_concurrency       | 0                                   |
+| innodb_concurrency_tickets      | 500                                 |
+| innodb_data_file_path           | ibdata1:10M:autoextend              |
+| innodb_data_home_dir            |                                     |
+...
+| version                         | 5.0.19                              |
+| version_comment                 | MySQL Community Edition - (GPL)     |
+| version_compile_machine         | i686                                |
+| version_compile_os              | pc-linux-gnu                        |
+| wait_timeout                    | 28800                               |
++--------+--------------------------------------------------------------+
+</programlisting>
+
+    <remark role="note">
+      [pd] Following paragraphs appear both in show-variables and
+      using-system-variables. Revisions should be made both places.
+    </remark>
+
+    <para>
+      With a <literal role="op">LIKE</literal> clause, the statement
+      displays only those variables that match the pattern. To obtain a
+      specific variable name, use a <literal role="op">LIKE</literal>
+      clause as shown:
+    </para>
+
+<programlisting>
+SHOW VARIABLES LIKE 'max_join_size';
+SHOW SESSION VARIABLES LIKE 'max_join_size';
+</programlisting>
+
+    <para>
+      To get a list of variables whose name match a pattern, use the
+      <quote><literal>%</literal></quote> wildcard character in a
+      <literal role="op">LIKE</literal> clause:
+    </para>
+
+<programlisting>
+SHOW VARIABLES LIKE '%size%';
+SHOW GLOBAL VARIABLES LIKE '%size%';
+</programlisting>
+
+    <para>
+      Wildcard characters can be used in any position within the pattern
+      to be matched. Strictly speaking, because
+      <quote><literal>_</literal></quote> is a wildcard that matches any
+      single character, you should escape it as
+      <quote><literal>\_</literal></quote> to match it literally. In
+      practice, this is rarely necessary.
+    </para>
+
+    <para>
+      For <literal role="stmt">SHOW VARIABLES</literal>, if you specify
+      neither <literal>GLOBAL</literal> nor <literal>SESSION</literal>,
+      MySQL returns <literal>SESSION</literal> values.
+    </para>
+
+    <para>
+      The reason for requiring the <literal>GLOBAL</literal> keyword
+      when setting <literal>GLOBAL</literal>-only variables but not when
+      retrieving them is to prevent problems in the future. If we were
+      to remove a <literal>SESSION</literal> variable that has the same
+      name as a <literal>GLOBAL</literal> variable, a client with the
+      <literal role="priv">SUPER</literal> privilege might accidentally
+      change the <literal>GLOBAL</literal> variable rather than just the
+      <literal>SESSION</literal> variable for its own connection. If we
+      add a <literal>SESSION</literal> variable with the same name as a
+      <literal>GLOBAL</literal> variable, a client that intends to
+      change the <literal>GLOBAL</literal> variable might find only its
+      own <literal>SESSION</literal> variable changed.
+    </para>
+
+    <section id="structured-system-variables">
+
+      <title>Structured System Variables</title>
+
+      <para>
+        A structured variable differs from a regular system variable in
+        two respects:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            Its value is a structure with components that specify server
+            parameters considered to be closely related.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            There might be several instances of a given type of
+            structured variable. Each one has a different name and
+            refers to a different resource maintained by the server.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        MySQL &current-series; supports one structured variable type,
+        which specifies parameters governing the operation of key
+        caches. A key cache structured variable has these components:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            <literal role="sysvar">key_buffer_size</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <literal role="sysvar">key_cache_block_size</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <literal role="sysvar">key_cache_division_limit</literal>
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <literal role="sysvar">key_cache_age_threshold</literal>
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        This section describes the syntax for referring to structured
+        variables. Key cache variables are used for syntax examples, but
+        specific details about how key caches operate are found
+        elsewhere, in <xref linkend="myisam-key-cache"/>.
+      </para>
+
+      <para>
+        To refer to a component of a structured variable instance, you
+        can use a compound name in
+        <replaceable>instance_name.component_name</replaceable> format.
+        Examples:
+      </para>
+
+<programlisting>
+hot_cache.key_buffer_size
+hot_cache.key_cache_block_size
+cold_cache.key_cache_block_size
+</programlisting>
+
+      <para>
+        For each structured system variable, an instance with the name
+        of <literal>default</literal> is always predefined. If you refer
+        to a component of a structured variable without any instance
+        name, the <literal>default</literal> instance is used. Thus,
+        <literal>default.key_buffer_size</literal> and
+        <literal role="sysvar">key_buffer_size</literal> both refer to
+        the same system variable.
+      </para>
+
+      <para>
+        Structured variable instances and components follow these naming
+        rules:
+      </para>
+
+      <itemizedlist>
+
+        <listitem>
+          <para>
+            For a given type of structured variable, each instance must
+            have a name that is unique <emphasis>within</emphasis>
+            variables of that type. However, instance names need not be
+            unique <emphasis>across</emphasis> structured variable
+            types. For example, each structured variable has an instance
+            named <literal>default</literal>, so
+            <literal>default</literal> is not unique across variable
+            types.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            The names of the components of each structured variable type
+            must be unique across all system variable names. If this
+            were not true (that is, if two different types of structured
+            variables could share component member names), it would not
+            be clear which default structured variable to use for
+            references to member names that are not qualified by an
+            instance name.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            If a structured variable instance name is not legal as an
+            unquoted identifier, refer to it as a quoted identifier
+            using backticks. For example, <literal>hot-cache</literal>
+            is not legal, but <literal>`hot-cache`</literal> is.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            <literal>global</literal>, <literal>session</literal>, and
+            <literal>local</literal> are not legal instance names. This
+            avoids a conflict with notation such as
+            <literal>@@global.<replaceable>var_name</replaceable></literal>
+            for referring to non-structured system variables.
+          </para>
+        </listitem>
+
+      </itemizedlist>
+
+      <para>
+        Currently, the first two rules have no possibility of being
+        violated because the only structured variable type is the one
+        for key caches. These rules will assume greater significance if
+        some other type of structured variable is created in the future.
+      </para>
+
+      <para>
+        With one exception, you can refer to structured variable
+        components using compound names in any context where simple
+        variable names can occur. For example, you can assign a value to
+        a structured variable using a command-line option:
+      </para>
+
+<programlisting>
+shell&gt; <userinput>mysqld --hot_cache.key_buffer_size=64K</userinput>
+</programlisting>
+
+      <para>
+        In an option file, use this syntax:
+      </para>
+
+<programlisting>
+[mysqld]
+hot_cache.key_buffer_size=64K
+</programlisting>
+
+      <para>
+        If you start the server with this option, it creates a key cache
+        named <literal>hot_cache</literal> with a size of 64KB in
+        addition to the default key cache that has a default size of
+        8MB.
+      </para>
+
+      <para>
+        Suppose that you start the server as follows:
+      </para>
+
+<programlisting>
+shell&gt; <userinput>mysqld --key_buffer_size=256K \</userinput>
+         <userinput>--extra_cache.key_buffer_size=128K \</userinput>
+         <userinput>--extra_cache.key_cache_block_size=2048</userinput>
+</programlisting>
+
+      <para>
+        In this case, the server sets the size of the default key cache
+        to 256KB. (You could also have written
+        <option>--default.key_buffer_size=256K</option>.) In addition,
+        the server creates a second key cache named
+        <literal>extra_cache</literal> that has a size of 128KB, with
+        the size of block buffers for caching table index blocks set to
+        2048 bytes.
+      </para>
+
+      <para>
+        The following example starts the server with three different key
+        caches having sizes in a 3:1:1 ratio:
+      </para>
+
+<programlisting>
+shell&gt; <userinput>mysqld --key_buffer_size=6M \</userinput>
+         <userinput>--hot_cache.key_buffer_size=2M \</userinput>
+         <userinput>--cold_cache.key_buffer_size=2M</userinput>
+</programlisting>
+
+      <para>
+        Structured variable values may be set and retrieved at runtime
+        as well. For example, to set a key cache named
+        <literal>hot_cache</literal> to a size of 10MB, use either of
+        these statements:
+      </para>
+
+<programlisting>
+mysql&gt; <userinput>SET GLOBAL hot_cache.key_buffer_size = 10*1024*1024;</userinput>
+mysql&gt; <userinput>SET @@global.hot_cache.key_buffer_size = 10*1024*1024;</userinput>
+</programlisting>
+
+      <para>
+        To retrieve the cache size, do this:
+      </para>
+
+<programlisting>
+mysql&gt; <userinput>SELECT @@global.hot_cache.key_buffer_size;</userinput>
+</programlisting>
+
+      <para>
+        However, the following statement does not work. The variable is
+        not interpreted as a compound name, but as a simple string for a
+        <literal role="op">LIKE</literal> pattern-matching operation:
+      </para>
+
+<programlisting>
+mysql&gt; <userinput>SHOW GLOBAL VARIABLES LIKE 'hot_cache.key_buffer_size';</userinput>
+</programlisting>
+
+      <para>
+        This is the exception to being able to use structured variable
+        names anywhere a simple variable name may occur.
+      </para>
+
+    </section>
+
+    <section id="dynamic-system-variables">
+
+      <title>Dynamic System Variables</title>
+
+      <para>
+        Many server system variables are dynamic and can be set at
+        runtime using <literal role="stmt" condition="set-option">SET
+        GLOBAL</literal> or
+        <literal role="stmt" condition="set-option">SET
+        SESSION</literal>. You can also obtain their values using
+        <literal role="stmt">SELECT</literal>. See
+        <xref linkend="using-system-variables"/>.
+      </para>
+
+      <para>
+        The following table shows the full list of all dynamic system
+        variables. The last column indicates for each variable whether
+        <literal>GLOBAL</literal> or <literal>SESSION</literal> (or
+        both) apply. The table also lists session options that can be
+        set with the
+        <literal role="stmt" condition="set-option">SET</literal>
+        statement. <xref linkend="server-session-variables"/>, discusses
+        these options.
+      </para>
+
+      <para>
+        Variables that have a type of <quote>string</quote> take a
+        string value. Variables that have a type of
+        <quote>numeric</quote> take a numeric value. Variables that have
+        a type of <quote>boolean</quote> can be set to 0, 1,
+        <literal>ON</literal> or <literal>OFF</literal>. (If you set
+        them on the command line or in an option file, use the numeric
+        values.) Variables that are marked as <quote>enumeration</quote>
+        normally should be set to one of the available values for the
+        variable, but can also be set to the number that corresponds to
+        the desired enumeration value. For enumerated system variables,
+        the first enumeration value corresponds to 0. This differs from
+        <literal role="type">ENUM</literal> columns, for which the first
+        enumeration value corresponds to 1.
+      </para>
+
+      <para condition="dynamic:optvar:dynamicvarsummary" role="5.0:mysqld:dynamicvar:Dynamic Variable Summary"/>
+
+      <formalpara role="mnmas">
+
+        <title>MySQL Enterprise</title>
+
+        <para>
+          Improper configuration of system variables can adversely
+          affect performance and security. The MySQL Enterprise Monitor
+          continually monitors system variables and provides expert
+          advice about appropriate settings. For more information see
+          <ulink url="advisors.html"/>.
+        </para>
+
+      </formalpara>
+
+    </section>
+
+  </section>
+
+  <section id="server-status-variables">
+
+    <title>Server Status Variables</title>
+
+    <indexterm>
+      <primary>status variables</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>variables</primary>
+      <secondary>status</secondary>
+    </indexterm>
+
+    <para>
+      The server maintains many status variables that provide
+      information about its operation. You can view these variables and
+      their values by using the <literal>SHOW [GLOBAL | SESSION]
+      STATUS</literal> statement (see <xref linkend="show-status"/>).
+      The optional <literal>GLOBAL</literal> keyword aggregates the
+      values over all connections, and <literal>SESSION</literal> shows
+      the values for the current connection.
+    </para>
+
+<programlisting>
+mysql&gt; <userinput>SHOW GLOBAL STATUS;</userinput>
++-----------------------------------+------------+
+| Variable_name                     | Value      |
++-----------------------------------+------------+
+| Aborted_clients                   | 0          |
+| Aborted_connects                  | 0          |
+| Bytes_received                    | 155372598  |
+| Bytes_sent                        | 1176560426 |
+...
+| Connections                       | 30023      |
+| Created_tmp_disk_tables           | 0          |
+| Created_tmp_files                 | 3          |
+| Created_tmp_tables                | 2          |
+...
+| Threads_created                   | 217        |
+| Threads_running                   | 88         |
+| Uptime                            | 1389872    |
++-----------------------------------+------------+
+
+</programlisting>
+
+    <para>
+      The following table lists all available server status variables:
+    </para>
+
+    <para condition="dynamic:optvar:dynamicvarsummary" role="5.0:mysqld:statusvar:Status Variable Summary"/>
+
+    <note>
+      <para>
+        Before MySQL 5.0.2, <literal role="stmt">SHOW STATUS</literal>
+        returned global status values. Because the default as of 5.0.2
+        is to return session values, this is incompatible with previous
+        versions. To issue a <literal role="stmt">SHOW STATUS</literal>
+        statement that will retrieve global status values for all
+        versions of MySQL, write it like this:
+      </para>
+    </note>
+
+<programlisting>
+SHOW /*!50002 GLOBAL */ STATUS;
+</programlisting>
+
+    <para>
+      Many status variables are reset to 0 by the <literal>FLUSH
+      STATUS</literal> statement.
+    </para>
+
+    <formalpara role="mnmas">
+
+      <title>MySQL Enterprise</title>
+
+      <para>
+        For expert advice on using status variables, subscribe to the
+        MySQL Enterprise Monitor. For more information, see
+        <ulink url="advisors.html"/>.
+      </para>
+
+    </formalpara>
+
+    <para>
+      The status variables have the following meanings. Variables with
+      no version indicated were already present prior to MySQL
+      &current-series;. For information regarding their implementation
+      history, see <citetitle>&title-refman-previous;</citetitle>.
+    </para>
+
+    <para>
+      For meanings of status variables specific to MySQL Cluster, see
+      <xref linkend="mysql-cluster-status-variables"/>.
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para id="statvar_Aborted_clients">
+          <literal role="statvar">Aborted_clients</literal>
+        </para>
+
+        <para>
+          The number of connections that were aborted because the client
+          died without closing the connection properly. See
+          <xref linkend="communication-errors"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Aborted_connects">
+          <literal role="statvar">Aborted_connects</literal>
+        </para>
+
+        <para>
+          The number of failed attempts to connect to the MySQL server.
+          See <xref linkend="communication-errors"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Binlog_cache_disk_use">
+          <literal role="statvar">Binlog_cache_disk_use</literal>
+        </para>
+
+        <para>
+          The number of transactions that used the temporary binary log
+          cache but that exceeded the value of
+          <literal role="sysvar">binlog_cache_size</literal> and used a
+          temporary file to store statements from the transaction.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Binlog_cache_use">
+          <literal role="statvar">Binlog_cache_use</literal>
+        </para>
+
+        <para>
+          The number of transactions that used the temporary binary log
+          cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Bytes_received">
+          <literal role="statvar">Bytes_received</literal>
+        </para>
+
+        <para>
+          The number of bytes received from all clients.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Bytes_sent">
+          <literal role="statvar">Bytes_sent</literal>
+        </para>
+
+        <para>
+          The number of bytes sent to all clients.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Com_xxx">
+          <literal>Com_<replaceable>xxx</replaceable></literal>
+        </para>
+
+        <para>
+          The <literal>Com_<replaceable>xxx</replaceable></literal>
+          statement counter variables indicate the number of times each
+          <replaceable>xxx</replaceable> statement has been executed.
+          There is one status variable for each type of statement. For
+          example, <literal>Com_delete</literal> and
+          <literal>Com_insert</literal> count
+          <literal role="stmt">DELETE</literal> and
+          <literal role="stmt">INSERT</literal> statements,
+          respectively. However, if a query result is returned from
+          query cache, the server increments the
+          <literal role="statvar">Qcache_hits</literal> status variable,
+          not <literal>Com_select</literal>. See
+          <xref linkend="query-cache-status-and-maintenance"/>.
+        </para>
+
+        <para>
+          All of the
+          <literal>Com_stmt_<replaceable>xxx</replaceable></literal>
+          variables are increased even if a prepared statement argument
+          is unknown or an error occurred during execution. In other
+          words, their values correspond to the number of requests
+          issued, not to the number of requests successfully completed.
+        </para>
+
+        <para>
+          The <literal>Com_stmt_<replaceable>xxx</replaceable></literal>
+          status variables were added in 5.0.8:
+        </para>
+
+        <itemizedlist>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_prepare</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_execute</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_fetch</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_send_long_data</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_reset</literal>
+            </para>
+          </listitem>
+
+          <listitem>
+            <para>
+              <literal>Com_stmt_close</literal>
+            </para>
+          </listitem>
+
+        </itemizedlist>
+
+        <para>
+          Those variables stand for prepared statement commands. Their
+          names refer to the
+          <literal>COM_<replaceable>xxx</replaceable></literal> command
+          set used in the network layer. In other words, their values
+          increase whenever prepared statement API calls such as
+          <command>mysql_stmt_prepare()</command>,
+          <command>mysql_stmt_execute()</command>, and so forth are
+          executed. However, <literal>Com_stmt_prepare</literal>,
+          <literal>Com_stmt_execute</literal> and
+          <literal>Com_stmt_close</literal> also increase for
+          <literal role="stmt" condition="sql-syntax-prepared-statements">PREPARE</literal>,
+          <literal role="stmt" condition="sql-syntax-prepared-statements">EXECUTE</literal>,
+          or
+          <literal role="stmt" condition="sql-syntax-prepared-statements">DEALLOCATE
+          PREPARE</literal>, respectively. Additionally, the values of
+          the older (available since MySQL 4.1.3) statement counter
+          variables <literal>Com_prepare_sql</literal>,
+          <literal>Com_execute_sql</literal>, and
+          <literal>Com_dealloc_sql</literal> increase for the
+          <literal role="stmt" condition="sql-syntax-prepared-statements">PREPARE</literal>,
+          <literal role="stmt" condition="sql-syntax-prepared-statements">EXECUTE</literal>,
+          and
+          <literal role="stmt" condition="sql-syntax-prepared-statements">DEALLOCATE
+          PREPARE</literal> statements.
+          <literal>Com_stmt_fetch</literal> stands for the total number
+          of network round-trips issued when fetching from cursors.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Compression">
+          <literal role="statvar">Compression</literal>
+        </para>
+
+        <para>
+          Whether the client connection uses compression in the
+          client/server protocol. Added in MySQL 5.0.16.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Connections">
+          <literal role="statvar">Connections</literal>
+        </para>
+
+        <para>
+          The number of connection attempts (successful or not) to the
+          MySQL server.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Created_tmp_disk_tables">
+          <literal role="statvar">Created_tmp_disk_tables</literal>
+        </para>
+
+        <para>
+          The number of temporary tables on disk created automatically
+          by the server while executing statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Created_tmp_files">
+          <literal role="statvar">Created_tmp_files</literal>
+        </para>
+
+        <para>
+          How many temporary files <command>mysqld</command> has
+          created.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Created_tmp_tables">
+          <literal role="statvar">Created_tmp_tables</literal>
+        </para>
+
+        <para>
+          The number of in-memory temporary tables created automatically
+          by the server while executing statements. If
+          <literal role="statvar">Created_tmp_disk_tables</literal> is
+          large, you may want to increase the
+          <literal role="sysvar">tmp_table_size</literal> value to cause
+          temporary tables to be memory-based instead of disk-based.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Delayed_errors">
+          <literal role="statvar">Delayed_errors</literal>
+        </para>
+
+        <para>
+          The number of rows written with <literal>INSERT
+          DELAYED</literal> for which some error occurred (probably
+          <literal>duplicate key</literal>).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Delayed_insert_threads">
+          <literal role="statvar">Delayed_insert_threads</literal>
+        </para>
+
+        <para>
+          The number of <literal>INSERT DELAYED</literal> handler
+          threads in use.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Delayed_writes">
+          <literal role="statvar">Delayed_writes</literal>
+        </para>
+
+        <para>
+          The number of <literal>INSERT DELAYED</literal> rows written.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Flush_commands">
+          <literal role="statvar">Flush_commands</literal>
+        </para>
+
+        <para>
+          The number of executed <literal role="stmt">FLUSH</literal>
+          statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_commit">
+          <literal role="statvar">Handler_commit</literal>
+        </para>
+
+        <para>
+          The number of internal <literal role="stmt">COMMIT</literal>
+          statements.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_delete">
+          <literal role="statvar">Handler_delete</literal>
+        </para>
+
+        <para>
+          The number of times that rows have been deleted from tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_prepare">
+          <literal role="statvar">Handler_prepare</literal>
+        </para>
+
+        <para>
+          A counter for the prepare phase of two-phase commit
+          operations. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_first">
+          <literal role="statvar">Handler_read_first</literal>
+        </para>
+
+        <para>
+          The number of times the first entry was read from an index. If
+          this value is high, it suggests that the server is doing a lot
+          of full index scans; for example, <literal>SELECT col1 FROM
+          foo</literal>, assuming that <literal>col1</literal> is
+          indexed.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_key">
+          <literal role="statvar">Handler_read_key</literal>
+        </para>
+
+        <para>
+          The number of requests to read a row based on a key. If this
+          value is high, it is a good indication that your tables are
+          properly indexed for your queries.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_next">
+          <literal role="statvar">Handler_read_next</literal>
+        </para>
+
+        <para>
+          The number of requests to read the next row in key order. This
+          value is incremented if you are querying an index column with
+          a range constraint or if you are doing an index scan.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_prev">
+          <literal role="statvar">Handler_read_prev</literal>
+        </para>
+
+        <para>
+          The number of requests to read the previous row in key order.
+          This read method is mainly used to optimize <literal>ORDER BY
+          ... DESC</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_rnd">
+          <literal role="statvar">Handler_read_rnd</literal>
+        </para>
+
+        <para>
+          The number of requests to read a row based on a fixed
+          position. This value is high if you are doing a lot of queries
+          that require sorting of the result. You probably have a lot of
+          queries that require MySQL to scan entire tables or you have
+          joins that don't use keys properly.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_read_rnd_next">
+          <literal role="statvar">Handler_read_rnd_next</literal>
+        </para>
+
+        <para>
+          The number of requests to read the next row in the data file.
+          This value is high if you are doing a lot of table scans.
+          Generally this suggests that your tables are not properly
+          indexed or that your queries are not written to take advantage
+          of the indexes you have.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_rollback">
+          <literal role="statvar">Handler_rollback</literal>
+        </para>
+
+        <para>
+          The number of requests for a storage engine to perform a
+          rollback operation.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_savepoint">
+          <literal role="statvar">Handler_savepoint</literal>
+        </para>
+
+        <para>
+          The number of requests for a storage engine to place a
+          savepoint. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_savepoint_rollback">
+          <literal role="statvar">Handler_savepoint_rollback</literal>
+        </para>
+
+        <para>
+          The number of requests for a storage engine to roll back to a
+          savepoint. Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_update">
+          <literal role="statvar">Handler_update</literal>
+        </para>
+
+        <para>
+          The number of requests to update a row in a table.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Handler_write">
+          <literal role="statvar">Handler_write</literal>
+        </para>
+
+        <para>
+          The number of requests to insert a row in a table.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_data">
+          <literal role="statvar">Innodb_buffer_pool_pages_data</literal>
+        </para>
+
+        <para>
+          The number of pages containing data (dirty or clean). Added in
+          MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_dirty">
+          <literal role="statvar">Innodb_buffer_pool_pages_dirty</literal>
+        </para>
+
+        <para>
+          The number of pages currently dirty. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_flushed">
+          <literal role="statvar">Innodb_buffer_pool_pages_flushed</literal>
+        </para>
+
+        <para>
+          The number of buffer pool page-flush requests. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_free">
+          <literal role="statvar">Innodb_buffer_pool_pages_free</literal>
+        </para>
+
+        <para>
+          The number of free pages. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_latched">
+          <literal role="statvar">Innodb_buffer_pool_pages_latched</literal>
+        </para>
+
+        <para>
+          The number of latched pages in <literal>InnoDB</literal>
+          buffer pool. These are pages currently being read or written
+          or that cannot be flushed or removed for some other reason.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_misc">
+          <literal role="statvar">Innodb_buffer_pool_pages_misc</literal>
+        </para>
+
+        <para>
+          The number of pages that are busy because they have been
+          allocated for administrative overhead such as row locks or the
+          adaptive hash index. This value can also be calculated as
+          <literal role="statvar">Innodb_buffer_pool_pages_total</literal>
+          &minus;
+          <literal role="statvar">Innodb_buffer_pool_pages_free</literal>
+          &minus;
+          <literal role="statvar">Innodb_buffer_pool_pages_data</literal>.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_pages_total">
+          <literal role="statvar">Innodb_buffer_pool_pages_total</literal>
+        </para>
+
+        <para>
+          The total size of buffer pool, in pages. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_read_ahead_rnd">
+          <literal role="statvar">Innodb_buffer_pool_read_ahead_rnd</literal>
+        </para>
+
+        <para>
+          The number of <quote>random</quote> read-aheads initiated by
+          <literal>InnoDB</literal>. This happens when a query scans a
+          large portion of a table but in random order. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_read_ahead_seq">
+          <literal role="statvar">Innodb_buffer_pool_read_ahead_seq</literal>
+        </para>
+
+        <para>
+          The number of sequential read-aheads initiated by
+          <literal>InnoDB</literal>. This happens when
+          <literal>InnoDB</literal> does a sequential full table scan.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_read_requests">
+          <literal role="statvar">Innodb_buffer_pool_read_requests</literal>
+        </para>
+
+        <para>
+          The number of logical read requests <literal>InnoDB</literal>
+          has done. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_reads">
+          <literal role="statvar">Innodb_buffer_pool_reads</literal>
+        </para>
+
+        <remark role="todo">
+          Clarify.
+        </remark>
+
+        <para>
+          The number of logical reads that <literal>InnoDB</literal>
+          could not satisfy from the buffer pool and had to do a
+          single-page read. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_wait_free">
+          <literal role="statvar">Innodb_buffer_pool_wait_free</literal>
+        </para>
+
+        <remark role="todo">
+          How small is &quot;small&quot;?
+        </remark>
+
+        <para>
+          Normally, writes to the <literal>InnoDB</literal> buffer pool
+          happen in the background. However, if it is necessary to read
+          or create a page and no clean pages are available, it is also
+          necessary to wait for pages to be flushed first. This counter
+          counts instances of these waits. If the buffer pool size has
+          been set properly, this value should be small. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_buffer_pool_write_requests">
+          <literal role="statvar">Innodb_buffer_pool_write_requests</literal>
+        </para>
+
+        <para>
+          The number writes done to the <literal>InnoDB</literal> buffer
+          pool. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_fsyncs">
+          <literal role="statvar">Innodb_data_fsyncs</literal>
+        </para>
+
+        <para>
+          The number of <literal>fsync()</literal> operations so far.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_pending_fsyncs">
+          <literal role="statvar">Innodb_data_pending_fsyncs</literal>
+        </para>
+
+        <para>
+          The current number of pending <literal>fsync()</literal>
+          operations. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_pending_reads">
+          <literal role="statvar">Innodb_data_pending_reads</literal>
+        </para>
+
+        <para>
+          The current number of pending reads. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_pending_writes">
+          <literal role="statvar">Innodb_data_pending_writes</literal>
+        </para>
+
+        <para>
+          The current number of pending writes. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_read">
+          <literal role="statvar">Innodb_data_read</literal>
+        </para>
+
+        <remark role="todo">
+          Explain &quot;so far&quot;. Since the server was restarted?
+        </remark>
+
+        <para>
+          The amount of data read so far, in bytes. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_reads">
+          <literal role="statvar">Innodb_data_reads</literal>
+        </para>
+
+        <para>
+          The total number of data reads. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_writes">
+          <literal role="statvar">Innodb_data_writes</literal>
+        </para>
+
+        <para>
+          The total number of data writes. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_data_written">
+          <literal role="statvar">Innodb_data_written</literal>
+        </para>
+
+        <remark role="todo">
+          Explain &quot;so far&quot;. Since the server was restarted?
+        </remark>
+
+        <para>
+          The amount of data written so far, in bytes. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_dblwr_writes">
+          <literal role="statvar">Innodb_dblwr_writes</literal>
+        </para>
+
+        <para>
+          The number of doublewrite operations that have been performed.
+          Added in MySQL 5.0.2. See <xref linkend="innodb-disk-io"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_dblwr_pages_written">
+          <literal role="statvar">Innodb_dblwr_pages_written</literal>
+        </para>
+
+        <para>
+          The number of pages that have been written for doublewrite
+          operations. Added in MySQL 5.0.2. See
+          <xref linkend="innodb-disk-io"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_log_waits">
+          <literal role="statvar">Innodb_log_waits</literal>
+        </para>
+
+        <para>
+          The number of times that the log buffer was too small and a
+          wait was required for it to be flushed before continuing.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_log_write_requests">
+          <literal role="statvar">Innodb_log_write_requests</literal>
+        </para>
+
+        <para>
+          The number of log write requests. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_log_writes">
+          <literal role="statvar">Innodb_log_writes</literal>
+        </para>
+
+        <para>
+          The number of physical writes to the log file. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_os_log_fsyncs">
+          <literal role="statvar">Innodb_os_log_fsyncs</literal>
+        </para>
+
+        <para>
+          The number of <literal>fsync()</literal> writes done to the
+          log file. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_os_log_pending_fsyncs">
+          <literal role="statvar">Innodb_os_log_pending_fsyncs</literal>
+        </para>
+
+        <para>
+          The number of pending log file <literal>fsync()</literal>
+          operations. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_os_log_pending_writes">
+          <literal role="statvar">Innodb_os_log_pending_writes</literal>
+        </para>
+
+        <para>
+          The number of pending log file writes. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_os_log_written">
+          <literal role="statvar">Innodb_os_log_written</literal>
+        </para>
+
+        <para>
+          The number of bytes written to the log file. Added in MySQL
+          5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_page_size">
+          <literal role="statvar">Innodb_page_size</literal>
+        </para>
+
+        <para>
+          The compiled-in <literal>InnoDB</literal> page size (default
+          16KB). Many values are counted in pages; the page size allows
+          them to be easily converted to bytes. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_pages_created">
+          <literal role="statvar">Innodb_pages_created</literal>
+        </para>
+
+        <para>
+          The number of pages created. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_pages_read">
+          <literal role="statvar">Innodb_pages_read</literal>
+        </para>
+
+        <para>
+          The number of pages read. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_pages_written">
+          <literal role="statvar">Innodb_pages_written</literal>
+        </para>
+
+        <para>
+          The number of pages written. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_row_lock_current_waits">
+          <literal role="statvar">Innodb_row_lock_current_waits</literal>
+        </para>
+
+        <para>
+          The number of row locks currently being waited for. Added in
+          MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_row_lock_time">
+          <literal role="statvar">Innodb_row_lock_time</literal>
+        </para>
+
+        <para>
+          The total time spent in acquiring row locks, in milliseconds.
+          Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_row_lock_time_avg">
+          <literal role="statvar">Innodb_row_lock_time_avg</literal>
+        </para>
+
+        <para>
+          The average time to acquire a row lock, in milliseconds. Added
+          in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_row_lock_time_max">
+          <literal role="statvar">Innodb_row_lock_time_max</literal>
+        </para>
+
+        <para>
+          The maximum time to acquire a row lock, in milliseconds. Added
+          in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_row_lock_waits">
+          <literal role="statvar">Innodb_row_lock_waits</literal>
+        </para>
+
+        <para>
+          The number of times a row lock had to be waited for. Added in
+          MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_rows_deleted">
+          <literal role="statvar">Innodb_rows_deleted</literal>
+        </para>
+
+        <para>
+          The number of rows deleted from <literal>InnoDB</literal>
+          tables. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_rows_inserted">
+          <literal role="statvar">Innodb_rows_inserted</literal>
+        </para>
+
+        <para>
+          The number of rows inserted into <literal>InnoDB</literal>
+          tables. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_rows_read">
+          <literal role="statvar">Innodb_rows_read</literal>
+        </para>
+
+        <para>
+          The number of rows read from <literal>InnoDB</literal> tables.
+          Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Innodb_rows_updated">
+          <literal role="statvar">Innodb_rows_updated</literal>
+        </para>
+
+        <para>
+          The number of rows updated in <literal>InnoDB</literal>
+          tables. Added in MySQL 5.0.2.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_blocks_not_flushed">
+          <literal role="statvar">Key_blocks_not_flushed</literal>
+        </para>
+
+        <para>
+          The number of key blocks in the key cache that have changed
+          but have not yet been flushed to disk.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_blocks_unused">
+          <literal role="statvar">Key_blocks_unused</literal>
+        </para>
+
+        <para>
+          The number of unused blocks in the key cache. You can use this
+          value to determine how much of the key cache is in use; see
+          the discussion of
+          <literal role="sysvar">key_buffer_size</literal> in
+          <xref linkend="server-system-variables"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_blocks_used">
+          <literal role="statvar">Key_blocks_used</literal>
+        </para>
+
+        <para>
+          The number of used blocks in the key cache. This value is a
+          high-water mark that indicates the maximum number of blocks
+          that have ever been in use at one time.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_read_requests">
+          <literal role="statvar">Key_read_requests</literal>
+        </para>
+
+        <para>
+          The number of requests to read a key block from the cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_reads">
+          <literal role="statvar">Key_reads</literal>
+        </para>
+
+        <para>
+          The number of physical reads of a key block from disk. If
+          <literal role="statvar">Key_reads</literal> is large, then
+          your <literal role="sysvar">key_buffer_size</literal> value is
+          probably too small. The cache miss rate can be calculated as
+          <literal role="statvar">Key_reads</literal>/<literal role="statvar">Key_read_requests</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_write_requests">
+          <literal role="statvar">Key_write_requests</literal>
+        </para>
+
+        <para>
+          The number of requests to write a key block to the cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Key_writes">
+          <literal role="statvar">Key_writes</literal>
+        </para>
+
+        <para>
+          The number of physical writes of a key block to disk.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Last_query_cost">
+          <literal role="statvar">Last_query_cost</literal>
+        </para>
+
+        <para>
+          The total cost of the last compiled query as computed by the
+          query optimizer. This is useful for comparing the cost of
+          different query plans for the same query. The default value of
+          0 means that no query has been compiled yet. This variable was
+          added in MySQL 5.0.1, with a default value of -1. In MySQL
+          5.0.7, the default was changed to 0; also in version 5.0.7,
+          the scope of <literal role="statvar">Last_query_cost</literal>
+          was changed to session rather than global.
+        </para>
+
+        <para>
+          The <literal role="statvar">Last_query_cost</literal> value
+          can be computed accurately only for simple <quote>flat</quote>
+          queries, not complex queries such as those with subqueries or
+          <literal>UNION</literal>. For the latter, the value is set to
+          0.
+        </para>
+
+        <para>
+          Prior to MySQL 5.0.16, this variable was not updated for
+          queries served from the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Max_used_connections">
+          <literal role="statvar">Max_used_connections</literal>
+        </para>
+
+        <para>
+          The maximum number of connections that have been in use
+          simultaneously since the server started.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Not_flushed_delayed_rows">
+          <literal role="statvar">Not_flushed_delayed_rows</literal>
+        </para>
+
+        <para>
+          The number of rows waiting to be written in <literal>INSERT
+          DELAY</literal> queues.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Open_files">
+          <literal role="statvar">Open_files</literal>
+        </para>
+
+        <para>
+          The number of files that are open.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Open_streams">
+          <literal role="statvar">Open_streams</literal>
+        </para>
+
+        <para>
+          The number of streams that are open (used mainly for logging).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Open_tables">
+          <literal role="statvar">Open_tables</literal>
+        </para>
+
+        <para>
+          The number of tables that are open.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Opened_tables">
+          <literal role="statvar">Opened_tables</literal>
+        </para>
+
+        <para>
+          The number of tables that have been opened. If
+          <literal role="statvar">Opened_tables</literal> is big, your
+          <literal role="sysvar">table_cache</literal> value is probably
+          too small.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Prepared_stmt_count">
+          <literal role="statvar">Prepared_stmt_count</literal>
+        </para>
+
+        <para>
+          The current number of prepared statements. (The maximum number
+          of statements is given by the
+          <literal role="sysvar">max_prepared_stmt_count</literal>
+          system variable.) This variable was added in MySQL 5.0.32.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_free_blocks">
+          <literal role="statvar">Qcache_free_blocks</literal>
+        </para>
+
+        <para>
+          The number of free memory blocks in the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_free_memory">
+          <literal role="statvar">Qcache_free_memory</literal>
+        </para>
+
+        <para>
+          The amount of free memory for the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_hits">
+          <literal role="statvar">Qcache_hits</literal>
+        </para>
+
+        <para>
+          The number of query cache hits.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_inserts">
+          <literal role="statvar">Qcache_inserts</literal>
+        </para>
+
+        <para>
+          The number of queries added to the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_lowmem_prunes">
+          <literal role="statvar">Qcache_lowmem_prunes</literal>
+        </para>
+
+        <para>
+          The number of queries that were deleted from the query cache
+          because of low memory.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_not_cached">
+          <literal role="statvar">Qcache_not_cached</literal>
+        </para>
+
+        <para>
+          The number of non-cached queries (not cacheable, or not cached
+          due to the <literal role="sysvar">query_cache_type</literal>
+          setting).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_queries_in_cache">
+          <literal role="statvar">Qcache_queries_in_cache</literal>
+        </para>
+
+        <para>
+          The number of queries registered in the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Qcache_total_blocks">
+          <literal role="statvar">Qcache_total_blocks</literal>
+        </para>
+
+        <para>
+          The total number of blocks in the query cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Questions">
+          <literal role="statvar">Questions</literal>
+        </para>
+
+        <para>
+          The number of statements that clients have sent to the server.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Rpl_status">
+          <literal role="statvar">Rpl_status</literal>
+        </para>
+
+        <para>
+          The status of fail-safe replication (not yet implemented).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Select_full_join">
+          <literal role="statvar">Select_full_join</literal>
+        </para>
+
+        <para>
+          The number of joins that perform table scans because they do
+          not use indexes. If this value is not 0, you should carefully
+          check the indexes of your tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Select_full_range_join">
+          <literal role="statvar">Select_full_range_join</literal>
+        </para>
+
+        <para>
+          The number of joins that used a range search on a reference
+          table.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Select_range">
+          <literal role="statvar">Select_range</literal>
+        </para>
+
+        <para>
+          The number of joins that used ranges on the first table.
+
+          <remark role="todo">
+            Why not? Why the comment, if it's not important?
+          </remark>
+
+          This is normally not a critical issue even if the value is
+          quite large.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Select_range_check">
+          <literal role="statvar">Select_range_check</literal>
+        </para>
+
+        <para>
+          The number of joins without keys that check for key usage
+          after each row. If this is not 0, you should carefully check
+          the indexes of your tables.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Select_scan">
+          <literal role="statvar">Select_scan</literal>
+        </para>
+
+        <para>
+          The number of joins that did a full scan of the first table.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Slave_open_temp_tables">
+          <literal role="statvar">Slave_open_temp_tables</literal>
+        </para>
+
+        <para>
+          The number of temporary tables that the slave SQL thread
+          currently has open.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Slave_retried_transactions">
+          <literal role="statvar">Slave_retried_transactions</literal>
+        </para>
+
+        <para>
+          The total number of times since startup that the replication
+          slave SQL thread has retried transactions. This variable was
+          added in version 5.0.4.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Slave_running">
+          <literal role="statvar">Slave_running</literal>
+        </para>
+
+        <para>
+          This is <literal>ON</literal> if this server is a slave that
+          is connected to a master, and both the I/O SQL and threads are
+          running.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Slow_launch_threads">
+          <literal role="statvar">Slow_launch_threads</literal>
+        </para>
+
+        <para>
+          The number of threads that have taken more than
+          <literal role="sysvar">slow_launch_time</literal> seconds to
+          create.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Slow_queries">
+          <literal role="statvar">Slow_queries</literal>
+        </para>
+
+        <para>
+          The number of queries that have taken more than
+          <literal role="sysvar">long_query_time</literal> seconds. See
+          <xref linkend="slow-query-log"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Sort_merge_passes">
+          <literal role="statvar">Sort_merge_passes</literal>
+        </para>
+
+        <para>
+          The number of merge passes that the sort algorithm has had to
+          do. If this value is large, you should consider increasing the
+          value of the <literal role="sysvar">sort_buffer_size</literal>
+          system variable.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Sort_range">
+          <literal role="statvar">Sort_range</literal>
+        </para>
+
+        <para>
+          The number of sorts that were done using ranges.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Sort_rows">
+          <literal role="statvar">Sort_rows</literal>
+        </para>
+
+        <para>
+          The number of sorted rows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Sort_scan">
+          <literal role="statvar">Sort_scan</literal>
+        </para>
+
+        <para>
+          The number of sorts that were done by scanning the table.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_accept_renegotiates">
+          <literal role="statvar">Ssl_accept_renegotiates</literal>
+        </para>
+
+        <para>
+          The number of negotiates needed to establish the connection.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_accepts">
+          <literal role="statvar">Ssl_accepts</literal>
+        </para>
+
+        <para>
+          The number of accepted SSL connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_callback_cache_hits">
+          <literal role="statvar">Ssl_callback_cache_hits</literal>
+        </para>
+
+        <para>
+          The number of callback cache hits.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_cipher">
+          <literal role="statvar">Ssl_cipher</literal>
+        </para>
+
+        <para>
+          The current SSL cipher (empty for non-SSL connections).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_cipher_list">
+          <literal role="statvar">Ssl_cipher_list</literal>
+        </para>
+
+        <para>
+          The list of possible SSL ciphers.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_client_connects">
+          <literal role="statvar">Ssl_client_connects</literal>
+        </para>
+
+        <para>
+          The number of SSL connection attempts to an SSL-enabled
+          master.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_connect_renegotiates">
+          <literal role="statvar">Ssl_connect_renegotiates</literal>
+        </para>
+
+        <para>
+          The number of negotiates needed to establish the connection to
+          an SSL-enabled master.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_ctx_verify_depth">
+          <literal role="statvar">Ssl_ctx_verify_depth</literal>
+        </para>
+
+        <para>
+          The SSL context verification depth (how many certificates in
+          the chain are tested).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_ctx_verify_mode">
+          <literal role="statvar">Ssl_ctx_verify_mode</literal>
+        </para>
+
+        <para>
+          The SSL context verification mode.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_default_timeout">
+          <literal role="statvar">Ssl_default_timeout</literal>
+        </para>
+
+        <para>
+          The default SSL timeout.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_finished_accepts">
+          <literal role="statvar">Ssl_finished_accepts</literal>
+        </para>
+
+        <para>
+          The number of successful SSL connections to the server.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_finished_connects">
+          <literal role="statvar">Ssl_finished_connects</literal>
+        </para>
+
+        <para>
+          The number of successful slave connections to an SSL-enabled
+          master.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_hits">
+          <literal role="statvar">Ssl_session_cache_hits</literal>
+        </para>
+
+        <para>
+          The number of SSL session cache hits.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_misses">
+          <literal role="statvar">Ssl_session_cache_misses</literal>
+        </para>
+
+        <para>
+          The number of SSL session cache misses.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_mode">
+          <literal role="statvar">Ssl_session_cache_mode</literal>
+        </para>
+
+        <para>
+          The SSL session cache mode.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_overflows">
+          <literal role="statvar">Ssl_session_cache_overflows</literal>
+        </para>
+
+        <para>
+          The number of SSL session cache overflows.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_size">
+          <literal role="statvar">Ssl_session_cache_size</literal>
+        </para>
+
+        <para>
+          The SSL session cache size.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_session_cache_timeouts">
+          <literal role="statvar">Ssl_session_cache_timeouts</literal>
+        </para>
+
+        <para>
+          The number of SSL session cache timeouts.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_sessions_reused">
+          <literal role="statvar">Ssl_sessions_reused</literal>
+        </para>
+
+        <para>
+          How many SSL connections were reused from the cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_used_session_cache_entries">
+          <literal role="statvar">Ssl_used_session_cache_entries</literal>
+        </para>
+
+        <para>
+          How many SSL session cache entries were used.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_verify_depth">
+          <literal role="statvar">Ssl_verify_depth</literal>
+        </para>
+
+        <para>
+          The verification depth for replication SSL connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_verify_mode">
+          <literal role="statvar">Ssl_verify_mode</literal>
+        </para>
+
+        <para>
+          The verification mode for replication SSL connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Ssl_version">
+          <literal role="statvar">Ssl_version</literal>
+        </para>
+
+        <para>
+          The SSL version number.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Table_locks_immediate">
+          <literal role="statvar">Table_locks_immediate</literal>
+        </para>
+
+        <para>
+          The number of times that a request for a table lock could be
+          granted immediately.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Table_locks_waited">
+          <literal role="statvar">Table_locks_waited</literal>
+        </para>
+
+        <para>
+          The number of times that a request for a table lock could not
+          be granted immediately and a wait was needed. If this is high
+          and you have performance problems, you should first optimize
+          your queries, and then either split your table or tables or
+          use replication.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Tc_log_max_pages_used">
+          <literal role="statvar">Tc_log_max_pages_used</literal>
+        </para>
+
+        <para>
+          For the memory-mapped implementation of the log that is used
+          by <command>mysqld</command> when it acts as the transaction
+          coordinator for recovery of internal XA transactions, this
+          variable indicates the largest number of pages used for the
+          log since the server started. If the product of
+          <literal role="statvar">Tc_log_max_pages_used</literal> and
+          <literal role="statvar">Tc_log_page_size</literal> is always
+          significantly less than the log size, the size is larger than
+          necessary and can be reduced. (The size is set by the
+          <option>--log-tc-size</option> option. Currently, this
+          variable is unused: It is unneeded for binary log-based
+          recovery, and the memory-mapped recovery log method is not
+          used unless the number of storage engines capable of two-phase
+          commit is greater than one. (<literal>InnoDB</literal> is the
+          only applicable engine.) Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Tc_log_page_size">
+          <literal role="statvar">Tc_log_page_size</literal>
+        </para>
+
+        <para>
+          The page size used for the memory-mapped implementation of the
+          XA recovery log. The default value is determined using
+          <literal>getpagesize()</literal>. Currently, this variable is
+          unused for the same reasons as described for
+          <literal role="statvar">Tc_log_max_pages_used</literal>. Added
+          in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Tc_log_page_waits">
+          <literal role="statvar">Tc_log_page_waits</literal>
+        </para>
+
+        <para>
+          For the memory-mapped implementation of the recovery log, this
+          variable increments each time the server was not able to
+          commit a transaction and had to wait for a free page in the
+          log. If this value is large, you might want to increase the
+          log size (with the <option>--log-tc-size</option> option). For
+          binary log-based recovery, this variable increments each time
+          the binary log cannot be closed because there are two-phase
+          commits in progress. (The close operation waits until all such
+          transactions are finished.) Added in MySQL 5.0.3.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Threads_cached">
+          <literal role="statvar">Threads_cached</literal>
+        </para>
+
+        <para>
+          The number of threads in the thread cache.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Threads_connected">
+          <literal role="statvar">Threads_connected</literal>
+        </para>
+
+        <para>
+          The number of currently open connections.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Threads_created">
+          <literal role="statvar">Threads_created</literal>
+        </para>
+
+        <para>
+          The number of threads created to handle connections. If
+          <literal role="statvar">Threads_created</literal> is big, you
+          may want to increase the
+          <literal role="sysvar">thread_cache_size</literal> value. The
+          cache miss rate can be calculated as
+          <literal role="statvar">Threads_created</literal>/<literal role="statvar">Connections</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Threads_running">
+          <literal role="statvar">Threads_running</literal>
+        </para>
+
+        <para>
+          The number of threads that are not sleeping.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Uptime">
+          <literal role="statvar">Uptime</literal>
+        </para>
+
+        <para>
+          The number of seconds that the server has been up.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="statvar_Uptime_since_flush_status">
+          <literal role="statvar">Uptime_since_flush_status</literal>
+        </para>
+
+        <para>
+          The number of seconds since the most recent <literal>FLUSH
+          STATUS</literal> statement. This variable was added in 5.0.35.
+          (MySQL Community only)
+        </para>
+      </listitem>
+
+    </itemizedlist>
+
+  </section>
+
+  <section id="server-sql-mode">
+
+    <title>Server SQL Modes</title>
+
+    <indexterm>
+      <primary>SQL mode</primary>
+    </indexterm>
+
+    <para>
+      The MySQL server can operate in different SQL modes, and can apply
+      these modes differently for different clients. This capability
+      enables each application to tailor the server's operating mode to
+      its own requirements.
+    </para>
+
+    <para>
+      For answers to some questions that are often asked about server
+      SQL modes in MySQL, see <xref linkend="faqs-sql-modes"/>.
+    </para>
+
+    <para>
+      Modes define what SQL syntax MySQL should support and what kind of
+      data validation checks it should perform. This makes it easier to
+      use MySQL in different environments and to use MySQL together with
+      other database servers.
+    </para>
+
+    <para>
+      You can set the default SQL mode by starting
+      <command>mysqld</command> with the
+      <option>--sql-mode=&quot;<replaceable>modes</replaceable>&quot;</option>
+      option, or by using
+      <option>sql-mode=&quot;<replaceable>modes</replaceable>&quot;</option>
+      in <filename>my.cnf</filename> (Unix operating systems) or
+      <filename>my.ini</filename> (Windows).
+      <replaceable>modes</replaceable> is a list of different modes
+      separated by comma (<quote><literal>,</literal></quote>)
+      characters. The default value is empty (no modes set). The
+      <replaceable>modes</replaceable> value also can be empty
+      (<option>--sql-mode=&quot;&quot;</option> on the command line, or
+      <option>sql-mode=&quot;&quot;</option> in
+      <filename>my.cnf</filename> on Unix systems or in
+      <filename>my.ini</filename> on Windows) if you want to clear it
+      explicitly.
+    </para>
+
+    <para>
+      You can change the SQL mode at runtime by using a <literal>SET
+      [GLOBAL|SESSION]
+      sql_mode='<replaceable>modes</replaceable>'</literal> statement to
+      set the <literal role="sysvar">sql_mode</literal> system value.
+      Setting the <literal>GLOBAL</literal> variable requires the
+      <literal role="priv">SUPER</literal> privilege and affects the
+      operation of all clients that connect from that time on. Setting
+      the <literal>SESSION</literal> variable affects only the current
+      client. Any client can change its own session
+      <literal role="sysvar">sql_mode</literal> value at any time.
+    </para>
+
+    <para>
+      You can retrieve the current global or session
+      <literal role="sysvar">sql_mode</literal> value with the following
+      statements:
+    </para>
+
+<programlisting>
+SELECT @@GLOBAL.sql_mode;
+SELECT @@SESSION.sql_mode;
+</programlisting>
+
+    <para>
+      The most important <literal role="sysvar">sql_mode</literal>
+      values are probably these:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>ANSI SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>ANSI</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">ANSI</literal>
+        </para>
+
+        <para>
+          This mode changes syntax and behavior to conform more closely
+          to standard SQL.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>STRICT_TRANS_TABLES SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>STRICT_TRANS_TABLES</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">STRICT_TRANS_TABLES</literal>
+        </para>
+
+        <para>
+          If a value could not be inserted as given into a transactional
+          table, abort the statement. For a non-transactional table,
+          abort the statement if the value occurs in a single-row
+          statement or the first row of a multiple-row statement. More
+          detail is given later in this section. (Implemented in MySQL
+          5.0.2)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para>
+          <indexterm>
+            <primary>TRADITIONAL SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>TRADITIONAL</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">TRADITIONAL</literal>
+        </para>
+
+        <para>
+          Make MySQL behave like a <quote>traditional</quote> SQL
+          database system. A simple description of this mode is
+          <quote>give an error instead of a warning</quote> when
+          inserting an incorrect value into a column.
+        </para>
+
+        <note>
+          <para>
+            The
+            <literal role="stmt">INSERT</literal>/<literal role="stmt">UPDATE</literal>
+            aborts as soon as the error is noticed. This may not be what
+            you want if you are using a non-transactional storage
+            engine, because data changes made prior to the error may not
+            be rolled back, resulting in a <quote>partially done</quote>
+            update. (Added in MySQL 5.0.2)
+          </para>
+        </note>
+      </listitem>
+
+    </itemizedlist>
+
+    <indexterm>
+      <primary>strict SQL mode</primary>
+    </indexterm>
+
+    <indexterm>
+      <primary>SQL mode</primary>
+      <secondary>strict</secondary>
+    </indexterm>
+
+    <para>
+      When this manual refers to <quote>strict mode,</quote> it means a
+      mode where at least one of
+      <literal role="sqlmode">STRICT_TRANS_TABLES</literal> or
+      <literal role="sqlmode">STRICT_ALL_TABLES</literal> is enabled.
+    </para>
+
+    <para>
+      The following list describes all supported modes:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para id="sqlmode_allow_invalid_dates">
+          <indexterm>
+            <primary>ALLOW_INVALID_DATES SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>ALLOW_INVALID_DATES</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">ALLOW_INVALID_DATES</literal>
+        </para>
+
+        <para>
+          Don't do full checking of dates. Check only that the month is
+          in the range from 1 to 12 and the day is in the range from 1
+          to 31. This is very convenient for Web applications where you
+          obtain year, month, and day in three different fields and you
+          want to store exactly what the user inserted (without date
+          validation). This mode applies to
+          <literal role="type">DATE</literal> and
+          <literal role="type">DATETIME</literal> columns. It does not
+          apply <literal role="type">TIMESTAMP</literal> columns, which
+          always require a valid date.
+        </para>
+
+        <para>
+          This mode is implemented in MySQL 5.0.2. Before 5.0.2, this
+          was the default MySQL date-handling mode. As of 5.0.2, the
+          server requires that month and day values be legal, and not
+          merely in the range 1 to 12 and 1 to 31, respectively. With
+          strict mode disabled, invalid dates such as
+          <literal>'2004-04-31'</literal> are converted to
+          <literal>'0000-00-00'</literal> and a warning is generated.
+          With strict mode enabled, invalid dates generate an error. To
+          allow such dates, enable
+          <literal role="sqlmode">ALLOW_INVALID_DATES</literal>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_ansi_quotes">
+          <indexterm>
+            <primary>ANSI_QUOTES SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>ANSI_QUOTES</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">ANSI_QUOTES</literal>
+        </para>
+
+        <para>
+          Treat <quote><literal>&quot;</literal></quote> as an
+          identifier quote character (like the
+          <quote><literal>`</literal></quote> quote character) and not
+          as a string quote character. You can still use
+          <quote><literal>`</literal></quote> to quote identifiers with
+          this mode enabled. With
+          <literal role="sqlmode">ANSI_QUOTES</literal> enabled, you
+          cannot use double quotes to quote literal strings, because it
+          is interpreted as an identifier.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_error_for_division_by_zero">
+          <indexterm>
+            <primary>ERROR_FOR_DIVISION_BY_ZERO SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>ERROR_FOR_DIVISION_BY_ZERO</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">ERROR_FOR_DIVISION_BY_ZERO</literal>
+        </para>
+
+        <para>
+          Produce an error in strict mode (otherwise a warning) when a
+          division by zero (or <literal role="func">MOD(X,0)</literal>)
+          occurs during an <literal role="stmt">INSERT</literal> or
+          <literal role="stmt">UPDATE</literal>. If this mode is not
+          enabled, MySQL instead returns <literal>NULL</literal> for
+          divisions by zero. For <literal>INSERT IGNORE</literal> or
+          <literal>UPDATE IGNORE</literal>, MySQL generates a warning
+          for divisions by zero, but the result of the operation is
+          <literal>NULL</literal>. (Implemented in MySQL 5.0.2)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_high_not_precedence">
+          <indexterm>
+            <primary>HIGH_NOT_PRECEDENCE SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>HIGH_NOT_PRECEDENCE</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal>
+        </para>
+
+        <para>
+          From MySQL 5.0.2 on, the precedence of the
+          <literal role="op">NOT</literal> operator is such that
+          expressions such as <literal>NOT a BETWEEN b AND c</literal>
+          are parsed as <literal>NOT (a BETWEEN b AND c)</literal>.
+          Before MySQL 5.0.2, the expression is parsed as <literal>(NOT
+          a) BETWEEN b AND c</literal>. The old higher-precedence
+          behavior can be obtained by enabling the
+          <literal role="sqlmode">HIGH_NOT_PRECEDENCE</literal> SQL
+          mode. (Added in MySQL 5.0.2)
+        </para>
+
+<programlisting>
+mysql&gt; <userinput>SET sql_mode = '';</userinput>
+mysql&gt; <userinput>SELECT NOT 1 BETWEEN -5 AND 5;</userinput>
+        -&gt; 0
+mysql&gt; <userinput>SET sql_mode = 'HIGH_NOT_PRECEDENCE';</userinput>
+mysql&gt; <userinput>SELECT NOT 1 BETWEEN -5 AND 5;</userinput>
+        -&gt; 1
+</programlisting>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_ignore_space">
+          <indexterm>
+            <primary>IGNORE_SPACE SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>IGNORE_SPACE</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">IGNORE_SPACE</literal>
+        </para>
+
+        <para>
+          Allow spaces between a function name and the
+          <quote><literal>(</literal></quote> character. This causes
+          built-in function names to be treated as reserved words. As a
+          result, identifiers that are the same as function names must
+          be quoted as described in <xref linkend="identifiers"/>. For
+          example, because there is a
+          <literal role="func">COUNT()</literal> function, the use of
+          <literal>count</literal> as a table name in the following
+          statement causes an error:
+        </para>
+
+<programlisting>
+mysql&gt; <userinput>CREATE TABLE count (i INT);</userinput>
+ERROR 1064 (42000): You have an error in your SQL syntax
+</programlisting>
+
+        <para>
+          The table name should be quoted:
+        </para>
+
+<programlisting>
+mysql&gt; <userinput>CREATE TABLE `count` (i INT);</userinput>
+Query OK, 0 rows affected (0.00 sec)
+</programlisting>
+
+        <para>
+          The <literal role="sqlmode">IGNORE_SPACE</literal> SQL mode
+          applies to built-in functions, not to user-defined functions
+          or stored functions. It is always allowable to have spaces
+          after a UDF or stored function name, regardless of whether
+          <literal role="sqlmode">IGNORE_SPACE</literal> is enabled.
+        </para>
+
+        <para>
+          For further discussion of
+          <literal role="sqlmode">IGNORE_SPACE</literal>, see
+          <xref linkend="function-resolution"/>.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_auto_create_user">
+          <indexterm>
+            <primary>NO_AUTO_CREATE_USER SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_AUTO_CREATE_USER</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_AUTO_CREATE_USER</literal>
+        </para>
+
+        <para>
+          Prevent the <literal role="stmt">GRANT</literal> statement
+          from automatically creating new users if it would otherwise do
+          so, unless a non-empty password also is specified. (Added in
+          MySQL 5.0.2)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_auto_value_on_zero">
+          <indexterm>
+            <primary>NO_AUTO_VALUE_ON_ZERO SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_AUTO_VALUE_ON_ZERO</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_AUTO_VALUE_ON_ZERO</literal>
+        </para>
+
+        <para>
+          <literal role="sqlmode">NO_AUTO_VALUE_ON_ZERO</literal>
+          affects handling of <literal>AUTO_INCREMENT</literal> columns.
+          Normally, you generate the next sequence number for the column
+          by inserting either <literal>NULL</literal> or
+          <literal>0</literal> into it.
+          <literal role="sqlmode">NO_AUTO_VALUE_ON_ZERO</literal>
+          suppresses this behavior for <literal>0</literal> so that only
+          <literal>NULL</literal> generates the next sequence number.
+        </para>
+
+        <para>
+          This mode can be useful if <literal>0</literal> has been
+          stored in a table's <literal>AUTO_INCREMENT</literal> column.
+          (Storing <literal>0</literal> is not a recommended practice,
+          by the way.) For example, if you dump the table with
+          <command>mysqldump</command> and then reload it, MySQL
+          normally generates new sequence numbers when it encounters the
+          <literal>0</literal> values, resulting in a table with
+          contents different from the one that was dumped. Enabling
+          <literal role="sqlmode">NO_AUTO_VALUE_ON_ZERO</literal> before
+          reloading the dump file solves this problem.
+          <command>mysqldump</command> now automatically includes in its
+          output a statement that enables
+          <literal role="sqlmode">NO_AUTO_VALUE_ON_ZERO</literal>, to
+          avoid this problem.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_backslash_escapes">
+          <indexterm>
+            <primary>NO_BACKSLASH_ESCAPES SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_BACKSLASH_ESCAPES</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_BACKSLASH_ESCAPES</literal>
+        </para>
+
+        <para>
+          Disable the use of the backslash character
+          (<quote><literal>\</literal></quote>) as an escape character
+          within strings. With this mode enabled, backslash becomes an
+          ordinary character like any other. (Implemented in MySQL
+          5.0.1)
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_dir_in_create">
+          <indexterm>
+            <primary>NO_DIR_IN_CREATE SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_DIR_IN_CREATE</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_DIR_IN_CREATE</literal>
+        </para>
+
+        <para>
+          When creating a table, ignore all <literal>INDEX
+          DIRECTORY</literal> and <literal>DATA DIRECTORY</literal>
+          directives. This option is useful on slave replication
+          servers.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_engine_substitution">
+          <indexterm>
+            <primary>NO_ENGINE_SUBSTITUTION SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_ENGINE_SUBSTITUTION</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_ENGINE_SUBSTITUTION</literal>
+        </para>
+
+        <para>
+          Control automatic substitution of the default storage engine
+          when a statement such as <literal role="stmt">CREATE
+          TABLE</literal> or <literal role="stmt">ALTER TABLE</literal>
+          specifies a storage engine that is disabled or not compiled
+          in. (Implemented in MySQL 5.0.8)
+        </para>
+
+        <para>
+          With <literal role="sqlmode">NO_ENGINE_SUBSTITUTION</literal>
+          disabled, the default engine is used and a warning occurs if
+          the desired engine is known but disabled or not compiled in.
+          If the desired engine is invalid (not a known engine name), an
+          error occurs and the table is not created or altered.
+        </para>
+
+        <para>
+          With <literal role="sqlmode">NO_ENGINE_SUBSTITUTION</literal>
+          enabled, an error occurs and the table is not created or
+          altered if the desired engine is unavailable for any reason
+          (whether disabled or invalid).
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_field_options">
+          <indexterm>
+            <primary>NO_FIELD_OPTIONS SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_FIELD_OPTIONS</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_FIELD_OPTIONS</literal>
+        </para>
+
+        <para>
+          Do not print MySQL-specific column options in the output of
+          <literal role="stmt">SHOW CREATE TABLE</literal>. This mode is
+          used by <command>mysqldump</command> in portability mode.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_key_options">
+          <indexterm>
+            <primary>NO_KEY_OPTIONS SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_KEY_OPTIONS</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_KEY_OPTIONS</literal>
+        </para>
+
+        <para>
+          Do not print MySQL-specific index options in the output of
+          <literal role="stmt">SHOW CREATE TABLE</literal>. This mode is
+          used by <command>mysqldump</command> in portability mode.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_table_options">
+          <indexterm>
+            <primary>NO_TABLE_OPTIONS SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_TABLE_OPTIONS</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_TABLE_OPTIONS</literal>
+        </para>
+
+        <para>
+          Do not print MySQL-specific table options (such as
+          <literal>ENGINE</literal>) in the output of
+          <literal role="stmt">SHOW CREATE TABLE</literal>. This mode is
+          used by <command>mysqldump</command> in portability mode.
+        </para>
+      </listitem>
+
+      <listitem>
+        <para id="sqlmode_no_unsigned_subtraction">
+          <indexterm>
+            <primary>NO_UNSIGNED_SUBTRACTION SQL mode</primary>
+          </indexterm>
+
+          <indexterm>
+            <primary>SQL mode</primary>
+            <secondary>NO_UNSIGNED_SUBTRACTION</secondary>
+          </indexterm>
+
+          <literal role="sqlmode">NO_UNSIGNED_SUBTRACTION</literal>
+        </para>
+
+        <para>
+          In integer subtraction operations, do not mark the result as
+          <literal>UNSIGNED</literal> if one of the operands is
+          unsigned. In other words, <emphasis>the result of a
+          subtraction is always signed whenever this mode is in effect,
+          even if one of the operands is unsigned</emphasis>. For
+          example, compare the type of column <literal>c2</literal> in
+          table <literal>t1</literal> with that of column
+          <literal>c2</literal> in table <literal>t2</literal>:
+        </para>
+
+<programlisting>
+mysql&gt; <userinput>SET SQL_MODE='';</userinput>
+mysql&gt; <userinput>CREATE TABLE test (c1 BIGINT UNSIGNED NOT NULL);</userinput>
+mysql&gt; <userinput>CREATE TABLE t1 SELECT c1 - 1 AS c2 FROM test;</userinput>
+mysql&gt; <userinput>DESCRIBE t1;</userinput>
++-------+---------------------+------+-----+---------+-------+
+| Field | Type                | Null | Key | Default | Extra |
++-------+---------------------+------+-----+---------+-------+
+| c2    | bigint(21) unsigned |      |     | 0       |       |
++-------+---------------------+------+-----+---------+-------+
+
+mysql&gt; <userinput>SET SQL_MODE='NO_UNSIGNED_SUBTRACTION';</userinput>
+mysql&gt; <userinput>CREATE TABLE t2 SELECT c1 - 1 AS c2 FROM test;</userinput>
+mysql&gt; <userinput>DESCRIBE t2;</userinput>
++-------+------------+------+-----+---------+-------+
+| Field | Type       | Null | Key | Default | Extra |
++-------+------------+------+-