Author: mcbrown
Date: 2008-10-01 19:16:08 +0200 (Wed, 01 Oct 2008)
New Revision: 11936
Log:
Removing the CS/ES limitations and simplyfing the installation chapter structure
Removed:
trunk/refman-5.0/installing-cs-core.xml
trunk/refman-5.0/installing.xml
Renamed/Moved:
trunk/refman-5.0/installing-core.xml (from rev 11934, trunk/refman-5.0/installing.xml)
trunk/refman-5.0/installing-cs.xml (from rev 11934,
trunk/refman-5.0/installing-cs-core.xml)
Modified:
trunk/refman-5.0/Makefile.depends
trunk/refman-5.0/installing-es.xml
trunk/refman-5.0/manual.xml
trunk/refman-5.0/renamed-nodes.txt
Property changes on: trunk/refman-5.0/installing-core.xml
___________________________________________________________________
Name: svn:mergeinfo
+
Name: svn:eol-style
+ LF
Property changes on: trunk/refman-5.0/installing-cs.xml
___________________________________________________________________
Name: svn:mergeinfo
+
Modified: trunk/refman-5.0/Makefile.depends
===================================================================
--- trunk/refman-5.0/installing-core.xml (rev 0)
+++ trunk/refman-5.0/installing-core.xml 2008-10-01 17:16:08 UTC (rev 11936)
Changed blocks: 46, Lines Added: 18243, Lines Deleted: 166; 674628 bytes
@@ -222,7 +222,7 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
../refman-5.0/metadata/optimization.idmap \
@@ -490,7 +490,7 @@
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
@@ -544,7 +544,7 @@
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
../refman-5.0/metadata/optimization.idmap \
@@ -564,10 +564,9 @@
dynxml-local-functions-manprepped.xml: $(dynxml_local_functions_SOURCES)
$(dynxml_local_functions_IDMAPS)
dynxml-local-functions-remprepped.xml: $(dynxml_local_functions_SOURCES)
$(dynxml_local_functions_IDMAPS)
dynxml-local-functions.xml: $(dynxml_local_functions_INCLUDES)
-dynxml_local_installing_cs_INCLUDES = \
+dynxml_local_installing_INCLUDES = \
../common/fixedchars.ent \
../common/phrases.ent \
- ../dynamic-docs/build-configure/mysqld.xml \
../refman-common/urls.ent \
all-entities.ent \
images/published/mysql-cfg-fig1.png \
@@ -584,9 +583,11 @@
images/published/mysql-es-win32-fig2.png \
images/published/mysql-es-win32-fig3.png \
images/published/mysql-es-win32-fig4.png \
- installing-cs-core.xml \
+ installing-cs.xml \
+ installing-es.xml \
+ installing-version.xml \
versions.ent
-dynxml_local_installing_cs_IMAGES = \
+dynxml_local_installing_IMAGES = \
images/published/mysql-cfg-fig1.png \
images/published/mysql-cfg-fig10.png \
images/published/mysql-cfg-fig2.png \
@@ -601,8 +602,8 @@
images/published/mysql-es-win32-fig2.png \
images/published/mysql-es-win32-fig3.png \
images/published/mysql-es-win32-fig4.png
-dynxml_local_installing_cs_SOURCES = dynxml-local-installing-cs.xml
$(dynxml_local_installing_cs_INCLUDES)
-dynxml_local_installing_cs_IDMAPS = \
+dynxml_local_installing_SOURCES = dynxml-local-installing.xml
$(dynxml_local_installing_INCLUDES)
+dynxml_local_installing_IDMAPS = \
../refman-5.0/metadata/apis-c.idmap \
../refman-5.0/metadata/backup.idmap \
../refman-5.0/metadata/connectors-apis.idmap \
@@ -610,8 +611,11 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
+ ../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/functions-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-es.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
@@ -626,6 +630,7 @@
../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/releasenotes-es.idmap \
../refman-5.0/metadata/replication-notes.idmap \
../refman-5.0/metadata/restrictions.idmap \
../refman-5.0/metadata/se-bdb-core.idmap \
@@ -639,15 +644,15 @@
../refman-5.0/metadata/stored-programs-views.idmap \
../refman-common/metadata/bug-reports.idmap \
../refman-common/metadata/information-sources.idmap
-dynxml-local-installing-cs.validpure: $(dynxml_local_installing_cs_SOURCES)
-dynxml-local-installing-cs.titles: $(dynxml_local_installing_cs_SOURCES)
-dynxml-local-installing-cs.useless: $(dynxml_local_installing_cs_SOURCES)
-dynxml-local-installing-cs.valid: $(dynxml_local_installing_cs_SOURCES)
$(dynxml_local_installing_cs_IDMAPS)
-dynxml-local-installing-cs.validwarn: $(dynxml_local_installing_cs_SOURCES)
$(dynxml_local_installing_cs_IDMAPS)
-dynxml-local-installing-cs-prepped.xml: $(dynxml_local_installing_cs_SOURCES)
$(dynxml_local_installing_cs_IDMAPS)
-dynxml-local-installing-cs-manprepped.xml: $(dynxml_local_installing_cs_SOURCES)
$(dynxml_local_installing_cs_IDMAPS)
-dynxml-local-installing-cs-remprepped.xml: $(dynxml_local_installing_cs_SOURCES)
$(dynxml_local_installing_cs_IDMAPS)
-dynxml-local-installing-cs.xml: $(dynxml_local_installing_cs_INCLUDES)
+dynxml-local-installing.validpure: $(dynxml_local_installing_SOURCES)
+dynxml-local-installing.titles: $(dynxml_local_installing_SOURCES)
+dynxml-local-installing.useless: $(dynxml_local_installing_SOURCES)
+dynxml-local-installing.valid: $(dynxml_local_installing_SOURCES)
$(dynxml_local_installing_IDMAPS)
+dynxml-local-installing.validwarn: $(dynxml_local_installing_SOURCES)
$(dynxml_local_installing_IDMAPS)
+dynxml-local-installing-prepped.xml: $(dynxml_local_installing_SOURCES)
$(dynxml_local_installing_IDMAPS)
+dynxml-local-installing-manprepped.xml: $(dynxml_local_installing_SOURCES)
$(dynxml_local_installing_IDMAPS)
+dynxml-local-installing-remprepped.xml: $(dynxml_local_installing_SOURCES)
$(dynxml_local_installing_IDMAPS)
+dynxml-local-installing.xml: $(dynxml_local_installing_INCLUDES)
dynxml_local_language_structure_INCLUDES = \
../common/fixedchars.ent \
../common/phrases.ent \
@@ -773,7 +778,7 @@
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/functions-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-process-management.idmap \
../refman-5.0/metadata/news-5.0-core.idmap \
@@ -827,7 +832,7 @@
../refman-5.0/metadata/backup.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/optimization.idmap \
../refman-5.0/metadata/programs-admin-util-core.idmap \
@@ -893,8 +898,7 @@
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/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-outline.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 \
../refman-5.0/metadata/programs-using.idmap
@@ -923,7 +927,7 @@
../ndbapi/metadata/mgm-api.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-interconnects.idmap \
@@ -957,7 +961,7 @@
dynxml_local_releasenotes_es_5_0_IDMAPS = \
../ndbapi/metadata/mgm-api.idmap \
../refman-5.0/metadata/dba-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-backup.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
@@ -990,7 +994,7 @@
dynxml_local_se_bdb_IDMAPS = \
../refman-5.0/metadata/backup.idmap \
../refman-5.0/metadata/dba-core.idmap \
- ../refman-5.0/metadata/installing-cs-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 \
../refman-5.0/metadata/sql-syntax-transactions.idmap
@@ -1018,7 +1022,7 @@
../refman-5.0/metadata/data-types.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/news-5.0-core.idmap \
../refman-5.0/metadata/programs-using.idmap \
../refman-5.0/metadata/se-innodb-core.idmap \
@@ -1049,7 +1053,7 @@
../refman-5.0/metadata/backup.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/optimization.idmap \
../refman-5.0/metadata/programs-admin-util-core.idmap \
@@ -1105,6 +1109,7 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-cs-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
@@ -1140,6 +1145,7 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-cs-core.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
../refman-5.0/metadata/optimization.idmap \
@@ -1178,7 +1184,7 @@
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-interconnects.idmap \
@@ -1265,31 +1271,40 @@
information-schema-manprepped.xml: $(information_schema_SOURCES)
$(information_schema_IDMAPS)
information-schema-remprepped.xml: $(information_schema_SOURCES)
$(information_schema_IDMAPS)
-installing_cs_core_INCLUDES =
-installing_cs_core_IMAGES =
-installing_cs_core_SOURCES = installing-cs-core.xml $(installing_cs_core_INCLUDES)
-installing_cs_core_IDMAPS =
-installing-cs-core.validpure: $(installing_cs_core_SOURCES)
-installing-cs-core.titles: $(installing_cs_core_SOURCES)
-installing-cs-core.useless: $(installing_cs_core_SOURCES)
-installing-cs-core.valid: $(installing_cs_core_SOURCES) $(installing_cs_core_IDMAPS)
-installing-cs-core.validwarn: $(installing_cs_core_SOURCES) $(installing_cs_core_IDMAPS)
-installing-cs-core-prepped.xml: $(installing_cs_core_SOURCES)
$(installing_cs_core_IDMAPS)
-installing-cs-core-manprepped.xml: $(installing_cs_core_SOURCES)
$(installing_cs_core_IDMAPS)
-installing-cs-core-remprepped.xml: $(installing_cs_core_SOURCES)
$(installing_cs_core_IDMAPS)
+installing_cs_INCLUDES = \
+ ../common/fixedchars.ent \
+ ../common/phrases.ent \
+ ../refman-common/urls.ent \
+ all-entities.ent \
+ versions.ent
+installing_cs_IMAGES =
+installing_cs_SOURCES = installing-cs.xml $(installing_cs_INCLUDES)
+installing_cs_IDMAPS = \
+ ../refman-5.0/metadata/extending-mysql.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
+ ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/news.idmap \
+ ../refman-5.0/metadata/optimization.idmap \
+ ../refman-common/metadata/information-sources.idmap
+installing-cs.validpure: $(installing_cs_SOURCES)
+installing-cs.titles: $(installing_cs_SOURCES)
+installing-cs.useless: $(installing_cs_SOURCES)
+installing-cs.valid: $(installing_cs_SOURCES) $(installing_cs_IDMAPS)
+installing-cs.validwarn: $(installing_cs_SOURCES) $(installing_cs_IDMAPS)
+installing-cs-prepped.xml: $(installing_cs_SOURCES) $(installing_cs_IDMAPS)
+installing-cs-manprepped.xml: $(installing_cs_SOURCES) $(installing_cs_IDMAPS)
+installing-cs-remprepped.xml: $(installing_cs_SOURCES) $(installing_cs_IDMAPS)
installing_es_INCLUDES = \
../common/fixedchars.ent \
../common/phrases.ent \
../refman-common/urls.ent \
all-entities.ent \
- images/published/mysql-esi-win32-uninst.png \
versions.ent
-installing_es_IMAGES = \
- images/published/mysql-esi-win32-uninst.png
+installing_es_IMAGES =
installing_es_SOURCES = installing-es.xml $(installing_es_INCLUDES)
installing_es_IDMAPS = \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/news.idmap \
../refman-5.0/metadata/releasenotes-es.idmap
installing-es.validpure: $(installing_es_SOURCES)
@@ -1320,98 +1335,6 @@
installing-version-manprepped.xml: $(installing_version_SOURCES)
$(installing_version_IDMAPS)
installing-version-remprepped.xml: $(installing_version_SOURCES)
$(installing_version_IDMAPS)
-installing_INCLUDES = \
- ../common/fixedchars.ent \
- ../common/phrases.ent \
- ../dynamic-docs/build-configure/mysqld.xml \
- ../refman-common/urls.ent \
- all-entities.ent \
- dynxml-local-installing-cs.xml \
- images/published/mysql-cfg-fig1.png \
- images/published/mysql-cfg-fig10.png \
- images/published/mysql-cfg-fig2.png \
- images/published/mysql-cfg-fig3.png \
- images/published/mysql-cfg-fig4.png \
- images/published/mysql-cfg-fig5.png \
- images/published/mysql-cfg-fig6.png \
- images/published/mysql-cfg-fig7.png \
- images/published/mysql-cfg-fig8.png \
- images/published/mysql-cfg-fig9.png \
- images/published/mysql-es-win32-fig1.png \
- images/published/mysql-es-win32-fig2.png \
- images/published/mysql-es-win32-fig3.png \
- images/published/mysql-es-win32-fig4.png \
- images/published/mysql-esi-win32-uninst.png \
- installing-cs-core.xml \
- installing-es.xml \
- installing-version.xml \
- versions.ent
-installing_IMAGES = \
- images/published/mysql-cfg-fig1.png \
- images/published/mysql-cfg-fig10.png \
- images/published/mysql-cfg-fig2.png \
- images/published/mysql-cfg-fig3.png \
- images/published/mysql-cfg-fig4.png \
- images/published/mysql-cfg-fig5.png \
- images/published/mysql-cfg-fig6.png \
- images/published/mysql-cfg-fig7.png \
- images/published/mysql-cfg-fig8.png \
- images/published/mysql-cfg-fig9.png \
- images/published/mysql-es-win32-fig1.png \
- images/published/mysql-es-win32-fig2.png \
- images/published/mysql-es-win32-fig3.png \
- images/published/mysql-es-win32-fig4.png \
- images/published/mysql-esi-win32-uninst.png
-installing_SOURCES = installing.xml $(installing_INCLUDES)
-installing_IDMAPS = \
- ../refman-5.0/metadata/apis-c.idmap \
- ../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/errors-problems.idmap \
- ../refman-5.0/metadata/extending-mysql.idmap \
- ../refman-5.0/metadata/faqs.idmap \
- ../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-es.idmap \
- ../refman-5.0/metadata/internationalization.idmap \
- ../refman-5.0/metadata/introduction.idmap \
- ../refman-5.0/metadata/language-structure-core.idmap \
- ../refman-5.0/metadata/mysql-cluster-configuration.idmap \
- ../refman-5.0/metadata/mysql-cluster-utilities.idmap \
- ../refman-5.0/metadata/news-5.0-core.idmap \
- ../refman-5.0/metadata/news.idmap \
- ../refman-5.0/metadata/optimization.idmap \
- ../refman-5.0/metadata/precision-math.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/releasenotes-es.idmap \
- ../refman-5.0/metadata/replication-notes.idmap \
- ../refman-5.0/metadata/restrictions.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-compound-statements.idmap \
- ../refman-5.0/metadata/sql-syntax-data-definition.idmap \
- ../refman-5.0/metadata/sql-syntax-data-manipulation.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 \
- ../refman-common/metadata/bug-reports.idmap \
- ../refman-common/metadata/information-sources.idmap
-installing.validpure: $(installing_SOURCES)
-installing.titles: $(installing_SOURCES)
-installing.useless: $(installing_SOURCES)
-installing.valid: $(installing_SOURCES) $(installing_IDMAPS)
-installing.validwarn: $(installing_SOURCES) $(installing_IDMAPS)
-installing-prepped.xml: $(installing_SOURCES) $(installing_IDMAPS)
-installing-manprepped.xml: $(installing_SOURCES) $(installing_IDMAPS)
-installing-remprepped.xml: $(installing_SOURCES) $(installing_IDMAPS)
-
internationalization_INCLUDES = \
../common/fixedchars.ent \
../common/phrases.ent \
@@ -1426,7 +1349,7 @@
../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/functions-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/programs-installation.idmap \
../refman-5.0/metadata/replication-notes.idmap \
@@ -1464,8 +1387,8 @@
../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/functions-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
@@ -1533,7 +1456,6 @@
manual_INCLUDES = \
../common/fixedchars.ent \
../common/phrases.ent \
- ../dynamic-docs/build-configure/mysqld.xml \
../dynamic-docs/changelog/connector-j-versions.xml \
../dynamic-docs/changelog/connector-j.xml \
../dynamic-docs/changelog/connector-mxj-versions.xml \
@@ -1750,7 +1672,7 @@
dynxml-common-news-vstudioplugin.xml \
dynxml-local-dba.xml \
dynxml-local-functions.xml \
- dynxml-local-installing-cs.xml \
+ dynxml-local-installing.xml \
dynxml-local-language-structure.xml \
dynxml-local-mysql-cluster-optvar.xml \
dynxml-local-news-5.0.xml \
@@ -1782,12 +1704,10 @@
images/published/mysql-es-win32-fig2.png \
images/published/mysql-es-win32-fig3.png \
images/published/mysql-es-win32-fig4.png \
- images/published/mysql-esi-win32-uninst.png \
information-schema.xml \
- installing-cs-core.xml \
+ installing-cs.xml \
installing-es.xml \
installing-version.xml \
- installing.xml \
internationalization.xml \
introduction.xml \
language-structure-core.xml \
@@ -1948,8 +1868,7 @@
images/published/mysql-es-win32-fig1.png \
images/published/mysql-es-win32-fig2.png \
images/published/mysql-es-win32-fig3.png \
- images/published/mysql-es-win32-fig4.png \
- images/published/mysql-esi-win32-uninst.png
+ images/published/mysql-es-win32-fig4.png
manual_SOURCES = manual.xml $(manual_INCLUDES)
manual_IDMAPS = \
../ndbapi/metadata/mgm-api.idmap \
@@ -1969,9 +1888,9 @@
../refman-5.0/metadata/faqs.idmap \
../refman-5.0/metadata/functions-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-cs-core.idmap \
../refman-5.0/metadata/installing-es.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
../refman-5.0/metadata/installing-version.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/introduction.idmap \
@@ -2084,8 +2003,7 @@
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/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/mysql-cluster-backup.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-interconnects.idmap \
@@ -2208,7 +2126,7 @@
../refman-common/images/published/multi-comp-1.png
mysql_cluster_multi_computer_SOURCES = mysql-cluster-multi-computer.xml
$(mysql_cluster_multi_computer_INCLUDES)
mysql_cluster_multi_computer_IDMAPS = \
- ../refman-5.0/metadata/installing-cs-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 \
../refman-5.0/metadata/mysql-cluster-interconnects.idmap \
@@ -2355,7 +2273,7 @@
../refman-common/images/published/rolling-restarts.png
mysql_cluster_upgrade_downgrade_SOURCES = mysql-cluster-upgrade-downgrade.xml
$(mysql_cluster_upgrade_downgrade_INCLUDES)
mysql_cluster_upgrade_downgrade_IDMAPS = \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-upgrade-downgrade.idmap
mysql-cluster-upgrade-downgrade.validpure: $(mysql_cluster_upgrade_downgrade_SOURCES)
@@ -2380,7 +2298,7 @@
mysql_cluster_utilities_IDMAPS = \
../ndbapi/metadata/ndb-internals.idmap \
../ndbapi/metadata/ndbapi.idmap \
- ../refman-5.0/metadata/installing-cs-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 \
../refman-5.0/metadata/mysql-cluster-glossary.idmap \
@@ -2448,8 +2366,7 @@
../ndbapi/metadata/ndbapi.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/faqs.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/mysql-cluster-backup.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-glossary.idmap \
@@ -2540,7 +2457,7 @@
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/functions-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-process-management.idmap \
../refman-5.0/metadata/news-5.0-core.idmap \
@@ -2592,7 +2509,7 @@
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
../refman-5.0/metadata/optimization.idmap \
@@ -2711,7 +2628,7 @@
programs_installation_IMAGES =
programs_installation_SOURCES = programs-installation.xml
$(programs_installation_INCLUDES)
programs_installation_IDMAPS = \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/programs-installation.idmap \
../refman-5.0/metadata/sql-syntax-server-administration.idmap
@@ -2753,7 +2670,7 @@
programs_using_SOURCES = programs-using.xml $(programs_using_INCLUDES)
programs_using_IDMAPS = \
../refman-5.0/metadata/dba-core.idmap \
- ../refman-5.0/metadata/installing-cs-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 \
../refman-5.0/metadata/programs-using.idmap \
@@ -2801,8 +2718,7 @@
../refman-5.0/metadata/backup.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
../refman-5.0/metadata/mysql-cluster-multi-computer.idmap \
@@ -2861,7 +2777,7 @@
../ndbapi/metadata/mgm-api.idmap \
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/information-schema.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-version.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-configuration.idmap \
@@ -2910,7 +2826,7 @@
releasenotes_es_IDMAPS = \
../ndbapi/metadata/mgm-api.idmap \
../refman-5.0/metadata/dba-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/installing-version.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster-backup.idmap \
@@ -3265,7 +3181,7 @@
se_merge_IMAGES =
se_merge_SOURCES = se-merge.xml $(se_merge_INCLUDES)
se_merge_IDMAPS = \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/programs-admin-util-core.idmap \
../refman-5.0/metadata/sql-syntax-utility.idmap
se-merge.validpure: $(se_merge_SOURCES)
@@ -3352,7 +3268,7 @@
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/extending-mysql.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
@@ -3628,7 +3544,7 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/faqs.idmap \
- ../refman-5.0/metadata/installing-cs-core.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/internationalization.idmap \
../refman-5.0/metadata/mysql-cluster.idmap \
../refman-5.0/metadata/news-5.0-core.idmap \
@@ -3758,7 +3674,7 @@
../refman-5.0/metadata/dba-core.idmap \
../refman-5.0/metadata/errors-problems.idmap \
../refman-5.0/metadata/functions-core.idmap \
- ../refman-5.0/metadata/installing-outline.idmap \
+ ../refman-5.0/metadata/installing-core.idmap \
../refman-5.0/metadata/introduction.idmap \
../refman-5.0/metadata/language-structure-core.idmap \
../refman-5.0/metadata/optimization.idmap \
Copied: trunk/refman-5.0/installing-core.xml (from rev 11934,
trunk/refman-5.0/installing.xml)
===================================================================
--- trunk/refman-5.0/installing-core.xml (rev 0)
+++ trunk/refman-5.0/installing-core.xml 2008-10-01 17:16:08 UTC (rev 11936)
@@ -0,0 +1,18161 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter 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;
+]>
+<chapter id="installing">
+
+ <title>Installing and Upgrading MySQL</title>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>overview</secondary>
+ </indexterm>
+
+ <section id="installation-overview">
+
+ <title>MySQL Installation Overview</title>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>overview</secondary>
+ </indexterm>
+
+ <para>
+ This chapter describes how to obtain and install MySQL. You can
+ choose to install MySQL Enterprise or MySQL Community Server:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MySQL Enterprise is MySQL AB's commercial offering for modern
+ enterprise businesses. It includes MySQL Enterprise Server and
+ the services provided by MySQL Network. To install MySQL
+ Enterprise, see <xref linkend="installing-es"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL Community Server is for users who are comfortable
+ configuring and administering MySQL by themselves. To install
+ MySQL Community Server, see <xref linkend="installing-cs"/>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ If you plan to upgrade an existing version of MySQL to a newer
+ version rather than install MySQL for the first time, see
+ <xref linkend="upgrade"/>, for information about upgrade
+ procedures and about issues that you should consider before
+ upgrading.
+ </para>
+
+ <para>
+ If you are interested in migrating to MySQL from another database
+ system, you may wish to read <xref linkend="faqs-migration"/>,
+ which contains answers to some common questions concerning
+ migration issues.
+ </para>
+
+ </section>
+
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude"
href="installing-version.xml"/>
+
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="installing-es.xml"/>
+
+ <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="installing-cs.xml"/>
+
+ <section id="getting-mysql" role="cs">
+
+ <title>How to Get MySQL</title>
+
+ <indexterm>
+ <primary>downloading</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>MySQL version</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>version</primary>
+ <secondary>latest</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>getting MySQL</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>mirror sites</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>URLs for downloading MySQL</primary>
+ </indexterm>
+
+ <para>
+ Check our downloads page at <ulink url="&base-url-downloads;"/>
+ for information about the current version of MySQL and for
+ downloading instructions. For a complete up-to-date list of MySQL
+ download mirror sites, see
+ <ulink url="&base-url-downloads;mirrors.html"/>. You can also find
+ information there about becoming a MySQL mirror site and how to
+ report a bad or out-of-date mirror.
+ </para>
+
+ <para>
+ Our main mirror is located at
+ <ulink url="http://mirrors.sunsite.dk/mysql/"/>.
+ </para>
+
+ </section>
+
+ <section id="verifying-package-integrity" role="cs">
+
+ <title>Verifying Package Integrity Using MD5 Checksums or
+ <literal>GnuPG</literal></title>
+
+ <para>
+ After you have downloaded the MySQL package that suits your needs
+ and before you attempt to install it, you should make sure that it
+ is intact and has not been tampered with. MySQL AB offers three
+ means of integrity checking:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ MD5 checksums
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Cryptographic signatures using <literal>GnuPG</literal>, the
+ GNU Privacy Guard
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ For RPM packages, the built-in RPM integrity verification
+ mechanism
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The following sections describe how to use these methods.
+ </para>
+
+ <para>
+ If you notice that the MD5 checksum or GPG signatures do not
+ match, first try to download the respective package one more time,
+ perhaps from another mirror site. If you repeatedly cannot
+ successfully verify the integrity of the package, please notify us
+ about such incidents, including the full package name and the
+ download site you have been using, at
+ <email>webmaster@stripped</email> or
+ <email>build@stripped</email>. Do not report downloading problems
+ using the bug-reporting system.
+ </para>
+
+ <section id="verifying-md5-checksum" role="cs">
+
+ <title>Verifying the MD5 Checksum</title>
+
+ <para>
+ After you have downloaded a MySQL package, you should make sure
+ that its MD5 checksum matches the one provided on the MySQL
+ download pages. Each package has an individual checksum that you
+ can verify with the following command, where
+ <replaceable>package_name</replaceable> is the name of the
+ package you downloaded:
+ </para>
+
+<programlisting>
+shell> <userinput>md5sum
<replaceable>package_name</replaceable></userinput>
+</programlisting>
+
+ <para>
+ Example:
+ </para>
+
+<programlisting>
+shell> <userinput>md5sum
mysql-standard-¤t-version;-linux-i686.tar.gz</userinput>
+aaab65abbec64d5e907dcd41b8699945 mysql-standard-¤t-version;-linux-i686.tar.gz
+</programlisting>
+
+ <para>
+ You should verify that the resulting checksum (the string of
+ hexadecimal digits) matches the one displayed on the download
+ page immediately below the respective package.
+ </para>
+
+ <note>
+ <para>
+ Make sure to verify the checksum of the <emphasis>archive
+ file</emphasis> (for example, the <filename>.zip</filename>
or
+ <filename>.tar.gz</filename> file) and not of the files that
+ are contained inside of the archive.
+ </para>
+ </note>
+
+ <para>
+ Note that not all operating systems support the
+ <command>md5sum</command> command. On some, it is simply called
+ <command>md5</command>, and others do not ship it at all. On
+ Linux, it is part of the <emphasis role="bold">GNU Text
+ Utilities</emphasis> package, which is available for a wide
+ range of platforms. You can download the source code from
+ <ulink url="http://www.gnu.org/software/textutils/"/> as well.
+ If you have OpenSSL installed, you can use the command
+ <command>openssl md5
+ <replaceable>package_name</replaceable></command> instead. A
+ Windows implementation of the <command>md5</command> command
+ line utility is available from
+ <ulink url="http://www.fourmilab.ch/md5/"/>.
+ <command>winMd5Sum</command> is a graphical MD5 checking tool
+ that can be obtained from
+ <ulink url="http://www.nullriver.com/index/products/winmd5sum"/>.
+ </para>
+
+ </section>
+
+ <section id="checking-gpg-signature" role="cs">
+
+ <title>Signature Checking Using
<literal>GnuPG</literal></title>
+
+ <para>
+ Another method of verifying the integrity and authenticity of a
+ package is to use cryptographic signatures. This is more
+ reliable than using MD5 checksums, but requires more work.
+ </para>
+
+ <para>
+ At MySQL AB, we sign MySQL downloadable packages with
+ <command>GnuPG</command> (GNU Privacy Guard).
+ <command>GnuPG</command> is an Open Source alternative to the
+ well-known Pretty Good Privacy (<command>PGP</command>) by Phil
+ Zimmermann. See <ulink url="http://www.gnupg.org/"/> for more
+ information about <command>GnuPG</command> and how to obtain and
+ install it on your system. Most Linux distributions ship with
+ <command>GnuPG</command> installed by default. For more
+ information about <command>GnuPG</command>, see
+ <ulink url="http://www.openpgp.org/"/>.
+ </para>
+
+ <remark>
+ Do not use @email with the key name that comes out as
+ <literal><...></literal> in some output formats, which
are
+ not part of the key name.
+ </remark>
+
+ <para>
+ To verify the signature for a specific package, you first need
+ to obtain a copy of MySQL AB's public GPG build key, which you
+ can download from <ulink url="http://keyserver.pgp.com/"/>. The
+ key that you want to obtain is named
+ <literal>build@stripped</literal>. Alternatively, you can cut
+ and paste the key directly from the following text:
+ </para>
+
+<programlisting>
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.0.6 (GNU/Linux)
+Comment: For info see http://www.gnupg.org
+
+mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
+RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
+fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
+BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
+hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
+K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
+kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
+QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
+rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
+a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
+bT6IXQQTEQIAHQUCR6yUtAUJDTBYqAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
+cuH1rpIAn38+BlBI815Dou9VXMIAsQEk4G3tAJ9+Cz69Y/Xwm611lzteJrCAA32+
+aYhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
+cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
+YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
+Eg2aLos+5zEYrB/LsohGBBARAgAGBQI/rOOvAAoJEK/FI0h4g3QP9pYAoNtSISDD
+AAU2HafyAYlLD/yUC4hKAJ0czMsBLbo0M/xPaJ6Ox9Q5Hmw2uIhGBBARAgAGBQI/
+tEN3AAoJEIWWr6swc05mxsMAnRag9X61Ygu1kbfBiqDku4czTd9pAJ4q5W8KZ0+2
+ujTrEPN55NdWtnXj4YhGBBARAgAGBQJDW7PqAAoJEIvYLm8wuUtcf3QAnRCyqF0C
+pMCTdIGc7bDO5I7CIMhTAJ0UTGx0O1d/VwvdDiKWj45N2tNbYIhGBBMRAgAGBQJE
+8TMmAAoJEPZJxPRgk1MMCnEAoIm2pP0sIcVh9Yo0YYGAqORrTOL3AJwIbcy+e8HM
+NSoNV5u51RnrVKie34hMBBARAgAMBQJBgcsBBYMGItmLAAoJEBhZ0B9ne6HsQo0A
+nA/LCTQ3P5kvJvDhg1DsfVTFnJxpAJ49WFjg/kIcaN5iP1JfaBAITZI3H4hMBBAR
+AgAMBQJBgcs0BYMGItlYAAoJEIHC9+viE7aSIiMAnRVTVVAfMXvJhV6D5uHfWeeD
+046TAJ4kjwP2bHyd6DjCymq+BdEDz63axohMBBARAgAMBQJBgctiBYMGItkqAAoJ
+EGtw7Nldw/RzCaoAmwWM6+Rj1zl4D/PIys5nW48Hql3hAJ0bLOBthv96g+7oUy9U
+j09Uh41lF4hMBBARAgAMBQJB0JMkBYMF1BFoAAoJEH0lygrBKafCYlUAoIb1r5D6
+qMLMPMO1krHk3MNbX5b5AJ4vryx5fw6iJctC5GWJ+Y8ytXab34hMBBARAgAMBQJC
+K1u6BYMFeUjSAAoJEOYbpIkV67mr8xMAoJMy+UJC0sqXMPSxh3BUsdcmtFS+AJ9+
+Z15LpoOnAidTT/K9iODXGViK6ohMBBIRAgAMBQJAKlk6BYMHektSAAoJEDyhHzSU
++vhhJlwAnA/gOdwOThjO8O+dFtdbpKuImfXJAJ0TL53QKp92EzscZSz49lD2YkoE
+qohMBBIRAgAMBQJAPfq6BYMHZqnSAAoJEPLXXGPjnGWcst8AoLQ3MJWqttMNHDbl
+xSyzXhFGhRU8AJ4ukRzfNJqElQHQ00ZM2WnCVNzOUIhMBBIRAgAMBQJBDgqEBYMG
+lpoIAAoJEDnKK/Q9aopf/N0AniE2fcCKO1wDIwusuGVlC+JvnnWbAKDDoUSEYuNn
+5qzRbrzWW5zBno/Nb4hMBBIRAgAMBQJCgKU0BYMFI/9YAAoJEAQNwIV8g5+o4yQA
+nA9QOFLV5POCddyUMqB/fnctuO9eAJ4sJbLKP/Z3SAiTpKrNo+XZRxauqIhMBBMR
+AgAMBQI+TU2EBYMJV1cIAAoJEC27dr+t1MkzBQwAoJU+RuTVSn+TI+uWxUpT82/d
+s5NkAJ9bnNodffyMMK7GyMiv/TzifiTD+4hMBBMRAgAMBQJB14B2BYMFzSQWAAoJ
+EGbv28jNgv0+P7wAn13uu8YkhwfNMJJhWdpK2/qM/4AQAJ40drnKW2qJ5EEIJwtx
+pwapgrzWiYhMBBMRAgAMBQJCGIEOBYMFjCN+AAoJEHbBAxyiMW6hoO4An0Ith3Kx
+5/sixbjZR9aEjoePGTNKAJ94SldLiESaYaJx2lGIlD9bbVoHQYhdBBMRAgAdBQJH
+rJTPBQkNMFioBQsHCgMEAxUDAgMWAgECF4AACgkQjHGNO1By4fV0KgCgsLpG2wP0
+rc3s07Fync9g7MfairMAoIUefSNKrGTsTxvLeyH4DLzJW/QFiHsEMBECADsFAkJ3
+NfU0HQBPb3BzLi4uIHNob3VsZCBoYXZlIGJlZW4gbG9jYWwhIEknbSAqc28qIHN0
+dXBpZC4uLgAKCRA5yiv0PWqKX+9HAJ0WjTx/rqgouK4QCrOV/2IOU+jMQQCfYSC8
+JgsIIeN8aiyuStTdYrk0VWCIjwQwEQIATwUCRW8Av0gdAFNob3VsZCBoYXZlIGJl
+ZW4gYSBsb2NhbCBzaWduYXR1cmUsIG9yIHNvbWV0aGluZyAtIFdURiB3YXMgSSB0
+aGlua2luZz8ACgkQOcor9D1qil+g+wCfcFWoo5qUl4XTE9K8tH3Q+xGWeYYAnjii
+KxjtOXc0ls+BlqXxbfZ9uqBsiQIiBBABAgAMBQJBgcuFBYMGItkHAAoJEKrj5s5m
+oURoqC8QAIISudocbJRhrTAROOPoMsReyp46Jdp3iL1oFDGcPfkZSBwWh8L+cJjh
+dycIwwSeZ1D2h9S5Tc4EnoE0khsS6wBpuAuih5s//coRqIIiLKEdhTmNqulkCH5m
+imCzc5zXWZDW0hpLr2InGsZMuh2QCwAkB4RTBM+r18cUXMLV4YHKyjIVaDhsiPP/
+MKUj6rJNsUDmDq1GiJdOjySjtCFjYADlQYSD7zcd1vpqQLThnZBESvEoCqumEfOP
+xemNU6xAB0CL+pUpB40pE6Un6Krr5h6yZxYZ/N5vzt0Y3B5UUMkgYDSpjbulNvaU
+TFiOxEU3gJvXc1+h0BsxM7FwBZnuMA8LEA+UdQb76YcyuFBcROhmcEUTiducLu84
+E2BZ2NSBdymRQKSinhvXsEWlH6Txm1gtJLynYsvPi4B4JxKbb+awnFPusL8W+gfz
+jbygeKdyqzYgKj3M79R3geaY7Q75Kxl1UogiOKcbI5VZvg47OQCWeeERnejqEAdx
+EQiwGA/ARhVOP/1l0LQA7jg2P1xTtrBqqC2ufDB+v+jhXaCXxstKSW1lTbv/b0d6
+454UaOUV7RisN39pE2zFvJvY7bwfiwbUJVmYLm4rWJAEOJLIDtDRtt2h8JahDObm
+3CWkpadjw57S5v1c/mn+xV9yTgVx5YUfC/788L1HNKXfeVDq8zbAiQIiBBMBAgAM
+BQJCnwocBYMFBZpwAAoJENjCCglaJFfPIT4P/25zvPp8ixqV85igs3rRqMBtBsj+
+5EoEW6DJnlGhoi26yf1nasC2frVasWG7i4JIm0U3WfLZERGDjR/nqlOCEqsP5gS3
+43N7r4UpDkBsYh0WxH/ZtST5llFK3zd7XgtxvqKL98l/OSgijH2W2SJ9DGpjtO+T
+iegq7igtJzw7Vax9z/LQH2xhRQKZR9yernwMSYaJ72i9SyWbK3k0+e95fGnlR5pF
+zlGq320rYHgD7v9yoQ2t1klsAxK6e3b7Z+RiJG6cAU8o8F0kGxjWzF4v8D1op7S+
+IoRdB0Bap01ko0KLyt3+g4/33/2UxsW50BtfqcvYNJvU4bZns1YSqAgDOOanBhg8
+Ip5XPlDxH6J/3997n5JNj/nk5ojfd8nYfe/5TjflWNiput6tZ7frEki1wl6pTNbv
+V9C1eLUJMSXfDZyHtUXmiP9DKNpsucCUeBKWRKLqnsHLkLYydsIeUJ8+ciKc+EWh
+FxEY+Ml72cXAaz5BuW9L8KHNzZZfez/ZJabiARQpFfjOwAnmhzJ9r++TEKRLEr96
+taUI9/8nVPvT6LnBpcM38Td6dJ639YvuH3ilAqmPPw50YvglIEe4BUYD5r52Seqc
+8XQowouGOuBX4vs7zgWFuYA/s9ebfGaIw+uJd/56Xl9ll6q5CghqB/yt1EceFEnF
+CAjQc2SeRo6qzx22uQINBD4+ox0QCADv4Yl/Fsx1jjCyU+eMf2sXg3ap9awQ3+XF
+pmglhzdrozTZYKceXpqFPb+0ErbDVAjhgW15HjuAK+2Bvo7Ukd986jYd8uZENGJG
+N3UNMIep7JfsIeFyCGP901GVbZnSXlAURyZX1TRWGndoV9YLhSN+zctT6GQBbMTv
+NoPlwf0nvK//rG5lXDjXXHSHhSqxNxYy7SIzUHMQupfUNjsvCg8Rv871GRt/h+Yt
+7XUTMhoJrg+oBFdBlzh2FKKcy3ordfgGtGwpN+jMG7vgXjsPwiVt/m9Jgdu4Tmn/
+WggPOeSD+nyRb7cXG5avJxyKoVNw3PbXnLJff0tcWeUvMpRv8XkbAAMFB/4vCqpr
+wIatF+w4AnGKbrcId+3LmZRzmtRKdOyUZgQg4JHUF5Bq7I9ls8OwMP0xnVlpJp9q
+cW/AUbouXH3GRTu3Or68ouhaSbi7nF/e+fnlWOdJ3VpD15CdRxeIvhycEahNs5Yj
+f0RzLOCyXMF0L74w+NxBNwDunolRWw/qgAHcVBaDni25SjQRzxuwzxvcS/jYua5B
+Pk10ocbAexdM+2XSSWThtCTg5qMeyLLUExqGlPbuNaMmUyIlz4hYnSaCGQoe33bq
+z/KZ91/keR1DVzK+zPm2vJUjcXHvxd5Jh9C+67CqnYfXf2lcYSSDSfop1Q5611la
+F7vRgY0/DXKNYlPUiEwEGBECAAwFAkeslPwFCQ0wWN8ACgkQjHGNO1By4fWlzgCf
+Qj3rkfcljYZOuLOn50J7PFuF7FoAnjwWGhwVi9+Fm2B5RZvpo++BBkdP
+=Xquv
+-----END PGP PUBLIC KEY BLOCK-----
+
+</programlisting>
+
+ <para>
+ To import the build key into your personal public GPG keyring,
+ use <command>gpg --import</command>. For example, if you have
+ saved the key in a file named
+ <filename>mysql_pubkey.asc</filename>, the import command looks
+ like this:
+ </para>
+
+<programlisting>
+shell> <userinput>gpg --import mysql_pubkey.asc</userinput>
+gpg: key 5072E1F5: public key "MySQL Package signing key (www.mysql.com)
<build@stripped>" imported
+gpg: Total number processed: 1
+gpg: imported: 1
+gpg: no ultimately trusted keys found
+</programlisting>
+
+ <para>
+ You can also download the key from the public keyserver using
+ the public key id, <literal>5072E1F5</literal>:
+ </para>
+
+<programlisting>shell> gpg --recv-keys 5072E1F5
+gpg: requesting key 5072E1F5 from hkp server subkeys.pgp.net
+gpg: key 5072E1F5: "MySQL Package signing key (www.mysql.com)
<build@stripped>" 2 new signatures
+gpg: no ultimately trusted keys found
+gpg: Total number processed: 1
+gpg: new signatures: 2
+</programlisting>
+
+ <para>
+ If you want to import the key into your RPM configuration to
+ validate RPM install packages, you should be able to import the
+ key directly:
+ </para>
+
+<programlisting>shell> <userinput>rpm --import
mysql_pubkey.asc</userinput></programlisting>
+
+ <para>
+ If you experience problems, try exporting the key from
+ <command>gpg</command> and importing:
+ </para>
+
+<programlisting>shell> gpg --export -a 5072e1f5 > 5072e1f5.asc
+shell> rpm --import 5072e1f5.asc</programlisting>
+
+ <para>
+ Alternatively, <command>rpm</command> also supports loading the
+ key directly from a URL, and you cas use this manual page:
+ </para>
+
+<programlisting>shell> <userinput>rpm --import
&base-url-refman;/¤t-series;/en/checking-gpg-signature.html</userinput></programlisting>
+
+ <para>
+ After you have downloaded and imported the public build key,
+ download your desired MySQL package and the corresponding
+ signature, which also is available from the download page. The
+ signature file has the same name as the distribution file with
+ an <filename>.asc</filename> extension. For example:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="75*"/>
+ <tbody>
+ <row>
+ <entry>Distribution file</entry>
+
<entry><literal>mysql-standard-¤t-version;-linux-i686.tar.gz</literal></entry>
+ </row>
+ <row>
+ <entry>Signature file</entry>
+
<entry><literal>mysql-standard-¤t-version;-linux-i686.tar.gz.asc</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ Make sure that both files are stored in the same directory and
+ then run the following command to verify the signature for the
+ distribution file:
+ </para>
+
+<programlisting>
+shell> <userinput>gpg --verify
<replaceable>package_name</replaceable>.asc</userinput>
+</programlisting>
+
+ <para>
+ Example:
+ </para>
+
+<programlisting>
+shell> <userinput>gpg --verify
mysql-standard-¤t-version;-linux-i686.tar.gz.asc</userinput>
+gpg: Signature made Tue 12 Jul 2005 23:35:41 EST using DSA key ID 5072E1F5
+gpg: Good signature from "MySQL Package signing key (www.mysql.com)
<build@stripped>"
+</programlisting>
+
+ <para>
+ The <literal>Good signature</literal> message indicates that
+ everything is all right. You can ignore any <literal>insecure
+ memory</literal> warning you might obtain.
+ </para>
+
+ <para>
+ See the GPG documentation for more information on how to work
+ with public keys.
+ </para>
+
+ </section>
+
+ <section id="checking-rpm-signature" role="cs">
+
+ <title>Signature Checking Using
<literal>RPM</literal></title>
+
+ <para>
+ For RPM packages, there is no separate signature. RPM packages
+ have a built-in GPG signature and MD5 checksum. You can verify a
+ package by running the following command:
+ </para>
+
+<programlisting>
+shell> <userinput>rpm --checksig
<replaceable>package_name</replaceable>.rpm</userinput>
+</programlisting>
+
+ <para>
+ Example:
+ </para>
+
+<programlisting>
+shell> <userinput>rpm --checksig
MySQL-server-¤t-version;-0.glibc23.i386.rpm</userinput>
+MySQL-server-¤t-version;-0.glibc23.i386.rpm: md5 gpg OK
+</programlisting>
+
+ <note>
+ <para>
+ If you are using RPM 4.1 and it shows the error
+ <errortext>(GPG) NOT OK (MISSING KEYS:
+ GPG#5072e1f5)</errortext> even though you have imported the
+ MySQL public build key into your own GPG keyring, you need to
+ import the key into the RPM keyring first. RPM 4.1 no longer
+ uses your personal GPG keyring (or GPG itself). Rather, it
+ maintains its own keyring because it is a system-wide
+ application and a user's GPG public keyring is a user-specific
+ file. To import the MySQL public key into the RPM keyring,
+ first obtain the key as described in
+ <xref linkend="checking-gpg-signature"/>. Then use
+ <command>rpm --import</command> to import the key. For
+ example, if you have saved the public key in a file named
+ <filename>mysql_pubkey.asc</filename>, import it using this
+ command:
+ </para>
+ </note>
+
+<programlisting>
+shell> <userinput>rpm --import mysql_pubkey.asc</userinput>
+</programlisting>
+
+ <para>
+ If you need to obtain the MySQL public key, see
+ <xref linkend="checking-gpg-signature"/>.
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="installation-layouts" role="cses">
+
+ <title>Installation Layouts</title>
+
+ <indexterm>
+ <primary>installation layouts</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>layout of installation</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>directory structure</primary>
+ <secondary>default</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>default installation location</primary>
+ </indexterm>
+
+ <para>
+ This section describes the default layout of the directories
+ created by installing binary or source distributions provided by
+ MySQL AB. A distribution provided by another vendor might use a
+ layout different from those shown here.
+ </para>
+
+ <para>
+ For MySQL ¤t-series; on Windows, the default installation
+ directory is <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;</filename>. (Some Windows users prefer to install
+ in <filename>C:\mysql</filename>, the directory that formerly was
+ used as the default. However, the layout of the subdirectories
+ remains the same.) The installation directory has the following
+ subdirectories:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="35*"/>
+ <colspec colwidth="65*"/>
+ <tbody>
+ <row>
+ <entry><emphasis
role="bold">Directory</emphasis></entry>
+ <entry><emphasis
role="bold">Contents</emphasis></entry>
+ </row>
+ <row>
+ <entry><filename>bin</filename></entry>
+ <entry>Client programs and the <command>mysqld</command>
server</entry>
+ </row>
+ <row>
+ <entry><filename>data</filename></entry>
+ <entry>Log files, databases</entry>
+ </row>
+ <row>
+ <entry><filename>Docs</filename></entry>
+ <entry>Manual in CHM format</entry>
+ </row>
+ <row>
+ <entry><filename>examples</filename></entry>
+ <entry>Example programs and scripts</entry>
+ </row>
+ <row>
+ <entry><filename>include</filename></entry>
+ <entry>Include (header) files</entry>
+ </row>
+ <row>
+ <entry><filename>lib</filename></entry>
+ <entry>Libraries</entry>
+ </row>
+ <row>
+ <entry><filename>scripts</filename></entry>
+ <entry>Utility scripts</entry>
+ </row>
+ <row>
+ <entry><filename>share</filename></entry>
+ <entry>Error message files</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ Installations created from MySQL AB's Linux RPM distributions
+ result in files under the following system directories:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="35*"/>
+ <colspec colwidth="65*"/>
+ <tbody>
+ <row>
+ <entry><emphasis
role="bold">Directory</emphasis></entry>
+ <entry><emphasis
role="bold">Contents</emphasis></entry>
+ </row>
+ <row>
+ <entry><filename>/usr/bin</filename></entry>
+ <entry>Client programs and scripts</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/sbin</filename></entry>
+ <entry>The <command>mysqld</command> server</entry>
+ </row>
+ <row>
+ <entry><filename>/var/lib/mysql</filename></entry>
+ <entry>Log files, databases</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/share/info</filename></entry>
+ <entry>Manual in Info format</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/share/man</filename></entry>
+ <entry>Unix man pages</entry>
+ </row>
+ <row>
+
<entry><filename>/usr/include/mysql</filename></entry>
+ <entry>Include (header) files</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/lib/mysql</filename></entry>
+ <entry>Libraries</entry>
+ </row>
+ <row>
+ <entry><filename>/usr/share/mysql</filename></entry>
+ <entry>Error message and character set files</entry>
+ </row>
+ <row>
+
<entry><filename>/usr/share/sql-bench</filename></entry>
+ <entry>Benchmarks</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ On Unix, a <command>tar</command> file binary distribution is
+ installed by unpacking it at the installation location you choose
+ (typically <filename>/usr/local/mysql</filename>) and creates the
+ following directories in that location:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="35*"/>
+ <colspec colwidth="65*"/>
+ <tbody>
+ <row>
+ <entry><emphasis
role="bold">Directory</emphasis></entry>
+ <entry><emphasis
role="bold">Contents</emphasis></entry>
+ </row>
+ <row>
+ <entry><filename>bin</filename></entry>
+ <entry>Client programs and the <command>mysqld</command>
server</entry>
+ </row>
+ <row>
+ <entry><filename>data</filename></entry>
+ <entry>Log files, databases</entry>
+ </row>
+ <row>
+ <entry><filename>docs</filename></entry>
+ <entry>Manual in Info format</entry>
+ </row>
+ <row>
+ <entry><filename>man</filename></entry>
+ <entry>Unix manual pages</entry>
+ </row>
+ <row>
+ <entry><filename>include</filename></entry>
+ <entry>Include (header) files</entry>
+ </row>
+ <row>
+ <entry><filename>lib</filename></entry>
+ <entry>Libraries</entry>
+ </row>
+ <row>
+ <entry><filename>scripts</filename></entry>
+ <entry><command>mysql_install_db</command></entry>
+ </row>
+ <row>
+ <entry><filename>share/mysql</filename></entry>
+ <entry>Error message files</entry>
+ </row>
+ <row>
+ <entry><filename>sql-bench</filename></entry>
+ <entry>Benchmarks</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ A source distribution is installed after you configure and compile
+ it. By default, the installation step installs files under
+ <filename>/usr/local</filename>, in the following subdirectories:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="35*"/>
+ <colspec colwidth="65*"/>
+ <tbody>
+ <row>
+ <entry><emphasis
role="bold">Directory</emphasis></entry>
+ <entry><emphasis
role="bold">Contents</emphasis></entry>
+ </row>
+ <row>
+ <entry><filename>bin</filename></entry>
+ <entry>Client programs and scripts</entry>
+ </row>
+ <row>
+ <entry><filename>include/mysql</filename></entry>
+ <entry>Include (header) files</entry>
+ </row>
+ <row>
+ <entry><filename>Docs</filename></entry>
+ <entry>Manual in Info, CHM formats</entry>
+ </row>
+ <row>
+ <entry><filename>man</filename></entry>
+ <entry>Unix manual pages</entry>
+ </row>
+ <row>
+ <entry><filename>lib/mysql</filename></entry>
+ <entry>Libraries</entry>
+ </row>
+ <row>
+ <entry><filename>libexec</filename></entry>
+ <entry>The <command>mysqld</command> server</entry>
+ </row>
+ <row>
+ <entry><filename>share/mysql</filename></entry>
+ <entry>Error message files</entry>
+ </row>
+ <row>
+ <entry><filename>sql-bench</filename></entry>
+ <entry>Benchmarks and <literal>crash-me</literal>
test</entry>
+ </row>
+ <row>
+ <entry><filename>var</filename></entry>
+ <entry>Databases and log files</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ Within its installation directory, the layout of a source
+ installation differs from that of a binary installation in the
+ following ways:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ The <command>mysqld</command> server is installed in the
+ <filename>libexec</filename> directory rather than in the
+ <filename>bin</filename> directory.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The data directory is <filename>var</filename> rather than
+ <filename>data</filename>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>mysql_install_db</command> is installed in the
+ <filename>bin</filename> directory rather than in the
+ <filename>scripts</filename> directory.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The header file and library directories are
+ <filename>include/mysql</filename> and
+ <filename>lib/mysql</filename> rather than
+ <filename>include</filename> and
<filename>lib</filename>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ You can create your own binary installation from a compiled source
+ distribution by executing the
+ <filename>scripts/make_binary_distribution</filename> script from
+ the top directory of the source distribution.
+ </para>
+
+ </section>
+
+ <section id="quick-standard-installation" role="cs">
+
+ <title>Standard MySQL Installation Using a Binary Distribution</title>
+
+ <para>
+ The next several sections cover the installation of MySQL on
+ platforms where we offer packages using the native packaging
+ format of the respective platform. (This is also known as
+ performing a binary installation.) However, binary distributions
+ of MySQL are available for many other platforms as well. See
+ <xref linkend="installing-binary"/>, for generic installation
+ instructions for these packages that apply to all platforms.
+ </para>
+
+ <para>
+ See <xref linkend="installing-cs"/>, for more information on what
+ other binary distributions are available and how to obtain them.
+ </para>
+
+ </section>
+
+ <section id="windows-installation" role="cs">
+
+ <title>Installing MySQL on Windows</title>
+
+ <remark role="todo">
+ The prompt is inconsistent in the Windows sections. Sometimes it
+ begins with C:, sometimes it's shell>.
+ </remark>
+
+ <para>
+ A native Windows distribution of MySQL has been available from
+ MySQL AB since version 3.21 and represents a sizable percentage of
+ the daily downloads of MySQL. This section describes the process
+ for installing MySQL on Windows.
+ </para>
+
+ <note>
+ <para>
+ If you are upgrading MySQL from an existing installation older
+ than MySQL 4.1.5, you must first perform the procedure described
+ in <xref linkend="windows-upgrading"/>.
+ </para>
+ </note>
+
+ <para>
+ To run MySQL on Windows, you need the following:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ A Windows operating system such as 2000, XP, Vista, or Windows
+ Server 2003. Only 32-bit and 64-bit versions of Windows 2000
+ and later are supported; however, 64-bit Windows Vista is not
+ yet supported. Windows 95/98/ME and versions of Windows older
+ than these are no longer supported.
+ </para>
+
+ <para>
+ A Windows operating system permits you to run the MySQL server
+ as a service. See <xref linkend="windows-start-service"/>.
+ </para>
+
+ <para>
+ Generally, you should install MySQL on Windows using an
+ account that has administrator rights. Otherwise, you may
+ encounter problems with certain operations such as editing the
+ <literal>PATH</literal> environment variable or accessing the
+ <command>Service Control Manager</command>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ TCP/IP protocol support.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Enough space on the hard drive to unpack, install, and create
+ the databases in accordance with your requirements (generally
+ a minimum of 200 megabytes is recommended.)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ For a list of limitations within the Windows version of MySQL, see
+ <xref linkend="limits-windows"/>.
+ </para>
+
+ <para>
+ There may also be other requirements, depending on how you plan to
+ use MySQL:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ If you plan to connect to the MySQL server via ODBC, you need
+ a Connector/ODBC driver. See
+ <xref linkend="connectors-apis"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you need tables with a size larger than 4GB, install MySQL
+ on an NTFS or newer filesystem. Don't forget to use
+ <literal>MAX_ROWS</literal> and
+ <literal>AVG_ROW_LENGTH</literal> when you create tables. See
+ <xref linkend="create-table"/>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ MySQL for Windows is available in several distribution formats:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Binary distributions are available that contain a setup
+ program that installs everything you need so that you can
+ start the server immediately. Another binary distribution
+ format contains an archive that you simply unpack in the
+ installation location and then configure yourself. For
+ details, see <xref linkend="windows-choosing-package"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The source distribution contains all the code and support
+ files for building the executables using the Visual Studio
+ compiler system.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ Generally speaking, you should use a binary distribution that
+ includes an installer. It is simpler to use than the others, and
+ you need no additional tools to get MySQL up and running. The
+ installer for the Windows version of MySQL, combined with a GUI
+ Configuration Wizard, automatically installs MySQL, creates an
+ option file, starts the server, and secures the default user
+ accounts.
+ </para>
+
+ <caution>
+ <para>
+ Using virus scanning software such as Norton/Symantec Anti-Virus
+ on directories containing MySQL data and temporary tables can
+ cause issues, both in terms of the performance of MySQL and the
+ virus-scanning software mis-identifying the contents of the
+ files as containing spam. This is because of the fingerprinting
+ mechanism used by the virus scanning software, and the way in
+ which MySQL rapidly updates different files, which may be
+ identified as a potential security risk.
+ </para>
+
+ <para>
+ After installing MySQL Server, it is recommended that you
+ disable virus scanning on main directory
+ (<literal>datadir</literal>) being used to store your MySQL
+ table data. There is usually a system built into the virus
+ scanning software to allow certain directories to be
+ specifically ignored during virus scanning.
+ </para>
+
+ <para>
+ In addition, by default, MySQL creates temporary files in the
+ standard Windows temporary directory. To prevent the temporary
+ files also being scanned, you should configure a separate
+ temporary directory for MySQL temporary files and add this to
+ the virus scanning exclusion list. To do this, add a
+ configuration option for the <literal>tmpdir</literal> parameter
+ to your <filename>my.ini</filename> configuration file. For more
+ information, see <xref linkend="windows-create-option-file"/>,
+ and
+ <link
linkend="option_mysqld_tmpdir"><literal>tmpdir</literal></link>.
+ </para>
+ </caution>
+
+ <para>
+ The following section describes how to install MySQL on Windows
+ using a binary distribution. To use an installation package that
+ does not include an installer, follow the procedure described in
+ <xref linkend="windows-install-archive"/>. To install using a
+ source distribution, see <xref linkend="windows-source-build"/>.
+ </para>
+
+ <para>
+ MySQL distributions for Windows can be downloaded from
+ <ulink url="&base-url-downloads;"/>. See
+ <xref linkend="getting-mysql"/>.
+ </para>
+
+ <section id="windows-choosing-package" role="cs">
+
+ <title>Choosing An Installation Package</title>
+
+ <para>
+ For MySQL ¤t-series;, there are three installation
+ packages to choose from when installing MySQL on Windows:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <formalpara>
+
+ <title>The Essentials package</title>
+
+ <para>
+ This package has a filename similar to
+
<filename>mysql-essential-¤t-version;-win32.msi</filename>
+ and contains the minimum set of files needed to install
+ MySQL on Windows, including the Configuration Wizard. This
+ package does not include optional components such as the
+ embedded server and benchmark suite.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>The Complete package</title>
+
+ <para>
+ This package has a filename similar to
+ <filename>mysql-¤t-version;-win32.zip</filename> and
+ contains all files needed for a complete Windows
+ installation, including the Configuration Wizard. This
+ package includes optional components such as the embedded
+ server and benchmark suite.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ <listitem>
+ <formalpara>
+
+ <title>The no-install archive</title>
+
+ <para>
+ This package has a filename similar to
+
<filename>mysql-noinstall-¤t-version;-win32.zip</filename>
+ and contains all the files found in the Complete install
+ package, with the exception of the Configuration Wizard.
+ This package does not include an automated installer, and
+ must be manually installed and configured.
+ </para>
+
+ </formalpara>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The Essentials package is recommended for most users. It is
+ provided as an <filename>.msi</filename> file for use with the
+ Windows Installer. The Complete and Noinstall distributions are
+ packaged as Zip archives. To use them, you must have a tool that
+ can unpack <filename>.zip</filename> files.
+ </para>
+
+ <para>
+ Your choice of install package affects the installation process
+ you must follow. If you choose to install either the Essentials
+ or Complete install packages, see
+ <xref linkend="windows-using-installer"/>. If you choose to
+ install MySQL from the Noinstall archive, see
+ <xref linkend="windows-install-archive"/>.
+ </para>
+
+ </section>
+
+ <section id="windows-using-installer" role="cses">
+
+ <title>Installing MySQL with the Automated Installer</title>
+
+ <para>
+ New MySQL users can use the MySQL Installation Wizard and MySQL
+ Configuration Wizard to install MySQL on Windows. These are
+ designed to install and configure MySQL in such a way that new
+ users can immediately get started using MySQL.
+ </para>
+
+ <para>
+ The MySQL Installation Wizard and MySQL Configuration Wizard are
+ available in the Essentials and Complete install packages. They
+ are recommended for most standard MySQL installations.
+ Exceptions include users who need to install multiple instances
+ of MySQL on a single server host and advanced users who want
+ complete control of server configuration.
+ </para>
+
+ </section>
+
+ <section id="windows-install-wizard" role="cses">
+
+ <title>Using the MySQL Installation Wizard</title>
+
+ <section id="mysql-install-wizard-introduction">
+
+ <title>Introduction to the Installation Wizard</title>
+
+ <para>
+ MySQL Installation Wizard is an installer for the MySQL server
+ that uses the latest installer technologies for Microsoft
+ Windows. The MySQL Installation Wizard, in combination with
+ the MySQL Configuration Wizard, allows a user to install and
+ configure a MySQL server that is ready for use immediately
+ after installation.
+ </para>
+
+ <para>
+ The MySQL Installation Wizard is the standard installer for
+ all MySQL server distributions, version 4.1.5 and higher.
+ Users of previous versions of MySQL need to shut down and
+ remove their existing MySQL installations manually before
+ installing MySQL with the MySQL Installation Wizard. See
+ <xref linkend="mysql-install-wizard-upgrading"/>, for more
+ information on upgrading from a previous version.
+ </para>
+
+ <para>
+ The Microsoft Windows Installer (MSI) is the standard for
+ application installations on Windows 2000 and later versions.
+ The MySQL Installation Wizard makes use of this technology to
+ provide a smoother and more flexible installation process.
+ </para>
+
+ <para>
+ The Microsoft Windows Installer Engine was updated with the
+ release of Windows XP; those using a previous version of
+ Windows can reference
+ <ulink
url="http://support.microsoft.com/default.aspx?scid=kb;EN-US;292539">this
+ Microsoft Knowledge Base article</ulink> for information on
+ upgrading to the latest version of the Windows Installer
+ Engine.
+ </para>
+
+ <para>
+ In addition, Microsoft has introduced the WiX (Windows
+ Installer XML) toolkit, which is the first highly acknowledged
+ Open Source project from Microsoft. We have switched to WiX
+ because it is an Open Source project and it allows us to
+ handle the complete Windows installation process in a flexible
+ manner using scripts.
+ </para>
+
+ <para>
+ Improving the MySQL Installation Wizard depends on the support
+ and feedback of users. If you find that the MySQL Installation
+ Wizard is lacking some feature important to you, or if you
+ discover a bug, please report it in our bugs database using
+ the instructions given in <xref linkend="bug-reports"/>.
+ </para>
+
+ </section>
+
+ <section id="mysql-install-wizard-starting" role="cs">
+
+ <title>Downloading and Starting the MySQL Installation Wizard</title>
+
+ <para>
+ MySQL installation packages can be downloaded from
+ <ulink url="&base-url-downloads;"/>. If the package you
+ download is contained within a Zip archive, you need to
+ extract the archive first.
+ </para>
+
+ <note>
+ <para>
+ If you are installing on Windows Vista it is best to open a
+ port for MySQL to use before beginning the installation. To
+ do this, first ensure that you are logged in as an
+ administrator, then go to the <literal>Control
+ Panel</literal> and double-click the <literal>Windows
+ Firewall</literal> icon. Choose the <literal>Allow a program
+ through Windows Firewall</literal> option and click the
+ <guibutton>Add port</guibutton> button. Enter
+ <literal>MySQL</literal> into the
<guilabel>Name</guilabel>
+ text box and <literal>3306</literal> (or other port of your
+ choice) into the <guilabel>Port number</guilabel> text box.
+ Also ensure that the <guilabel>TCP</guilabel> protocol radio
+ button is selected. If you wish, you can also limit access
+ to the MySQL server by choosing the <guilabel>Change
+ scope</guilabel> button. Confirm your choices by clicking
+ the <guibutton>OK</guibutton> button. If you do not open a
+ port prior to installation, you cannot configure the MySQL
+ server immediately after installation. Additionally, when
+ running the MySQL Installation Wizard on Windows Vista,
+ ensure that you are logged in as a user with administrative
+ rights.
+ </para>
+ </note>
+
+ <para>
+ The process for starting the wizard depends on the contents of
+ the installation package you download. If there is a
+ <filename>setup.exe</filename> file present, double-click it
+ to start the installation process. If there is an
+ <filename>.msi</filename> file present, double-click it to
+ start the installation process.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-es-win32-fig1.png"
format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Installer Main Screen
+ (Windows)</phrase>
+ </textobject>
+ </mediaobject>
+
+ </section>
+
+<!-- EDITS THROUGH HERE -->
+
+ <section id="mysql-install-wizard-install-type" role="cs">
+
+ <title>Choosing an Installation Type</title>
+
+ <para>
+ There are three installation types available:
+ <emphasis role="bold">Typical</emphasis>,
+ <emphasis role="bold">Complete</emphasis>, and
+ <emphasis role="bold">Custom</emphasis>.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-es-win32-fig2.png"
format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Installer Setup type
+ (Windows)</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ The <emphasis role="bold">Typical</emphasis> installation type
+ installs the MySQL server, the <command>mysql</command>
+ command-line client, and the command-line utilities. The
+ command-line clients and utilities include
+ <command>mysqldump</command>,
<command>myisamchk</command>,
+ and several other tools to help you manage the MySQL server.
+ </para>
+
+ <para>
+ The <emphasis role="bold">Complete</emphasis> installation
+ type installs all components included in the installation
+ package. The full installation package includes components
+ such as the embedded server library, the benchmark suite,
+ support scripts, and documentation.
+ </para>
+
+ <para>
+ The <emphasis role="bold">Custom</emphasis> installation type
+ gives you complete control over which packages you wish to
+ install and the installation path that is used. See
+ <xref linkend="mysql-install-wizard-custom-install"/>, for
+ more information on performing a custom install.
+ </para>
+
+ <para>
+ If you choose the <emphasis role="bold">Typical</emphasis> or
+ <emphasis role="bold">Complete</emphasis> installation types
+ and click the <guibutton>Next</guibutton> button, you advance
+ to the confirmation screen to verify your choices and begin
+ the installation. If you choose the
+ <emphasis role="bold">Custom</emphasis> installation type and
+ click the <guibutton>Next</guibutton> button, you advance to
+ the custom installation dialog, described in
+ <xref linkend="mysql-install-wizard-custom-install"/>.
+ </para>
+
+ </section>
+
+ <section id="mysql-install-wizard-custom-install" role="cs">
+
+ <title>The Custom Installation Dialog</title>
+
+ <para>
+ If you wish to change the installation path or the specific
+ components that are installed by the MySQL Installation
+ Wizard, choose the <emphasis role="bold">Custom</emphasis>
+ installation type.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-es-win32-fig3.png"
format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Installer Custom Installation
+ (Windows)</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ A tree view on the left side of the custom install dialog
+ lists all available components. Components that are not
+ installed have a red <guiicon>X</guiicon> icon; components
+ that are installed have a gray icon. To change whether a
+ component is installed, click on that component's icon and
+ choose a new option from the drop-down list that appears.
+ </para>
+
+ <para>
+ You can change the default installation path by clicking the
+ <guibutton>Change...</guibutton> button to the right of the
+ displayed installation path.
+ </para>
+
+ <para>
+ After choosing your installation components and installation
+ path, click the <guibutton>Next</guibutton> button to advance
+ to the confirmation dialog.
+ </para>
+
+ </section>
+
+ <section id="mysql-install-wizard-confirmation-dialog" role="cs">
+
+ <title>The Confirmation Dialog</title>
+
+ <para>
+ Once you choose an installation type and optionally choose
+ your installation components, you advance to the confirmation
+ dialog. Your installation type and installation path are
+ displayed for you to review.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-es-win32-fig4.png"
format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Installer Installation Summary
+ (Windows)</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ To install MySQL if you are satisfied with your settings,
+ click the <guibutton>Install</guibutton> button. To change
+ your settings, click the <guibutton>Back</guibutton> button.
+ To exit the MySQL Installation Wizard without installing
+ MySQL, click the <guibutton>Cancel</guibutton> button.
+ </para>
+
+ <para>
+ After installation is complete, you have the option of
+ registering with the MySQL web site. Registration gives you
+ access to post in the MySQL forums at
+ <ulink url="http://forums.mysql.com">forums.mysql.com</ulink>,
+ along with the ability to report bugs at
+ <ulink url="http://bugs.mysql.com">bugs.mysql.com</ulink> and
+ to subscribe to our newsletter. The final screen of the
+ installer provides a summary of the installation and gives you
+ the option to launch the MySQL Configuration Wizard, which you
+ can use to create a configuration file, install the MySQL
+ service, and configure security settings.
+ </para>
+
+ </section>
+
+ <section id="mysql-install-wizard-changes" role="cs">
+
+ <title>Changes Made by MySQL Installation Wizard</title>
+
+ <para>
+ Once you click the <guibutton>Install</guibutton> button, the
+ MySQL Installation Wizard begins the installation process and
+ makes certain changes to your system which are described in
+ the sections that follow.
+ </para>
+
+ <para>
+ <emphasis role="bold">Changes to the Registry</emphasis>
+ </para>
+
+ <para>
+ The MySQL Installation Wizard creates one Windows registry key
+ in a typical install situation, located in
+ <literal>HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB</literal>.
+ </para>
+
+ <para>
+ The MySQL Installation Wizard creates a key named after the
+ major version of the server that is being installed, such as
+ <literal>MySQL Server ¤t-series;</literal>. It contains
+ two string values, <literal>Location</literal> and
+ <literal>Version</literal>. The
<literal>Location</literal>
+ string contains the path to the installation directory. In a
+ default installation it contains <literal>C:\Program
+ Files\MySQL\MySQL Server ¤t-series;\</literal>. The
+ <literal>Version</literal> string contains the release number.
+ For example, for an installation of MySQL Server
+ ¤t-version;, the key contains a value of
+ <literal>¤t-version;</literal>.
+ </para>
+
+ <para>
+ These registry keys are used to help external tools identify
+ the installed location of the MySQL server, preventing a
+ complete scan of the hard-disk to determine the installation
+ path of the MySQL server. The registry keys are not required
+ to run the server, and if you install MySQL using the
+ <literal>noinstall</literal> Zip archive, the registry keys
+ are not created.
+ </para>
+
+ <remark>
+ END REGISTRY
+ </remark>
+
+ <para>
+ <emphasis role="bold">Changes to the Start Menu</emphasis>
+ </para>
+
+ <para>
+ The MySQL Installation Wizard creates a new entry in the
+ Windows <guimenu>Start</guimenu> menu under a common MySQL
+ menu heading named after the major version of MySQL that you
+ have installed. For example, if you install MySQL
+ ¤t-series;, the MySQL Installation Wizard creates a
+ <guisubmenu>MySQL Server ¤t-series;</guisubmenu> section
+ in the <guimenu>Start</guimenu> menu.
+ </para>
+
+ <para>
+ The following entries are created within the new
+ <guimenu>Start</guimenu> menu section:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <guimenuitem>MySQL Command Line Client</guimenuitem>: This
+ is a shortcut to the <command>mysql</command> command-line
+ client and is configured to connect as the
+ <literal>root</literal> user. The shortcut prompts for a
+ <literal>root</literal> user password when you connect.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>MySQL Server Instance Config
+ Wizard</guimenuitem>: This is a shortcut to the MySQL
+ Configuration Wizard. Use this shortcut to configure a
+ newly installed server, or to reconfigure an existing
+ server.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>MySQL Documentation</guimenuitem>: This is a
+ link to the MySQL server documentation that is stored
+ locally in the MySQL server installation directory. This
+ option is not available when the MySQL server is installed
+ using the Essentials installation package.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <remark role="update">
+ [MH] Once again, if the package names change update this!
+ </remark>
+
+ <para>
+ <emphasis role="bold">Changes to the File System</emphasis>
+ </para>
+
+ <para>
+ The MySQL Installation Wizard by default installs the MySQL
+ ¤t-series; server to <filename>C:\<replaceable>Program
+ Files</replaceable>\MySQL\MySQL Server
+ <replaceable>¤t-series;</replaceable></filename>,
where
+ <replaceable>Program Files</replaceable> is the default
+ location for applications in your system, and
+ <replaceable>¤t-series;</replaceable> is the major
+ version of your MySQL server. This is the recommended location
+ for the MySQL server, replacing the former default location
+ <filename>C:\mysql</filename>.
+ </para>
+
+ <para>
+ By default, all MySQL applications are stored in a common
+ directory at <filename>C:\<replaceable>Program
+ Files</replaceable>\MySQL</filename>, where
+ <replaceable>Program Files</replaceable> is the default
+ location for applications in your Windows installation. A
+ typical MySQL installation on a developer machine might look
+ like this:
+ </para>
+
+<programlisting>
+C:\Program Files\MySQL\MySQL Server ¤t-series;
+C:\Program Files\MySQL\MySQL Administrator 1.0
+C:\Program Files\MySQL\MySQL Query Browser 1.0
+</programlisting>
+
+ <para>
+ This approach makes it easier to manage and maintain all MySQL
+ applications installed on a particular system.
+ </para>
+
+ </section>
+
+ <section id="mysql-install-wizard-upgrading" role="cs">
+
+ <title>Upgrading MySQL with the Installation Wizard</title>
+
+ <para>
+ The MySQL Installation Wizard can perform server upgrades
+ automatically using the upgrade capabilities of MSI. That
+ means you do not need to remove a previous installation
+ manually before installing a new release. The installer
+ automatically shuts down and removes the previous MySQL
+ service before installing the new version.
+ </para>
+
+ <para>
+ Automatic upgrades are available only when upgrading between
+ installations that have the same major and minor version
+ numbers. For example, you can upgrade automatically from MySQL
+ 4.1.5 to MySQL 4.1.6, but not from MySQL &previous-series; to
+ MySQL ¤t-series;.
+ </para>
+
+ <para>
+ See <xref linkend="windows-upgrading"/>.
+ </para>
+
+ <remark>
+ END UPGRADING
+ </remark>
+
+ </section>
+
+ </section>
+
+ <section id="mysql-config-wizard" role="cses">
+
+ <title>MySQL Server Configuration Wizard</title>
+
+ <para>
+ The MySQL Server Configuration Wizard helps automate the process
+ of configuring your server. It creates a custom MySQL
+ configuration file (<filename>my.ini</filename> or
+ <filename>my.cnf</filename>) by asking you a series of questions
+ and then applying your responses to a template to generate the
+ configuration file that is tuned to your installation.
+ </para>
+
+ <para>
+ The MySQL Server Configuration Wizard is included with the MySQL
+ ¤t-series; server. For Community Server users, the MySQL
+ Server Configuration Wizard is available only for Windows. For
+ Enterprise Server users, the MySQL Server Configuration Wizard
+ is included as part of the standard Enterprise Installer.
+ </para>
+
+ <para>
+ The MySQL Server Configuration Wizard is to a large extent the
+ result of feedback that MySQL AB has received from many users
+ over a period of several years. However, if you find that it
+ lacks some feature important to you, please report it in our
+ bugs database using the instructions given in
+ <xref linkend="bug-reports"/>.
+ </para>
+
+ <section id="mysql-config-wizard-starting" role="cses">
+
+ <title>Starting the MySQL Server Configuration Wizard</title>
+
+ <para>
+ The MySQL Server Configuration Wizard is normally started as
+ part of the installation process. You should only need to run
+ the MySQL Server Configuration Wizard again when you need to
+ change the configuration parameters of your server.
+ </para>
+
+ <para>
+ If you chose not to open a port prior to installing MySQL on
+ Windows Vista, you can choose to use the MySQL Server
+ Configuration Wizard after installation. However, you must
+ open a port in the Windows Firewall. To do this see the
+ instructions given in
+ <xref linkend="mysql-install-wizard-starting"/>. Rather than
+ opening a port, you also have the option of adding MySQL as a
+ program that bypasses the Windows Firewall. One or the other
+ option is sufficient — you need not do both.
+ Additionally, when running the MySQL Server Configuration
+ Wizard on Windows Vista ensure that you are logged in as a
+ user with administrative rights.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig1.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard</phrase>
+ </textobject>
+ </mediaobject>
+
+ <section id="mysql-config-wizard-starting-windows" role="cses">
+
+ <title>The MySQL Server Configuration Wizard on Windows</title>
+
+ <para>
+ You can launch the MySQL Configuration Wizard by clicking
+ the <guimenuitem>MySQL Server Instance Config
+ Wizard</guimenuitem> entry in the
+ <guisubmenu>MySQL</guisubmenu> section of the Windows
+ <guimenu>Start</guimenu> menu.
+ </para>
+
+ <para>
+ Alternatively, you can navigate to the
+ <filename>bin</filename> directory of your MySQL
+ installation and launch the
+ <filename>MySQLInstanceConfig.exe</filename> file directly.
+ </para>
+
+ <para>
+ The MySQL Server Configuration Wizard places the
+ <filename>my.ini</filename> file in the installation
+ directory for the MySQL server. This helps associate
+ configuration files with particular server instances.
+ </para>
+
+ <para>
+ To ensure that the MySQL server knows where to look for the
+ <filename>my.ini</filename> file, an argument similar to
+ this is passed to the MySQL server as part of the service
+ installation:
+ </para>
+
+<programlisting>
+--defaults-file="<replaceable>C:\Program Files\MySQL\MySQL Server
¤t-series;</replaceable>\my.ini"
+</programlisting>
+
+ <para>
+ Here, <replaceable>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;</replaceable> is replaced with the
+ installation path to the MySQL Server. The
+ <option>--defaults-file</option> option instructs the MySQL
+ server to read the specified file for configuration options
+ when it starts.
+ </para>
+
+ <para>
+ Apart from making changes to the <filename>my.ini</filename>
+ file by running the MySQL Server Configuration Wizard again,
+ you can modify it by opening it with a text editor and
+ making any necessary changes. You can also modify the server
+ configuration with the
+ <ulink url="http://www.mysql.com/products/administrator/">MySQL
+ Administrator</ulink> utility. For more information about
+ server configuration, see <xref linkend="server-options"/>.
+ </para>
+
+ <para>
+ MySQL clients and utilities such as the
+ <command>mysql</command> and
<command>mysqldump</command>
+ command-line clients are not able to locate the
+ <filename>my.ini</filename> file located in the server
+ installation directory. To configure the client and utility
+ applications, create a new <filename>my.ini</filename> file
+ in the Windows installation directory (for example,
+ <filename>C:\WINDOWS</filename>).
+ </para>
+
+ <para>
+ <remark role="update">
+ [SH] Amend the list with Windows Vista once it's there
+ </remark>
+
+ Under Windows Server 2003, Windows Server 2000 and Windows
+ XP, MySQL Server Configuration Wizard will configure MySQL
+ to work as a Windows service. To start and stop MySQL you
+ use the <filename>Services</filename> application that is
+ supplied as part of the Windows Administrator Tools.
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="mysql-config-wizard-maintenance" role="cses">
+
+ <title>Choosing a Maintenance Option</title>
+
+ <para>
+ If the MySQL Server Configuration Wizard detects an existing
+ configuration file, you have the option of either
+ reconfiguring your existing server, or removing the server
+ instance by deleting the configuration file and stopping and
+ removing the MySQL service.
+ </para>
+
+ <para>
+ To reconfigure an existing server, choose the
+ <guimenuitem>Re-configure Instance</guimenuitem> option and
+ click the <guibutton>Next</guibutton> button. Any existing
+ configuration file is not overwritten, but renamed (within the
+ same directory) using a timestamp (Windows) or sequential
+ number (Linux). To remove the existing server instance, choose
+ the <guimenuitem>Remove Instance</guimenuitem> option and
+ click the <guibutton>Next</guibutton> button.
+ </para>
+
+ <para>
+ If you choose the <guimenuitem>Remove Instance</guimenuitem>
+ option, you advance to a confirmation window. Click the
+ <guibutton>Execute</guibutton> button. The MySQL Server
+ Configuration Wizard stops and removes the MySQL service, and
+ then deletes the configuration file. The server installation
+ and its <filename>data</filename> folder are not removed.
+ </para>
+
+ <para>
+ If you choose the <guimenuitem>Re-configure
+ Instance</guimenuitem> option, you advance to the
+ <guimenu>Configuration Type</guimenu> dialog where you can
+ choose the type of installation that you wish to configure.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-configuration-type" role="cses">
+
+ <title>Choosing a Configuration Type</title>
+
+ <para>
+ When you start the MySQL Server Configuration Wizard for a new
+ MySQL installation, or choose the <guimenuitem>Re-configure
+ Instance</guimenuitem> option for an existing installation,
+ you advance to the <guimenu>Configuration Type</guimenu>
+ dialog.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig2.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard:
+ Configuration Type</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ There are two configuration types available:
+ <guimenuitem>Detailed Configuration</guimenuitem> and
+ <guimenuitem>Standard Configuration</guimenuitem>. The
+ <guimenuitem>Standard Configuration</guimenuitem> option is
+ intended for new users who want to get started with MySQL
+ quickly without having to make many decisions about server
+ configuration. The <guimenuitem>Detailed
+ Configuration</guimenuitem> option is intended for advanced
+ users who want more fine-grained control over server
+ configuration.
+ </para>
+
+ <para>
+ If you are new to MySQL and need a server configured as a
+ single-user developer machine, the <guimenuitem>Standard
+ Configuration</guimenuitem> should suit your needs. Choosing
+ the <guimenuitem>Standard Configuration</guimenuitem> option
+ causes the MySQL Configuration Wizard to set all configuration
+ options automatically with the exception of
+ <guimenuitem>Service Options</guimenuitem> and
+ <guimenuitem>Security Options</guimenuitem>.
+ </para>
+
+ <para>
+ The <guimenuitem>Standard Configuration</guimenuitem> sets
+ options that may be incompatible with systems where there are
+ existing MySQL installations. If you have an existing MySQL
+ installation on your system in addition to the installation
+ you wish to configure, the <guimenuitem>Detailed
+ Configuration</guimenuitem> option is recommended.
+ </para>
+
+ <para>
+ To complete the <guimenuitem>Standard
+ Configuration</guimenuitem>, please refer to the sections on
+ <guimenuitem>Service Options</guimenuitem> and
+ <guimenuitem>Security Options</guimenuitem> in
+ <xref linkend="mysql-config-wizard-service"/>, and
+ <xref linkend="mysql-config-wizard-security"/>, respectively.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-server-type" role="cses">
+
+ <title>The Server Type Dialog</title>
+
+ <para>
+ There are three different server types available to choose
+ from. The server type that you choose affects the decisions
+ that the MySQL Server Configuration Wizard makes with regard
+ to memory, disk, and processor usage.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig3.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard: Server
+ Type</phrase>
+ </textobject>
+ </mediaobject>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <guimenuitem>Developer Machine</guimenuitem>: Choose this
+ option for a typical desktop workstation where MySQL is
+ intended only for personal use. It is assumed that many
+ other desktop applications are running. The MySQL server
+ is configured to use minimal system resources.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Server Machine</guimenuitem>: Choose this
+ option for a server machine where the MySQL server is
+ running alongside other server applications such as FTP,
+ email, and Web servers. The MySQL server is configured to
+ use a moderate portion of the system resources.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Dedicated MySQL Server Machine</guimenuitem>:
+ Choose this option for a server machine that is intended
+ to run only the MySQL server. It is assumed that no other
+ applications are running. The MySQL server is configured
+ to use all available system resources.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <note>
+ <para>
+ By selecting one of the preconfigured configurations, the
+ values and settings of various options in your
+ <filename>my.cnf</filename> or
<filename>my.ini</filename>
+ will be altered accordingly. The default values and options
+ as described in the reference manual may therefore be
+ different to the options and values that were created during
+ the execution of the configuration wizard.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="mysql-config-wizard-database-usage" role="cses">
+
+ <title>The Database Usage Dialog</title>
+
+ <para>
+ The <guimenu>Database Usage</guimenu> dialog allows you to
+ indicate the storage engines that you expect to use when
+ creating MySQL tables. The option you choose determines
+ whether the <literal>InnoDB</literal> storage engine is
+ available and what percentage of the server resources are
+ available to <literal>InnoDB</literal>.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig4.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard: Usage
+ Dialog</phrase>
+ </textobject>
+ </mediaobject>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <guimenuitem>Multifunctional Database</guimenuitem>: This
+ option enables both the <literal>InnoDB</literal> and
+ <literal>MyISAM</literal> storage engines and divides
+ resources evenly between the two. This option is
+ recommended for users who use both storage engines on a
+ regular basis.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Transactional Database Only</guimenuitem>:
+ This option enables both the <literal>InnoDB</literal> and
+ <literal>MyISAM</literal> storage engines, but dedicates
+ most server resources to the <literal>InnoDB</literal>
+ storage engine. This option is recommended for users who
+ use <literal>InnoDB</literal> almost exclusively and make
+ only minimal use of <literal>MyISAM</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Non-Transactional Database
+ Only</guimenuitem>: This option disables the
+ <literal>InnoDB</literal> storage engine completely and
+ dedicates all server resources to the
+ <literal>MyISAM</literal> storage engine. This option is
+ recommended for users who do not use
+ <literal>InnoDB</literal>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The Configuration Wizard uses a template to generate the
+ server configuration file. The <guimenu>Database
+ Usage</guimenu> dialog sets one of the following option
+ strings:
+ </para>
+
+<programlisting>
+Multifunctional Database: MIXED
+Transactional Database Only: INNODB
+Non-Transactional Database Only: MYISAM
+</programlisting>
+
+ <para>
+ When these options are processed through the default template
+ (my-template.ini) the result is:
+ </para>
+
+<programlisting>
+Multifunctional Database:
+default-storage-engine=InnoDB
+_myisam_pct=50
+
+Transactional Database Only:
+default-storage-engine=InnoDB
+_myisam_pct=5
+
+Non-Transactional Database Only:
+default-storage-engine=MyISAM
+_myisam_pct=100
+skip-innodb
+</programlisting>
+
+ <para>
+ The <literal>_myisam_pct</literal> value is used to calculate
+ the percentage of resources dedicated to
+ <literal>MyISAM</literal>. The remaining resources are
+ allocated to <literal>InnoDB</literal>.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-tablespace" role="cses">
+
+ <title>The InnoDB Tablespace Dialog</title>
+
+ <para>
+ Some users may want to locate the <literal>InnoDB</literal>
+ tablespace files in a different location than the MySQL server
+ data directory. Placing the tablespace files in a separate
+ location can be desirable if your system has a higher capacity
+ or higher performance storage device available, such as a RAID
+ storage system.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig5.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard: InnoDB
+ Data Tablespace</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ To change the default location for the
+ <literal>InnoDB</literal> tablespace files, choose a new drive
+ from the drop-down list of drive letters and choose a new path
+ from the drop-down list of paths. To create a custom path,
+ click the <guibutton>...</guibutton> button.
+ </para>
+
+ <para>
+ If you are modifying the configuration of an existing server,
+ you must click the <guibutton>Modify</guibutton> button before
+ you change the path. In this situation you must move the
+ existing tablespace files to the new location manually before
+ starting the server.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-connections" role="cses">
+
+ <title>The Concurrent Connections Dialog</title>
+
+ <para>
+ To prevent the server from running out of resources, it is
+ important to limit the number of concurrent connections to the
+ MySQL server that can be established. The <guimenu>Concurrent
+ Connections</guimenu> dialog allows you to choose the expected
+ usage of your server, and sets the limit for concurrent
+ connections accordingly. It is also possible to set the
+ concurrent connection limit manually.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig6.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard:
+ Connections</phrase>
+ </textobject>
+ </mediaobject>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <guimenuitem>Decision Support (DSS)/OLAP</guimenuitem>:
+ Choose this option if your server does not require a large
+ number of concurrent connections. The maximum number of
+ connections is set at 100, with an average of 20
+ concurrent connections assumed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Online Transaction Processing
+ (OLTP)</guimenuitem>: Choose this option if your server
+ requires a large number of concurrent connections. The
+ maximum number of connections is set at 500.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Manual Setting</guimenuitem>: Choose this
+ option to set the maximum number of concurrent connections
+ to the server manually. Choose the number of concurrent
+ connections from the drop-down box provided, or enter the
+ maximum number of connections into the drop-down box if
+ the number you desire is not listed.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="mysql-config-wizard-networking" role="cses">
+
+ <title>The Networking and Strict Mode Options Dialog</title>
+
+ <para>
+ Use the <guimenu>Networking Options</guimenu> dialog to enable
+ or disable TCP/IP networking and to configure the port number
+ that is used to connect to the MySQL server.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig7.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard: Network
+ Configuration</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ TCP/IP networking is enabled by default. To disable TCP/IP
+ networking, uncheck the box next to the <guimenuitem>Enable
+ TCP/IP Networking</guimenuitem> option.
+ </para>
+
+ <para>
+ Port 3306 is used by default. To change the port used to
+ access MySQL, choose a new port number from the drop-down box
+ or type a new port number directly into the drop-down box. If
+ the port number you choose is in use, you are prompted to
+ confirm your choice of port number.
+ </para>
+
+ <para>
+ Set the <guimenu>Server SQL Mode</guimenu> to either enable or
+ disable strict mode. Enabling strict mode (default) makes
+ MySQL behave more like other database management systems.
+ <emphasis>If you run applications that rely on MySQL's old
+ <quote>forgiving</quote> behavior, make sure to either adapt
+ those applications or to disable strict mode.</emphasis> For
+ more information about strict mode, see
+ <xref linkend="server-sql-mode"/>.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-character-set" role="cses">
+
+ <title>The Character Set Dialog</title>
+
+ <para>
+ The MySQL server supports multiple character sets and it is
+ possible to set a default server character set that is applied
+ to all tables, columns, and databases unless overridden. Use
+ the <guimenu>Character Set</guimenu> dialog to change the
+ default character set of the MySQL server.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig8.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard:
+ Character Set</phrase>
+ </textobject>
+ </mediaobject>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <guimenuitem>Standard Character Set</guimenuitem>: Choose
+ this option if you want to use <literal>latin1</literal>
+ as the default server character set.
+ <literal>latin1</literal> is used for English and many
+ Western European languages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Best Support For
+ Multilingualism</guimenuitem>: Choose this option if you
+ want to use <literal>utf8</literal> as the default server
+ character set. This is a Unicode character set that can
+ store characters from many different languages.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <guimenuitem>Manual Selected Default Character Set /
+ Collation</guimenuitem>: Choose this option if you want to
+ pick the server's default character set manually. Choose
+ the desired character set from the provided drop-down
+ list.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="mysql-config-wizard-service" role="es">
+
+ <title>The Service Options Dialog</title>
+
+ <para>
+ On Windows platforms, the MySQL server can be installed as a
+ Windows service. When installed this way, the MySQL server can
+ be started automatically during system startup, and even
+ restarted automatically by Windows in the event of a service
+ failure.
+ </para>
+
+ <para>
+ The MySQL Server Configuration Wizard installs the MySQL
+ server as a service by default, using the service name
+ <literal>MySQL</literal>. If you do not wish to install the
+ service, uncheck the box next to the <guimenuitem>Install As
+ Windows Service</guimenuitem> option. You can change the
+ service name by picking a new service name from the drop-down
+ box provided or by entering a new service name into the
+ drop-down box.
+ </para>
+
+ <note>
+ <para>
+ Service names can include any legal character except forward
+ (<literal>/</literal>) or backward
(<literal>\</literal>)
+ slashes, and must be less than 256 characters long.
+ </para>
+ </note>
+
+ <warning>
+ <para>
+ If you are installing multiple versions of MySQL onto the
+ same machine, you <emphasis>must</emphasis> choose a
+ different service name for each version that you install. If
+ you do not choose a different service for each installed
+ version then the service manager information will be
+ inconsistent and this will cause problems when you try to
+ uninstall a previous version.
+ </para>
+
+ <para>
+ If you have already installed multiple versions using the
+ same service name, you must manually edit the contents of
+ the
+
<literal>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services</literal>
+ parameters within the Windows registry to update the
+ association of the service name with the correct server
+ version.
+ </para>
+
+ <para>
+ Typically, when installing multiple versions you create a
+ service name based on the version information. For example,
+ you might install MySQL 5.x as <literal>mysql5</literal>, or
+ specific versions such as MySQL 5.0.56 as
+ <literal>mysql5056</literal>.
+ </para>
+ </warning>
+
+ <para>
+ To install the MySQL server as a service but not have it
+ started automatically at startup, uncheck the box next to the
+ <guimenuitem>Launch the MySQL Server
+ Automatically</guimenuitem> option.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-security" role="cses">
+
+ <title>The Security Options Dialog</title>
+
+ <para>
+ <emphasis>It is strongly recommended that you set a
+ <literal>root</literal> password for your MySQL
+ server</emphasis>, and the MySQL Server Configuration Wizard
+ requires by default that you do so. If you do not wish to set
+ a <literal>root</literal> password, uncheck the box next to
+ the <guimenuitem>Modify Security Settings</guimenuitem>
+ option.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig9.png" format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard:
+ Security</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ To set the <literal>root</literal> password, enter the desired
+ password into both the <guimenuitem>New root
+ password</guimenuitem> and <guimenuitem>Confirm</guimenuitem>
+ boxes. If you are reconfiguring an existing server, you need
+ to enter the existing <literal>root</literal> password into
+ the <guimenuitem>Current root password</guimenuitem> box.
+ </para>
+
+ <para>
+ To prevent <literal>root</literal> logins from across the
+ network, check the box next to the <guimenuitem>Root may only
+ connect from localhost</guimenuitem> option. This increases
+ the security of your <literal>root</literal> account.
+ </para>
+
+ <para>
+ <remark role="todo">
+ [SH] Depending on how this will (or won't) be changed in the
+ Enterprise Installer, this paragraph needs to be reworked.
+ </remark>
+
+ To create an anonymous user account, check the box next to the
+ <guimenuitem>Create An Anonymous Account</guimenuitem> option.
+ Creating an anonymous account can decrease server security and
+ cause login and permission difficulties. For this reason, it
+ is not recommended.
+ </para>
+
+ </section>
+
+ <section id="mysql-config-wizard-confirmation" role="cses">
+
+ <title>The Confirmation Dialog</title>
+
+ <para>
+ The final dialog in the MySQL Server Configuration Wizard is
+ the <guimenu>Confirmation Dialog</guimenu>. To start the
+ configuration process, click the
+ <guibutton>Execute</guibutton> button. To return to a previous
+ dialog, click the <guibutton>Back</guibutton> button. To exit
+ the MySQL Server Configuration Wizard without configuring the
+ server, click the <guibutton>Cancel</guibutton> button.
+ </para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="images/published/mysql-cfg-fig10.png"
format="PNG"/>
+ </imageobject>
+ <textobject>
+ <phrase lang="en">MySQL Server Configuration Wizard:
+ Confirmation</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>
+ After you click the <guibutton>Execute</guibutton> button, the
+ MySQL Server Configuration Wizard performs a series of tasks
+ and displays the progress onscreen as the tasks are performed.
+ </para>
+
+ <para>
+ The MySQL Server Configuration Wizard first determines
+ configuration file options based on your choices using a
+ template prepared by MySQL AB developers and engineers. This
+ template is named <filename>my-template.ini</filename> and is
+ located in your server installation directory.
+ </para>
+
+ <para>
+ The MySQL Configuration Wizard then writes these options to
+ the corresponding configuration file.
+ </para>
+
+ <para>
+ If you chose to create a service for the MySQL server, the
+ MySQL Server Configuration Wizard creates and starts the
+ service. If you are reconfiguring an existing service, the
+ MySQL Server Configuration Wizard restarts the service to
+ apply your configuration changes.
+ </para>
+
+ <para>
+ If you chose to set a <literal>root</literal> password, the
+ MySQL Configuration Wizard connects to the server, sets your
+ new <literal>root</literal> password, and applies any other
+ security settings you may have selected.
+ </para>
+
+ <para>
+ After the MySQL Server Configuration Wizard has completed its
+ tasks, it displays a summary. Click the
+ <guibutton>Finish</guibutton> button to exit the MySQL Server
+ Configuration Wizard.
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="windows-install-archive" role="cs">
+
+ <title>Installing MySQL from a Noinstall Zip Archive</title>
+
+ <para>
+ Users who are installing from the Noinstall package can use the
+ instructions in this section to manually install MySQL. The
+ process for installing MySQL from a Zip archive is as follows:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Extract the archive to the desired install directory
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Create an option file
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Choose a MySQL server type
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start the MySQL server
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Secure the default user accounts
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ This process is described in the sections that follow.
+ </para>
+
+ </section>
+
+ <section id="windows-extract-archive" role="cs">
+
+ <title>Extracting the Install Archive</title>
+
+ <para>
+ To install MySQL manually, do the following:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ If you are upgrading from a previous version please refer to
+ <xref linkend="windows-upgrading"/>, before beginning the
+ upgrade process.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Make sure that you are logged in as a user with
+ administrator privileges.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Choose an installation location. Traditionally, the MySQL
+ server is installed in <filename>C:\mysql</filename>. The
+ MySQL Installation Wizard installs MySQL under
+ <filename>C:\Program Files\MySQL</filename>. If you do not
+ install MySQL at <filename>C:\mysql</filename>, you must
+ specify the path to the install directory during startup or
+ in an option file. See
+ <xref linkend="windows-create-option-file"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Extract the install archive to the chosen installation
+ location using your preferred Zip archive tool. Some tools
+ may extract the archive to a folder within your chosen
+ installation location. If this occurs, you can move the
+ contents of the subfolder into the chosen installation
+ location.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+ <section id="windows-create-option-file" role="cses">
+
+ <title>Creating an Option File</title>
+
+ <para>
+ If you need to specify startup options when you run the server,
+ you can indicate them on the command line or place them in an
+ option file. For options that are used every time the server
+ starts, you may find it most convenient to use an option file to
+ specify your MySQL configuration. This is particularly true
+ under the following circumstances:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ The installation or data directory locations are different
+ from the default locations (<filename>C:\Program
+ Files\MySQL\MySQL Server ¤t-series;</filename> and
+ <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;\data</filename>).
+ </para>
+ </listitem>
+
+ <listitem>
+ <remark role="todo">
+ Add an example here.
+ </remark>
+
+ <para>
+ You need to tune the server settings.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ When the MySQL server starts on Windows, it looks for options in
+ two files: the <filename>my.ini</filename> file in the Windows
+ directory, and the <filename>C:\my.cnf</filename> file. The
+ Windows directory typically is named something like
+ <filename>C:\WINDOWS</filename>. You can determine its exact
+ location from the value of the <literal>WINDIR</literal>
+ environment variable using the following command:
+ </para>
+
+<programlisting>
+C:\> <userinput>echo %WINDIR%</userinput>
+</programlisting>
+
+ <para>
+ MySQL looks for options first in the <filename>my.ini</filename>
+ file, and then in the <filename>my.cnf</filename> file. However,
+ to avoid confusion, it's best if you use only one file. If your
+ PC uses a boot loader where <filename>C:</filename> is not the
+ boot drive, your only option is to use the
+ <filename>my.ini</filename> file. Whichever option file you use,
+ it must be a plain text file.
+ </para>
+
+ <para>
+ You can also make use of the example option files included with
+ your MySQL distribution; see
+ <xref linkend="option-files-preconfigured"/>.
+ </para>
+
+ <para>
+ An option file can be created and modified with any text editor,
+ such as Notepad. For example, if MySQL is installed in
+ <filename>E:\mysql</filename> and the data directory is in
+ <filename>E:\mydata\data</filename>, you can create an option
+ file containing a <literal>[mysqld]</literal> section to specify
+ values for the <literal>basedir</literal> and
+ <literal>datadir</literal> parameters:
+ </para>
+
+<programlisting>
+[mysqld]
+# set basedir to your installation path
+basedir=E:/mysql
+# set datadir to the location of your data directory
+datadir=E:/mydata/data
+</programlisting>
+
+ <para>
+ Note that Windows pathnames are specified in option files using
+ (forward) slashes rather than backslashes. If you do use
+ backslashes, you must double them:
+ </para>
+
+<programlisting>
+[mysqld]
+# set basedir to your installation path
+basedir=E:\\mysql
+# set datadir to the location of your data directory
+datadir=E:\\mydata\\data
+</programlisting>
+
+ <para>
+ On Windows, the MySQL installer places the data directory
+ directly under the directory where you install MySQL. If you
+ would like to use a data directory in a different location, you
+ should copy the entire contents of the <filename>data</filename>
+ directory to the new location. For example, if MySQL is
+ installed in <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;</filename>, the data directory is by default in
+ <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;\data</filename>. If you want to use
+ <filename>E:\mydata</filename> as the data directory instead,
+ you must do two things:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Move the entire <filename>data</filename> directory and all
+ of its contents from <filename>C:\Program Files\MySQL\MySQL
+ Server ¤t-series;\data</filename> to
+ <filename>E:\mydata</filename>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Use a <option>--datadir</option> option to specify the new
+ data directory location each time you start the server.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+ <section id="windows-select-server" role="cs">
+
+ <title>Selecting a MySQL Server Type</title>
+
+ <para>
+ The following table shows the available servers for Windows in
+ MySQL ¤t-series;.
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="20*"/>
+ <colspec colwidth="80*"/>
+ <tbody>
+ <row>
+ <entry><emphasis
role="bold">Binary</emphasis></entry>
+ <entry><emphasis
role="bold">Description</emphasis></entry>
+ </row>
+ <row>
+ <entry><command>mysqld-nt</command></entry>
+ <entry>Optimized binary with named-pipe support</entry>
+ </row>
+ <row>
+ <entry><command>mysqld</command></entry>
+ <entry>Optimized binary without named-pipe support</entry>
+ </row>
+ <row>
+ <entry><command>mysqld-debug</command></entry>
+ <entry>Like <command>mysqld-nt</command>, but compiled
with full debugging and
+ automatic memory allocation checking</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ All of the preceding binaries are optimized for modern Intel
+ processors, but should work on any Intel i386-class or higher
+ processor.
+ </para>
+
+ <para>
+ Each of the servers in a distribution support the same set of
+ storage engines. The <literal>SHOW ENGINES</literal> statement
+ displays which engines a given server supports.
+ </para>
+
+ <para>
+ All Windows MySQL ¤t-series; servers have support for
+ symbolic linking of database directories.
+ </para>
+
+ <indexterm>
+ <primary>TCP/IP</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>named pipes</primary>
+ </indexterm>
+
+ <para>
+ MySQL supports TCP/IP on all Windows platforms. MySQL servers on
+ Windows support named pipes as indicated in the following list.
+ However, the default is to use TCP/IP regardless of platform.
+ (Named pipes are slower than TCP/IP in many Windows
+ configurations.)
+ </para>
+
+ <para>
+ Use of named pipes is subject to these conditions:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Named pipes are enabled only if you start the server with
+ the <option>--enable-named-pipe</option> option. It is
+ necessary to use this option explicitly because some users
+ have experienced problems with shutting down the MySQL
+ server when named pipes were used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Named-pipe connections are allowed only by the
+ <command>mysqld-nt</command> and
+ <command>mysqld-debug</command> servers.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <note>
+ <para>
+ Most of the examples in this manual use
+ <command>mysqld</command> as the server name. If you choose to
+ use a different server, such as <command>mysqld-nt</command>,
+ make the appropriate substitutions in the commands that are
+ shown in the examples.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="windows-server-first-start" role="cses">
+
+ <title>Starting the Server for the First Time</title>
+
+ <para>
+ This section gives a general overview of starting the MySQL
+ server. The following sections provide more specific information
+ for starting the MySQL server from the command line or as a
+ Windows service.
+ </para>
+
+ <para>
+ The information here applies primarily if you installed MySQL
+ using the <literal>Noinstall</literal> version, or if you wish
+ to configure and test MySQL manually rather than with the GUI
+ tools.
+ </para>
+
+ <para>
+ The examples in these sections assume that MySQL is installed
+ under the default location of <filename>C:\Program
+ Files\MySQL\MySQL Server ¤t-series;</filename>. Adjust the
+ pathnames shown in the examples if you have MySQL installed in a
+ different location.
+ </para>
+
+ <para>
+ Clients have two options. They can use TCP/IP, or they can use a
+ named pipe if the server supports named-pipe connections.
+ </para>
+
+ <para>
+ MySQL for Windows also supports shared-memory connections if the
+ server is started with the <option>--shared-memory</option>
+ option. Clients can connect through shared memory by using the
+ <option>--protocol=MEMORY</option> option.
+ </para>
+
+ <para>
+ For information about which server binary to run, see
+ <xref linkend="windows-select-server"/>.
+ </para>
+
+ <para>
+ Testing is best done from a command prompt in a console window
+ (or <quote>DOS window</quote>). In this way you can have the
+ server display status messages in the window where they are easy
+ to see. If something is wrong with your configuration, these
+ messages make it easier for you to identify and fix any
+ problems.
+ </para>
+
+ <para>
+ To start the server, enter this command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld" --console</userinput>
+</programlisting>
+
+ <para>
+ For a server that includes <literal>InnoDB</literal> support,
+ you should see the messages similar to those following as it
+ starts (the pathnames and sizes may differ):
+ </para>
+
+<programlisting>
+InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
+InnoDB: a new database to be created!
+InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
+InnoDB: Database physically writes the file full: wait...
+InnoDB: Log file c:\iblogs\ib_logfile0 did not exist: new to be created
+InnoDB: Setting log file c:\iblogs\ib_logfile0 size to 31457280
+InnoDB: Log file c:\iblogs\ib_logfile1 did not exist: new to be created
+InnoDB: Setting log file c:\iblogs\ib_logfile1 size to 31457280
+InnoDB: Log file c:\iblogs\ib_logfile2 did not exist: new to be created
+InnoDB: Setting log file c:\iblogs\ib_logfile2 size to 31457280
+InnoDB: Doublewrite buffer not found: creating new
+InnoDB: Doublewrite buffer created
+InnoDB: creating foreign key constraint system tables
+InnoDB: foreign key constraint system tables created
+011024 10:58:25 InnoDB: Started
+</programlisting>
+
+ <para>
+ When the server finishes its startup sequence, you should see
+ something like this, which indicates that the server is ready to
+ service client connections:
+ </para>
+
+<programlisting>
+mysqld: ready for connections
+Version: '¤t-version;' socket: '' port: 3306
+</programlisting>
+
+ <para>
+ The server continues to write to the console any further
+ diagnostic output it produces. You can open a new console window
+ in which to run client programs.
+ </para>
+
+ <para>
+ If you omit the <option>--console</option> option, the server
+ writes diagnostic output to the error log in the data directory
+ (<filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;\data</filename> by default). The error log is
+ the file with the <filename>.err</filename> extension.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables
+ initially have no passwords. After starting the server, you
+ should set up passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="windows-start-command-line" role="cses">
+
+ <title>Starting MySQL from the Windows Command Line</title>
+
+ <para>
+ The MySQL server can be started manually from the command line.
+ This can be done on any version of Windows.
+ </para>
+
+ <para>
+ To start the <command>mysqld</command> server from the command
+ line, you should start a console window (or <quote>DOS
+ window</quote>) and enter this command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld"</userinput>
+</programlisting>
+
+ <para>
+ The path to <command>mysqld</command> may vary depending on the
+ install location of MySQL on your system.
+ </para>
+
+ <para>
+ You can stop the MySQL server by executing this command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqladmin" -u root shutdown</userinput>
+</programlisting>
+
+ <note>
+ <para>
+ If the MySQL <literal>root</literal> user account has a
+ password, you need to invoke <command>mysqladmin</command>
+ with the <option>-p</option> option and supply the password
+ when prompted.
+ </para>
+ </note>
+
+ <para>
+ This command invokes the MySQL administrative utility
+ <command>mysqladmin</command> to connect to the server and tell
+ it to shut down. The command connects as the MySQL
+ <literal>root</literal> user, which is the default
+ administrative account in the MySQL grant system. Note that
+ users in the MySQL grant system are wholly independent from any
+ login users under Windows.
+ </para>
+
+ <para>
+ If <command>mysqld</command> doesn't start, check the error log
+ to see whether the server wrote any messages there to indicate
+ the cause of the problem. The error log is located in the
+ <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;\data</filename> directory. It is the file with
+ a suffix of <filename>.err</filename>. You can also try to start
+ the server as <command>mysqld --console</command>; in this case,
+ you may get some useful information on the screen that may help
+ solve the problem.
+ </para>
+
+ <para>
+ The last option is to start <command>mysqld</command> with the
+ <option>--standalone</option> and
<option>--debug</option>
+ options. In this case, <command>mysqld</command> writes a log
+ file <filename>C:\mysqld.trace</filename> that should contain
+ the reason why <command>mysqld</command> doesn't start. See
+ <ulink url="http://forge.mysql.com/wiki/MySQL_Internals_Porting">MySQL
+ Internals: Porting</ulink>.
+ </para>
+
+ <para>
+ Use <command>mysqld --verbose --help</command> to display all
+ the options that <command>mysqld</command> understands.
+ </para>
+
+ </section>
+
+ <section id="windows-start-service" role="cses">
+
+ <title>Starting MySQL as a Windows Service</title>
+
+ <para>
+ On Windows, the recommended way to run MySQL is to install it as
+ a Windows service, whereby MySQL starts and stops automatically
+ when Windows starts and stops. A MySQL server installed as a
+ service can also be controlled from the command line using
+ <command>NET</command> commands, or with the graphical
+ <command>Services</command> utility. Generally, to install MySQL
+ as a Windows service you should be logged in using an account
+ that has administrator rights.
+ </para>
+
+ <para>
+ The <command>Services</command> utility (the Windows
+ <command>Service Control Manager</command>) can be found in the
+ Windows Control Panel (under <guimenuitem>Administrative
+ Tools</guimenuitem> on Windows 2000, XP, Vista, and Server
+ 2003). To avoid conflicts, it is advisable to close the
+ <command>Services</command> utility while performing server
+ installation or removal operations from the command line.
+ </para>
+
+ <para>
+ Before installing MySQL as a Windows service, you should first
+ stop the current server if it is running by using the following
+ command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqladmin"</userinput>
+ <userinput>-u root shutdown</userinput>
+</programlisting>
+
+ <note>
+ <para>
+ If the MySQL <literal>root</literal> user account has a
+ password, you need to invoke <command>mysqladmin</command>
+ with the <option>-p</option> option and supply the password
+ when prompted.
+ </para>
+ </note>
+
+ <para>
+ This command invokes the MySQL administrative utility
+ <command>mysqladmin</command> to connect to the server and tell
+ it to shut down. The command connects as the MySQL
+ <literal>root</literal> user, which is the default
+ administrative account in the MySQL grant system. Note that
+ users in the MySQL grant system are wholly independent from any
+ login users under Windows.
+ </para>
+
+ <para>
+ Install the server as a service using this command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld" --install</userinput>
+</programlisting>
+
+ <para>
+ The service-installation command does not start the server.
+ Instructions for that are given later in this section.
+ </para>
+
+ <para>
+ To make it easier to invoke MySQL programs, you can add the
+ pathname of the MySQL <filename>bin</filename> directory to your
+ Windows system <literal>PATH</literal> environment variable:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ On the Windows desktop, right-click on the <guiicon>My
+ Computer</guiicon> icon, and select
+ <guimenuitem>Properties</guimenuitem>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Next select the <guimenuitem>Advanced</guimenuitem> tab from
+ the <guimenu>System Properties</guimenu> menu that appears,
+ and click the <guibutton>Environment Variables</guibutton>
+ button.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Under <guilabel>System Variables</guilabel>, select
+ <guimenuitem>Path</guimenuitem>, and then click the
+ <guibutton>Edit</guibutton> button. The <guimenu>Edit
System
+ Variable</guimenu> dialogue should appear.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Place your cursor at the end of the text appearing in the
+ space marked <guilabel>Variable Value</guilabel>. (Use the
+ <keycap>End</keycap> key to ensure that your cursor is
+ positioned at the very end of the text in this space.) Then
+ enter the complete pathname of your MySQL
+ <filename>bin</filename> directory (for example,
+ <literal>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;\bin</literal>), Note that there should be a
+ semicolon separating this path from any values present in
+ this field. Dismiss this dialogue, and each dialogue in
+ turn, by clicking <guibutton>OK</guibutton> until all of the
+ dialogues that were opened have been dismissed. You should
+ now be able to invoke any MySQL executable program by typing
+ its name at the DOS prompt from any directory on the system,
+ without having to supply the path. This includes the
+ servers, the <command>mysql</command> client, and all MySQL
+ command-line utilities such as <command>mysqladmin</command>
+ and <command>mysqldump</command>.
+ </para>
+
+ <para>
+ You should not add the MySQL <filename>bin</filename>
+ directory to your Windows <literal>PATH</literal> if you are
+ running multiple MySQL servers on the same machine.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <warning>
+ <para>
+ You must exercise great care when editing your system
+ <literal>PATH</literal> by hand; accidental deletion or
+ modification of any portion of the existing
+ <literal>PATH</literal> value can leave you with a
+ malfunctioning or even unusable system.
+ </para>
+ </warning>
+
+ <para>
+ The following additional arguments can be used in MySQL
+ ¤t-series; when installing the service:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ You can specify a service name immediately following the
+ <option>--install</option> option. The default service name
+ is <literal>MySQL</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If a service name is given, it can be followed by a single
+ option. By convention, this should be
+
<option>--defaults-file=<replaceable>file_name</replaceable></option>
+ to specify the name of an option file from which the server
+ should read options when it starts.
+ </para>
+
+ <para>
+ The use of a single option other than
+ <option>--defaults-file</option> is possible but
+ discouraged. <option>--defaults-file</option> is more
+ flexible because it enables you to specify multiple startup
+ options for the server by placing them in the named option
+ file. Also, in MySQL ¤t-series;, use of an option
+ different from <option>--defaults-file</option> is not
+ supported until 5.0.3.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ As of MySQL 5.0.1, you can also specify a
+ <option>--local-service</option> option following the
+ service name. This causes the server to run using the
+ <literal>LocalService</literal> Windows account that has
+ limited system privileges. This account is available only
+ for Windows XP or newer. If both
+ <option>--defaults-file</option> and
+ <option>--local-service</option> are given following the
+ service name, they can be in any order.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ For a MySQL server that is installed as a Windows service, the
+ following rules determine the service name and option files that
+ the server uses:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ If the service-installation command specifies no service
+ name or the default service name (<literal>MySQL</literal>)
+ following the <option>--install</option> option, the server
+ uses the a service name of <literal>MySQL</literal> and
+ reads options from the <literal>[mysqld]</literal> group in
+ the standard option files.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If the service-installation command specifies a service name
+ other than <literal>MySQL</literal> following the
+ <option>--install</option> option, the server uses that
+ service name. It reads options from the
+ <literal>[mysqld]</literal> group and the group that has the
+ same name as the service in the standard option files. This
+ allows you to use the <literal>[mysqld]</literal> group for
+ options that should be used by all MySQL services, and an
+ option group with the service name for use by the server
+ installed with that service name.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If the service-installation command specifies a
+ <option>--defaults-file</option> option after the service
+ name, the server reads options only from the
+ <literal>[mysqld]</literal> group of the named file and
+ ignores the standard option files.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ As a more complex example, consider the following command:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld"</userinput>
+ <userinput>--install MySQL
--defaults-file=C:\my-opts.cnf</userinput>
+</programlisting>
+
+ <para>
+ Here, the default service name (<literal>MySQL</literal>) is
+ given after the <option>--install</option> option. If no
+ <option>--defaults-file</option> option had been given, this
+ command would have the effect of causing the server to read the
+ <literal>[mysqld]</literal> group from the standard option
+ files. However, because the <option>--defaults-file</option>
+ option is present, the server reads options from the
+ <literal>[mysqld]</literal> option group, and only from the
+ named file.
+ </para>
+
+ <para>
+ You can also specify options as Start parameters in the Windows
+ <command>Services</command> utility before you start the MySQL
+ service.
+ </para>
+
+ <para>
+ Once a MySQL server has been installed as a service, Windows
+ starts the service automatically whenever Windows starts. The
+ service also can be started immediately from the
+ <command>Services</command> utility, or by using a <command>NET
+ START MySQL</command> command. The <command>NET</command>
+ command is not case sensitive.
+ </para>
+
+ <para>
+ When run as a service, <command>mysqld</command> has no access
+ to a console window, so no messages can be seen there. If
+ <command>mysqld</command> does not start, check the error log to
+ see whether the server wrote any messages there to indicate the
+ cause of the problem. The error log is located in the MySQL data
+ directory (for example, <filename>C:\Program Files\MySQL\MySQL
+ Server ¤t-series;\data</filename>). It is the file with a
+ suffix of <filename>.err</filename>.
+ </para>
+
+ <para>
+ When a MySQL server has been installed as a service, and the
+ service is running, Windows stops the service automatically when
+ Windows shuts down. The server also can be stopped manually by
+ using the <literal>Services</literal> utility, the <command>NET
+ STOP MySQL</command> command, or the <command>mysqladmin
+ shutdown</command> command.
+ </para>
+
+ <para>
+ You also have the choice of installing the server as a manual
+ service if you do not wish for the service to be started
+ automatically during the boot process. To do this, use the
+ <option>--install-manual</option> option rather than the
+ <option>--install</option> option:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld" --install-manual</userinput>
+</programlisting>
+
+ <para>
+ To remove a server that is installed as a service, first stop it
+ if it is running by executing <command>NET STOP MySQL</command>.
+ Then use the <option>--remove</option> option to remove it:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqld" --remove</userinput>
+</programlisting>
+
+ <para>
+ If <command>mysqld</command> is not running as a service, you
+ can start it from the command line. For instructions, see
+ <xref linkend="windows-start-command-line"/>.
+ </para>
+
+ <para>
+ Please see <xref linkend="windows-troubleshooting"/>, if you
+ encounter difficulties during installation.
+ </para>
+
+ </section>
+
+ <section id="windows-testing" role="cses">
+
+ <title>Testing The MySQL Installation</title>
+
+ <indexterm>
+ <primary>TCP/IP</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>named pipes</primary>
+ </indexterm>
+
+ <para>
+ You can test whether the MySQL server is working by executing
+ any of the following commands:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqlshow"</userinput>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqlshow" -u root mysql</userinput>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqladmin" version status proc</userinput>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysql" test</userinput>
+</programlisting>
+
+ <para>
+ If <command>mysqld</command> is slow to respond to TCP/IP
+ connections from client programs, there is probably a problem
+ with your DNS. In this case, start <command>mysqld</command>
+ with the <option>--skip-name-resolve</option> option and use
+ only <literal>localhost</literal> and IP numbers in the
+ <literal>Host</literal> column of the MySQL grant tables.
+ </para>
+
+ <para>
+ You can force a MySQL client to use a named-pipe connection
+ rather than TCP/IP by specifying the <option>--pipe</option> or
+ <option>--protocol=PIPE</option> option, or by specifying
+ <literal>.</literal> (period) as the host name. Use the
+ <option>--socket</option> option to specify the name of the pipe
+ if you do not want to use the default pipe name.
+ </para>
+
+ <para>
+ Note that if you have set a password for the
+ <literal>root</literal> account, deleted the anonymous account,
+ or created a new user account, then you must use the appropriate
+ <option>-u</option> and <option>-p</option> options with
the
+ commands shown above in order to connect with the MySQL Server.
+ See <xref linkend="connecting"/>.
+ </para>
+
+ <para>
+ For more information about <command>mysqlshow</command>, see
+ <xref linkend="mysqlshow"/>.
+ </para>
+
+ </section>
+
+ <section id="windows-troubleshooting" role="cses">
+
+ <title>Troubleshooting a MySQL Installation Under Windows</title>
+
+ <para>
+ When installing and running MySQL for the first time, you may
+ encounter certain errors that prevent the MySQL server from
+ starting. The purpose of this section is to help you diagnose
+ and correct some of these errors.
+ </para>
+
+ <para>
+ Your first resource when troubleshooting server issues is the
+ error log. The MySQL server uses the error log to record
+ information relevant to the error that prevents the server from
+ starting. The error log is located in the data directory
+ specified in your <filename>my.ini</filename> file. The default
+ data directory location is <filename>C:\Program
+ Files\MySQL\MySQL Server ¤t-series;\data</filename>. See
+ <xref linkend="error-log"/>.
+ </para>
+
+ <para>
+ Another source of information regarding possible errors is the
+ console messages displayed when the MySQL service is starting.
+ Use the <command>NET START MySQL</command> command from the
+ command line after installing <command>mysqld</command> as a
+ service to see any error messages regarding the starting of the
+ MySQL server as a service. See
+ <xref linkend="windows-start-service"/>.
+ </para>
+
+ <para>
+ The following examples show other common error messages you may
+ encounter when installing MySQL and starting the server for the
+ first time:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ If the MySQL server cannot find the <literal>mysql</literal>
+ privileges database or other critical files, you may see
+ these messages:
+ </para>
+
+<programlisting>
+System error 1067 has occurred.
+Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist
+</programlisting>
+
+ <para>
+ These messages often occur when the MySQL base or data
+ directories are installed in different locations than the
+ default locations (<filename>C:\Program Files\MySQL\MySQL
+ Server ¤t-series;</filename> and <filename>C:\Program
+ Files\MySQL\MySQL Server ¤t-series;\data</filename>,
+ respectively).
+ </para>
+
+ <para>
+ This situation may occur when MySQL is upgraded and
+ installed to a new location, but the configuration file is
+ not updated to reflect the new location. In addition, there
+ may be old and new configuration files that conflict. Be
+ sure to delete or rename any old configuration files when
+ upgrading MySQL.
+ </para>
+
+ <para>
+ If you have installed MySQL to a directory other than
+ <filename>C:\Program Files\MySQL\MySQL Server
+ ¤t-series;</filename>, you need to ensure that the
+ MySQL server is aware of this through the use of a
+ configuration (<filename>my.ini</filename>) file. The
+ <filename>my.ini</filename> file needs to be located in your
+ Windows directory, typically
+ <filename>C:\WINDOWS</filename>. You can determine its exact
+ location from the value of the <literal>WINDIR</literal>
+ environment variable by issuing the following command from
+ the command prompt:
+ </para>
+
+<programlisting>
+C:\> <userinput>echo %WINDIR%</userinput>
+</programlisting>
+
+ <para>
+ An option file can be created and modified with any text
+ editor, such as Notepad. For example, if MySQL is installed
+ in <filename>E:\mysql</filename> and the data directory is
+ <filename>D:\MySQLdata</filename>, you can create the option
+ file and set up a <literal>[mysqld]</literal> section to
+ specify values for the <literal>basedir</literal> and
+ <literal>datadir</literal> parameters:
+ </para>
+
+<programlisting>
+[mysqld]
+# set basedir to your installation path
+basedir=E:/mysql
+# set datadir to the location of your data directory
+datadir=D:/MySQLdata
+</programlisting>
+
+ <para>
+ Note that Windows pathnames are specified in option files
+ using (forward) slashes rather than backslashes. If you do
+ use backslashes, you must double them:
+ </para>
+
+<programlisting>
+[mysqld]
+# set basedir to your installation path
+basedir=C:\\Program Files\\MySQL\\MySQL Server ¤t-series;
+# set datadir to the location of your data directory
+datadir=D:\\MySQLdata
+</programlisting>
+
+ <formalpara role="mnmas">
+
+ <title>MySQL Enterprise</title>
+
+ <para>
+ For expert advice on the start-up options appropriate to
+ your circumstances, subscribe to the MySQL Enterprise
+ Monitor. For more information, see
+ <ulink url="&base-url-enterprise;advisors.html"/>.
+ </para>
+
+ </formalpara>
+
+ <para>
+ If you change the <literal>datadir</literal> value in your
+ MySQL configuration file, you must move the contents of the
+ existing MySQL data directory before restarting the MySQL
+ server.
+ </para>
+
+ <para>
+ See <xref linkend="windows-create-option-file"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you reinstall or upgrade MySQL without first stopping and
+ removing the existing MySQL service and install MySQL using
+ the MySQL Configuration Wizard, you may see this error:
+ </para>
+
+<programlisting>
+Error: Cannot create Windows service for MySql. Error: 0
+</programlisting>
+
+ <para>
+ This occurs when the Configuration Wizard tries to install
+ the service and finds an existing service with the same
+ name.
+ </para>
+
+ <para>
+ One solution to this problem is to choose a service name
+ other than <literal>mysql</literal> when using the
+ configuration wizard. This allows the new service to be
+ installed correctly, but leaves the outdated service in
+ place. Although this is harmless, it is best to remove old
+ services that are no longer in use.
+ </para>
+
+ <para>
+ To permanently remove the old <literal>mysql</literal>
+ service, execute the following command as a user with
+ administrative privileges, on the command-line:
+ </para>
+
+<programlisting>
+C:\> <userinput>sc delete mysql</userinput>
+[SC] DeleteService SUCCESS
+</programlisting>
+
+ <para>
+ If the <literal>sc</literal> utility is not available for
+ your version of Windows, download the
+ <literal>delsrv</literal> utility from
+ <ulink
url="http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/delsrv-o.asp"/>
+ and use the <literal>delsrv mysql</literal> syntax.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="windows-upgrading" role="cs">
+
+ <title>Upgrading MySQL on Windows</title>
+
+ <indexterm>
+ <primary>Windows</primary>
+ <secondary>upgrading</secondary>
+ </indexterm>
+
+ <para>
+ This section lists some of the steps you should take when
+ upgrading MySQL on Windows.
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Review <xref linkend="upgrade"/>, for additional information
+ on upgrading MySQL that is not specific to Windows.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You should always back up your current MySQL installation
+ before performing an upgrade. See <xref linkend="backup"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Download the latest Windows distribution of MySQL from
+ <ulink url="&base-url-downloads;"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Before upgrading MySQL, you must stop the server. If the
+ server is installed as a service, stop the service with the
+ following command from the command prompt:
+ </para>
+
+<programlisting>
+C:\> <userinput>NET STOP MySQL</userinput>
+</programlisting>
+
+ <para>
+ If you are not running the MySQL server as a service, use
+ the following command to stop it:
+ </para>
+
+<programlisting>
+C:\> <userinput>"C:\Program Files\MySQL\MySQL Server
¤t-series;\bin\mysqladmin" -u root shutdown</userinput>
+</programlisting>
+
+ <note>
+ <para>
+ If the MySQL <literal>root</literal> user account has a
+ password, you need to invoke <command>mysqladmin</command>
+ with the <option>-p</option> option and supply the
+ password when prompted.
+ </para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>
+ When upgrading to MySQL ¤t-series; from a version
+ previous to 4.1.5, or when upgrading from a version of MySQL
+ installed from a Zip archive to a version of MySQL installed
+ with the MySQL Installation Wizard, you must manually remove
+ the previous installation and MySQL service (if the server
+ is installed as a service).
+ </para>
+
+ <para>
+ To remove the MySQL service, use the following command:
+ </para>
+
+<programlisting>
+C:\> <userinput>C:\mysql\bin\mysqld --remove</userinput>
+</programlisting>
+
+ <para>
+ <emphasis role="bold">If you do not remove the existing
+ service, the MySQL Installation Wizard may fail to properly
+ install the new MySQL service.</emphasis>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you are using the MySQL Installation Wizard, start the
+ wizard as described in
+ <xref linkend="windows-install-wizard"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you are installing MySQL from a Zip archive, extract the
+ archive. You may either overwrite your existing MySQL
+ installation (usually located at
+ <filename>C:\mysql</filename>), or install it into a
+ different directory, such as <literal>C:\mysql5</literal>.
+ Overwriting the existing installation is recommended.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you were running MySQL as a Windows service and you had
+ to remove the service earlier in this procedure, reinstall
+ the service. (See <xref linkend="windows-start-service"/>.)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Restart the server. For example, use <command>NET START
+ MySQL</command> if you run MySQL as a service, or invoke
+ <command>mysqld</command> directly otherwise.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you encounter errors, see
+ <xref linkend="windows-troubleshooting"/>.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ </section>
+
+ <section id="windows-vs-unix" role="cses">
+
+ <title>MySQL on Windows Compared to MySQL on Unix</title>
+
+ <indexterm>
+ <primary>Windows</primary>
+ <secondary>versus Unix</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>operating systems</primary>
+ <secondary>Windows versus Unix</secondary>
+ </indexterm>
+
+ <para>
+ MySQL for Windows has proven itself to be very stable. The
+ Windows version of MySQL has the same features as the
+ corresponding Unix version, with the following exceptions:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Limited number of ports</emphasis>
+ </para>
+
+ <para>
+ Windows systems have about 4,000 ports available for client
+ connections, and after a connection on a port closes, it
+ takes two to four minutes before the port can be reused. In
+ situations where clients connect to and disconnect from the
+ server at a high rate, it is possible for all available
+ ports to be used up before closed ports become available
+ again. If this happens, the MySQL server appears to be
+ unresponsive even though it is running. Note that ports may
+ be used by other applications running on the machine as
+ well, in which case the number of ports available to MySQL
+ is lower.
+ </para>
+
+ <para>
+ For more information about this problem, see
+ <ulink
url="http://support.microsoft.com/default.aspx?scid=kb;en-us;196271"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Concurrent reads</emphasis>
+ </para>
+
+ <para>
+ MySQL depends on the <literal>pread()</literal> and
+ <literal>pwrite()</literal> system calls to be able to mix
+ <literal>INSERT</literal> and
<literal>SELECT</literal>.
+ Currently, we use mutexes to emulate
+ <literal>pread()</literal> and
<literal>pwrite()</literal>.
+ We intend to replace the file level interface with a virtual
+ interface in the future so that we can use the
+
<literal>readfile()</literal>/<literal>writefile()</literal>
+ interface to get more speed. The current implementation
+ limits the number of open files that MySQL ¤t-series;
+ can use to 2,048, which means that you cannot run as many
+ concurrent threads on Windows as on Unix.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Blocking read</emphasis>
+ </para>
+
+ <para>
+ MySQL uses a blocking read for each connection. That has the
+ following implications if named-pipe connections are
+ enabled:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ A connection is not disconnected automatically after
+ eight hours, as happens with the Unix version of MySQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If a connection hangs, it is not possible to break it
+ without killing MySQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>mysqladmin kill</command> does not work on a
+ sleeping connection.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>mysqladmin shutdown</command> cannot abort as
+ long as there are sleeping connections.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ We plan to fix this problem in the future.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold"><literal>ALTER
+ TABLE</literal></emphasis>
+ </para>
+
+ <para>
+ While you are executing an <literal>ALTER TABLE</literal>
+ statement, the table is locked from being used by other
+ threads. This has to do with the fact that on Windows, you
+ can't delete a file that is in use by another thread. In the
+ future, we may find some way to work around this problem.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold"><literal>DROP
+ TABLE</literal></emphasis>
+ </para>
+
+ <para>
+ <remark role="todo">
+ We have views now, so is this fixed?
+ </remark>
+
+ <literal>DROP TABLE</literal> on a table that is in use by a
+ <literal>MERGE</literal> table does not work on Windows
+ because the <literal>MERGE</literal> handler does the table
+ mapping hidden from the upper layer of MySQL. Because
+ Windows does not allow dropping files that are open, you
+ first must flush all <literal>MERGE</literal> tables (with
+ <literal>FLUSH TABLES</literal>) or drop the
+ <literal>MERGE</literal> table before dropping the table.
+
+ <remark>
+ We will fix this at the same time that we introduce views.
+ </remark>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold"><literal>DATA DIRECTORY</literal> and
+ <literal>INDEX DIRECTORY</literal></emphasis>
+ </para>
+
+ <para>
+ The <literal>DATA DIRECTORY</literal> and <literal>INDEX
+ DIRECTORY</literal> options for <literal>CREATE
+ TABLE</literal> are ignored on Windows, because Windows
+ doesn't support symbolic links. These options also are
+ ignored on systems that have a non-functional
+ <literal>realpath()</literal> call.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold"><literal>DROP
+ DATABASE</literal></emphasis>
+ </para>
+
+ <para>
+ You cannot drop a database that is in use by some thread.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Case-insensitive names</emphasis>
+ </para>
+
+ <para>
+ Filenames are not case sensitive on Windows, so MySQL
+ database and table names are also not case sensitive on
+ Windows. The only restriction is that database and table
+ names must be specified using the same case throughout a
+ given statement. See
+ <xref linkend="identifier-case-sensitivity"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">The
+ <quote><literal>\</literal></quote> pathname
separator
+ character</emphasis>
+ </para>
+
+ <para>
+ Pathname components in Windows are separated by the
+ <quote><literal>\</literal></quote> character, which
is also
+ the escape character in MySQL. If you are using
+ <literal>LOAD DATA INFILE</literal> or <literal>SELECT ...
+ INTO OUTFILE</literal>, use Unix-style filenames with
+ <quote><literal>/</literal></quote> characters:
+ </para>
+
+<programlisting>
+mysql> <userinput>LOAD DATA INFILE 'C:/tmp/skr.txt' INTO TABLE
skr;</userinput>
+mysql> <userinput>SELECT * INTO OUTFILE 'C:/tmp/skr.txt' FROM
skr;</userinput>
+</programlisting>
+
+ <para>
+ Alternatively, you must double the
+ <quote><literal>\</literal></quote> character:
+ </para>
+
+<programlisting>
+mysql> <userinput>LOAD DATA INFILE 'C:\\tmp\\skr.txt' INTO TABLE
skr;</userinput>
+mysql> <userinput>SELECT * INTO OUTFILE 'C:\\tmp\\skr.txt' FROM
skr;</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">Problems with pipes</emphasis>
+ </para>
+
+ <para>
+ Pipes do not work reliably from the Windows command-line
+ prompt. If the pipe includes the character
+ <literal>^Z</literal> / <literal>CHAR(24)</literal>,
Windows
+ thinks that it has encountered end-of-file and aborts the
+ program.
+ </para>
+
+ <para>
+ This is mainly a problem when you try to apply a binary log
+ as follows:
+ </para>
+
+<programlisting>
+C:\> <userinput>mysqlbinlog
<replaceable>binary_log_file</replaceable> | mysql
--user=root</userinput>
+</programlisting>
+
+ <para>
+ If you have a problem applying the log and suspect that it
+ is because of a <literal>^Z</literal> /
+ <literal>CHAR(24)</literal> character, you can use the
+ following workaround:
+ </para>
+
+<programlisting>
+C:\> <userinput>mysqlbinlog
<replaceable>binary_log_file</replaceable>
--result-file=/tmp/bin.sql</userinput>
+C:\> <userinput>mysql --user=root --execute "source
/tmp/bin.sql"</userinput>
+</programlisting>
+
+ <para>
+ The latter command also can be used to reliably read in any
+ SQL file that may contain binary data.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold"><literal>Access denied for
+ user</literal> error</emphasis>
+ </para>
+
+ <para>
+ If MySQL cannot resolve your hostname properly, you may get
+ the following error when you attempt to run a MySQL client
+ program to connect to a server running on the same machine:
+ </para>
+
+<programlisting>
+Access denied for user '<replaceable>some_user</replaceable>'@'unknown'
+to database 'mysql'
+</programlisting>
+
+ <para>
+ To fix this problem, you should create a file named
+ <filename>\windows\hosts</filename> containing the following
+ information:
+ </para>
+
+<programlisting>
+127.0.0.1 localhost
+</programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+ <remark>
+ MH - Does this to-do list even still have relevance? I would
+ think we would now Task internal developers rather than ask the
+ world for help.
+ </remark>
+
+ <para>
+ Here are some open issues for anyone who might want to help us
+ improve MySQL on Windows:
+ </para>
+
+ <indexterm>
+ <primary>Windows</primary>
+ <secondary>open issues</secondary>
+ </indexterm>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Add macros to use the faster thread-safe increment/decrement
+ methods provided by Windows.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ </section>
+
+ <section id="linux-rpm" role="cses">
+
+ <title>Installing MySQL from RPM Packages on Linux</title>
+
+ <indexterm>
+ <primary>RPM file</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>RPM Package Manager</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>Linux RPM packages</secondary>
+ </indexterm>
+
+ <para>
+ The recommended way to install MySQL on RPM-based Linux
+ distributions is by using the RPM packages. The RPMs provided by
+ MySQL AB to the community should work on all versions of Linux
+ that support RPM packages and use <literal>glibc</literal> 2.3.
+ MySQL AB also provides RPMs with binaries that are statically
+ linked to a patched version of <literal>glibc</literal> 2.2, but
+ only for the x86 (32-bit) architecture. To obtain RPM packages,
+ see <xref linkend="getting-mysql"/>.
+ </para>
+
+ <para>
+ For non-RPM Linux distributions, you can install MySQL using a
+ <filename>.tar.gz</filename> package. See
+ <xref linkend="installing-binary"/>.
+ </para>
+
+ <para>
+ MySQL AB does provide some platform-specific RPMs; the difference
+ between a platform-specific RPM and a generic RPM is that a
+ platform-specific RPM is built on the targeted platform and is
+ linked dynamically whereas a generic RPM is linked statically with
+ LinuxThreads.
+ </para>
+
+ <note>
+ <para>
+ RPM distributions of MySQL often are provided by other vendors.
+ Be aware that they may differ in features and capabilities from
+ those built by MySQL AB, and that the instructions in this
+ manual do not necessarily apply to installing them. The vendor's
+ instructions should be consulted instead.
+ </para>
+ </note>
+
+ <para>
+ If you have problems with an RPM file (for example, if you receive
+ the error <literal>Sorry, the host
+ '<replaceable>xxxx</replaceable>' could not be looked
+ up</literal>), see <xref linkend="binary-notes-linux"/>.
+ </para>
+
+ <para>
+ In most cases, you need to install only the
+ <literal>MySQL-server</literal> and
+ <literal>MySQL-client</literal> packages to get a functional MySQL
+ installation. The other packages are not required for a standard
+ installation.
+ </para>
+
+ <para>
+ For upgrades, if your installation was originally produced by
+ installing multiple RPM packages, it is best to upgrade all the
+ packages, not just some. For example, if you previously installed
+ the server and client RPMs, do not upgrade just the server RPM.
+ </para>
+
+ <remark role="todo">
+ Probably also dated. /JS
+ </remark>
+
+ <para>
+ If you get a dependency failure when trying to install MySQL
+ packages (for example, <literal>error: removing these packages
+ would break dependencies: libmysqlclient.so.10 is needed by
+ ...</literal>), you should also install the
+ <literal>MySQL-shared-compat</literal> package, which includes
+ both the shared libraries for backward compatibility
+ (<literal>libmysqlclient.so.12</literal> for MySQL 4.0 and
+ <literal>libmysqlclient.so.10</literal> for MySQL 3.23).
+ </para>
+
+ <remark role="todo">
+ Check currency of this info. I'd say that even Debian is shipping
+ 4.0 by now. /JS
+ </remark>
+
+ <para>
+ Some Linux distributions still ship with MySQL 3.23 and they
+ usually link applications dynamically to save disk space. If these
+ shared libraries are in a separate package (for example,
+ <literal>MySQL-shared</literal>), it is sufficient to simply leave
+ this package installed and just upgrade the MySQL server and
+ client packages (which are statically linked and do not depend on
+ the shared libraries). For distributions that include the shared
+ libraries in the same package as the MySQL server (for example,
+ Red Hat Linux), you could either install our 3.23
+ <literal>MySQL-shared</literal> RPM, or use the
+ <literal>MySQL-shared-compat</literal> package instead. (Do not
+ install both.)
+ </para>
+
+ <para>
+ The RPM packages shown in the following list are available. The
+ names shown here use a suffix of
+ <filename>.glibc23.i386.rpm</filename>, but particular packages
+ can have different suffixes, as described later. Packages that
+ have <literal>community</literal> in the names are Community
+ Server builds, available from MySQL 5.0.27 on.
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+
<literal>MySQL-server-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-server-community-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ The MySQL server. You need this unless you only want to
+ connect to a MySQL server running on another machine.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-client-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-client-community-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ The standard MySQL client programs. You probably always want
+ to install this package.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-bench-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ Tests and benchmarks. Requires Perl and the
+ <literal>DBI</literal> and
<literal>DBD::mysql</literal>
+ modules.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-devel-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-devel-community-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ The libraries and include files that are needed if you want to
+ compile other MySQL clients, such as the Perl modules.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-debuginfo-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-community-debuginfo-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ This package contains debugging information.
+ <literal>debuginfo</literal> RPMs are never needed to use
+ MySQL software; this is true both for the server and for
+ client programs. However, they contain additional information
+ that might be needed by a debugger to analyze a crash.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-shared-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-shared-community-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ This package contains the shared libraries
+ (<literal>libmysqlclient.so*</literal>) that certain languages
+ and applications need to dynamically load and use MySQL. It
+ contains single-threaded and thread-safe libraries. If you
+ install this package, do not install the
+ <literal>MySQL-shared-compat</literal> package.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-shared-compat-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ This package includes the shared libraries for MySQL 3.23,
+ 4.0, 4.1, and 5.0. It contains single-threaded and thread-safe
+ libraries. Install this package instead of
+ <literal>MySQL-shared</literal> if you have applications
+ installed that are dynamically linked against older versions
+ of MySQL but you want to upgrade to the current version
+ without breaking the library dependencies.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-clustermanagement-community<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-clusterstorage-community<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-clustertools-community<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-clusterextra-community<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ Packages that contain additional files for MySQL Cluster
+ installations. These are platform-specific RPMs, in contrast
+ to the platform-independent
+ <literal>ndb-<replaceable>xxx</replaceable></literal>
RPMs.
+ </para>
+
+ <note>
+ <para>
+ The <literal>MySQL-clustertools</literal> RPM requires a
+ working installation of perl and the <literal>DBI</literal>
+ and <literal>HTML::Template</literal> packages. See
+ <xref linkend="perl-support"/>, and
+ <xref linkend="mysql-cluster-utilities-ndb-size"/>, for more
+ information.
+ </para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-ndb-management-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-ndb-storage-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-ndb-tools-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>,
+
<literal>MySQL-ndb-extra-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ Packages that contain additional files for MySQL Cluster
+ installations. These are platform-independent RPMs, in
+ contrast to the platform-specific
+
<literal>cluster<replaceable>xxx</replaceable>-community</literal>
+ RPMs.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-test-community-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</literal>
+ </para>
+
+ <para>
+ This package includes the MySQL test suite.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>MySQL-<replaceable>VERSION</replaceable>.src.rpm</literal>
+ </para>
+
+ <para>
+ This contains the source code for all of the previous
+ packages. It can also be used to rebuild the RPMs on other
+ architectures (for example, Alpha or SPARC).
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ The suffix of RPM package names (following the
+ <replaceable>VERSION</replaceable> value) has the following
+ syntax:
+ </para>
+
+<programlisting>
+[.<replaceable>PLATFORM</replaceable>].<replaceable>CPU</replaceable>.rpm
+</programlisting>
+
+ <para>
+ The <replaceable>PLATFORM</replaceable> and
+ <replaceable>CPU</replaceable> values indicate the type of system
+ for which the package is built.
+ <replaceable>PLATFORM</replaceable>, if present, indicates the
+ platform, and <replaceable>CPU</replaceable> indicates the
+ processor type or family.
+ </para>
+
+ <para>
+ If the <replaceable>PLATFORM</replaceable> value is missing (for
+ example,
+
<filename>MySQL-server-<replaceable>VERSION</replaceable>.i386.rpm</filename>),
+ the package is statically linked against a version of
+ <literal>glibc</literal> 2.2 that has been patched to handle
+ larger numbers of threads with larger stack sizes than the stock
+ library.
+ </para>
+
+ <para>
+ If <replaceable>PLATFORM</replaceable> is present, the package is
+ dynamically linked against <literal>glibc</literal> 2.3 and the
+ <replaceable>PLATFORM</replaceable> value indicates whether the
+ package is platform independent or intended for a specific
+ platform:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="75*"/>
+ <tbody>
+ <row>
+ <entry><literal>glibc23</literal></entry>
+ <entry>Platform independent, should run on any Linux distribution that
supports
+ <literal>glibc</literal> 2.3</entry>
+ </row>
+ <row>
+ <entry><literal>rhel3</literal>,
<literal>rhel4</literal></entry>
+ <entry>Red Hat Enterprise Linux 3 or 4</entry>
+ </row>
+ <row>
+ <entry><literal>sles9</literal>,
<literal>sles10</literal></entry>
+ <entry>SuSE Linux Enterprise Server 9 or 10</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ The <replaceable>CPU</replaceable> value indicates the processor
+ type or family for which the package is built:
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="25*"/>
+ <colspec colwidth="75*"/>
+ <tbody>
+ <row>
+ <entry><literal>i386</literal></entry>
+ <entry>x86 processor, 386 and up</entry>
+ </row>
+ <row>
+ <entry><literal>i586</literal></entry>
+ <entry>x86 processor, Pentium and up</entry>
+ </row>
+ <row>
+ <entry><literal>x86_64</literal></entry>
+ <entry>64-bit x86 processor</entry>
+ </row>
+ <row>
+ <entry><literal>ia64</literal></entry>
+ <entry>Itanium (IA-64) processor</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ To see all files in an RPM package (for example, a
+ <literal>MySQL-server</literal> RPM), run a command like this:
+ </para>
+
+<programlisting>
+shell> <userinput>rpm -qpl
MySQL-server-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</userinput>
+</programlisting>
+
+ <para>
+ To perform a standard minimal installation, install the server and
+ client RPMs:
+ </para>
+
+<programlisting>
+shell> <userinput>rpm -i
MySQL-server-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</userinput>
+shell> <userinput>rpm -i
MySQL-client-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</userinput>
+</programlisting>
+
+ <para>
+ To install only the client programs, install just the client RPM:
+ </para>
+
+<programlisting>
+shell> <userinput>rpm -i
MySQL-client-<replaceable>VERSION</replaceable>.glibc23.i386.rpm</userinput>
+</programlisting>
+
+ <para>
+ RPM provides a feature to verify the integrity and authenticity of
+ packages before installing them. If you would like to learn more
+ about this feature, see
+ <xref linkend="verifying-package-integrity"/>.
+ </para>
+
+ <para>
+ The server RPM places data under the
+ <filename>/var/lib/mysql</filename> directory. The RPM also
+ creates a login account for a user named <literal>mysql</literal>
+ (if one does not exist) to use for running the MySQL server, and
+ creates the appropriate entries in
+ <filename>/etc/init.d/</filename> to start the server
+ automatically at boot time. (This means that if you have performed
+ a previous installation and have made changes to its startup
+ script, you may want to make a copy of the script so that you
+ don't lose it when you install a newer RPM.) See
+ <xref linkend="automatic-start"/>, for more information on how
+ MySQL can be started automatically on system startup.
+ </para>
+
+ <para>
+ If you want to install the MySQL RPM on older Linux distributions
+ that do not support initialization scripts in
+ <filename>/etc/init.d</filename> (directly or via a symlink), you
+ should create a symbolic link that points to the location where
+ your initialization scripts actually are installed. For example,
+ if that location is <filename>/etc/rc.d/init.d</filename>, use
+ these commands before installing the RPM to create
+ <filename>/etc/init.d</filename> as a symbolic link that points
+ there:
+ </para>
+
+<programlisting>
+shell> <userinput>cd /etc</userinput>
+shell> <userinput>ln -s rc.d/init.d .</userinput>
+</programlisting>
+
+ <para>
+ However, all current major Linux distributions should support the
+ new directory layout that uses <filename>/etc/init.d</filename>,
+ because it is required for LSB (Linux Standard Base) compliance.
+ </para>
+
+ <para>
+ If the RPM files that you install include
+ <literal>MySQL-server</literal>, the
<command>mysqld</command>
+ server should be up and running after installation. You should be
+ able to start using MySQL.
+ </para>
+
+ <para>
+ If something goes wrong, you can find more information in the
+ binary installation section. See
+ <xref linkend="installing-binary"/>.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables initially
+ have no passwords. After starting the server, you should set up
+ passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="mac-os-x-installation" role="cses">
+
+ <title>Installing MySQL on Mac OS X</title>
+
+ <indexterm>
+ <primary>Mac OS X</primary>
+ <secondary>installation</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>Mac OS X PKG packages</secondary>
+ </indexterm>
+
+<!-- Should "PKG" be a <filename/> element? /JS -->
+
+ <para>
+ You can install MySQL on Mac OS X 10.3.x (<quote>Panther</quote>)
+ or newer using a Mac OS X binary package in PKG format instead of
+ the binary tarball distribution. Please note that older versions
+ of Mac OS X (for example, 10.1.x or 10.2.x) are
+ <emphasis role="bold">not</emphasis> supported by this package.
+ </para>
+
+ <para>
+ The package is located inside a disk image
+ (<literal>.dmg</literal>) file that you first need to mount by
+ double-clicking its icon in the Finder. It should then mount the
+ image and display its contents.
+ </para>
+
+ <para>
+ To obtain MySQL, see <xref linkend="getting-mysql"/>.
+ </para>
+
+ <note>
+ <para>
+ Before proceeding with the installation, be sure to shut down
+ all running MySQL server instances by either using the MySQL
+ Manager Application (on Mac OS X Server) or via
+ <command>mysqladmin shutdown</command> on the command line.
+ </para>
+ </note>
+
+ <para>
+ To actually install the MySQL PKG file, double-click on the
+ package icon. This launches the Mac OS X Package Installer, which
+ guides you through the installation of MySQL.
+ </para>
+
+ <para>
+ Due to a bug in the Mac OS X package installer, you may see this
+ error message in the destination disk selection dialog:
+ </para>
+
+<programlisting>
+You cannot install this software on this disk. (null)
+</programlisting>
+
+ <para>
+ If this error occurs, simply click the <literal>Go Back</literal>
+ button once to return to the previous screen. Then click
+ <literal>Continue</literal> to advance to the destination disk
+ selection again, and you should be able to choose the destination
+ disk correctly. We have reported this bug to Apple and it is
+ investigating this problem.
+ </para>
+
+ <para>
+ The Mac OS X PKG of MySQL installs itself into
+
<filename>/usr/local/mysql-<replaceable>VERSION</replaceable></filename>
+ and also installs a symbolic link,
+ <filename>/usr/local/mysql</filename>, that points to the new
+ location. If a directory named
+ <filename>/usr/local/mysql</filename> exists, it is renamed to
+ <filename>/usr/local/mysql.bak</filename> first. Additionally, the
+ installer creates the grant tables in the <literal>mysql</literal>
+ database by executing <command>mysql_install_db</command>.
+ </para>
+
+ <para>
+ The installation layout is similar to that of a
+ <command>tar</command> file binary distribution; all MySQL
+ binaries are located in the directory
+ <filename>/usr/local/mysql/bin</filename>. The MySQL socket file
+ is created as <filename>/tmp/mysql.sock</filename> by default. See
+ <xref linkend="installation-layouts"/>.
+ </para>
+
+ <para>
+ MySQL installation requires a Mac OS X user account named
+ <literal>mysql</literal>. A user account with this name should
+ exist by default on Mac OS X 10.2 and up.
+ </para>
+
+ <remark role="note">
+ Even though these MySQL versions are dated, I'm leaving this table
+ as-is. /JS
+ </remark>
+
+ <para>
+ If you are running Mac OS X Server, a version of MySQL should
+ already be installed. The following table shows the versions of
+ MySQL that ship with Mac OS X Server versions.
+ </para>
+
+ <informaltable>
+ <tgroup cols="2">
+ <colspec colwidth="30*"/>
+ <colspec colwidth="30*"/>
+ <tbody>
+ <row>
+ <entry><emphasis role="bold">Mac OS X Server
Version</emphasis></entry>
+ <entry><emphasis role="bold">MySQL
Version</emphasis></entry>
+ </row>
+ <row>
+ <entry>10.2-10.2.2</entry>
+ <entry>3.23.51</entry>
+ </row>
+ <row>
+ <entry>10.2.3-10.2.6</entry>
+ <entry>3.23.53</entry>
+ </row>
+ <row>
+ <entry>10.3</entry>
+ <entry>4.0.14</entry>
+ </row>
+ <row>
+ <entry>10.3.2</entry>
+ <entry>4.0.16</entry>
+ </row>
+ <row>
+ <entry>10.4.0</entry>
+ <entry>4.1.10a</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>
+ This manual section covers the installation of the official MySQL
+ Mac OS X PKG only. Make sure to read Apple's help information
+ about installing MySQL: Run the <quote>Help View</quote>
+ application, select <quote>Mac OS X Server</quote> help, do a
+ search for <quote>MySQL,</quote> and read the item entitled
+ <quote>Installing MySQL.</quote>
+ </para>
+
+ <remark>
+ This instance of safe_mysqld should be left unchanged
+ </remark>
+
+ <para>
+ For preinstalled versions of MySQL on Mac OS X Server, note
+ especially that you should start <command>mysqld</command> with
+ <command>safe_mysqld</command> instead of
+ <command>mysqld_safe</command> if MySQL is older than version 4.0.
+ </para>
+
+ <para>
+ If you previously used Marc Liyanage's MySQL packages for Mac OS X
+ from <ulink url="http://www.entropy.ch"/>, you can simply follow
+ the update instructions for packages using the binary installation
+ layout as given on his pages.
+ </para>
+
+ <para>
+ If you are upgrading from Marc's 3.23.x versions or from the Mac
+ OS X Server version of MySQL to the official MySQL PKG, you also
+ need to convert the existing MySQL privilege tables to the current
+ format, because some new security privileges have been added. See
+ <xref linkend="mysql-upgrade"/>.
+ </para>
+
+ <para>
+ If you want MySQL to start automatically during system startup,
+ you also need to install the MySQL Startup Item. It is part of the
+ Mac OS X installation disk images as a separate installation
+ package. Simply double-click the
+ <guiicon>MySQLStartupItem.pkg</guiicon> icon and follow the
+ instructions to install it. The Startup Item need be installed
+ only once. There is no need to install it each time you upgrade
+ the MySQL package later.
+ </para>
+
+ <para>
+ The Startup Item for MySQL is installed into
+ <filename>/Library/StartupItems/MySQLCOM</filename>. (Before MySQL
+ 4.1.2, the location was
+ <filename>/Library/StartupItems/MySQL</filename>, but that
+ collided with the MySQL Startup Item installed by Mac OS X
+ Server.) Startup Item installation adds a variable
+ <literal>MYSQLCOM=-YES-</literal> to the system configuration file
+ <filename>/etc/hostconfig</filename>. If you want to disable the
+ automatic startup of MySQL, simply change this variable to
+ <literal>MYSQLCOM=-NO-</literal>.
+ </para>
+
+ <para>
+ On Mac OS X Server, the default MySQL installation uses the
+ variable <literal>MYSQL</literal> in the
+ <filename>/etc/hostconfig</filename> file. The MySQL AB Startup
+ Item installer disables this variable by setting it to
+ <literal>MYSQL=-NO-</literal>. This avoids boot time conflicts
+ with the <literal>MYSQLCOM</literal> variable used by the MySQL AB
+ Startup Item. However, it does not shut down a running MySQL
+ server. You should do that yourself.
+ </para>
+
+ <para>
+ After the installation, you can start up MySQL by running the
+ following commands in a terminal window. You must have
+ administrator privileges to perform this task.
+ </para>
+
+ <para>
+ If you have installed the Startup Item, use this command:
+ </para>
+
+<programlisting>
+shell> <userinput>sudo /Library/StartupItems/MySQLCOM/MySQLCOM
start</userinput>
+<replaceable>(Enter your password, if necessary)</replaceable>
+<replaceable>(Press Control-D or enter "exit" to exit the
shell)</replaceable>
+</programlisting>
+
+ <para>
+ If you don't use the Startup Item, enter the following command
+ sequence:
+ </para>
+
+<programlisting>
+shell> <userinput>cd /usr/local/mysql</userinput>
+shell> <userinput>sudo ./bin/mysqld_safe</userinput>
+<replaceable>(Enter your password, if necessary)</replaceable>
+<replaceable>(Press Control-Z)</replaceable>
+shell> <userinput>bg</userinput>
+<replaceable>(Press Control-D or enter "exit" to exit the
shell)</replaceable>
+</programlisting>
+
+ <para>
+ You should be able to connect to the MySQL server, for example, by
+ running <filename>/usr/local/mysql/bin/mysql</filename>.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables initially
+ have no passwords. After starting the server, you should set up
+ passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ <para>
+ You might want to add aliases to your shell's resource file to
+ make it easier to access commonly used programs such as
+ <command>mysql</command> and <command>mysqladmin</command>
from
+ the command line. The syntax for <command>bash</command> is:
+ </para>
+
+<programlisting>
+alias mysql=/usr/local/mysql/bin/mysql
+alias mysqladmin=/usr/local/mysql/bin/mysqladmin
+</programlisting>
+
+ <para>
+ For <command>tcsh</command>, use:
+ </para>
+
+<programlisting>
+alias mysql /usr/local/mysql/bin/mysql
+alias mysqladmin /usr/local/mysql/bin/mysqladmin
+</programlisting>
+
+ <para>
+ Even better, add <literal>/usr/local/mysql/bin</literal> to your
+ <literal>PATH</literal> environment variable. You can do this by
+ modifying the appropriate startup file for your shell. For more
+ information, see <xref linkend="invoking-programs"/>.
+ </para>
+
+ <para>
+ If you are upgrading an existing installation, note that
+ installing a new MySQL PKG does not remove the directory of an
+ older installation. Unfortunately, the Mac OS X Installer does not
+ yet offer the functionality required to properly upgrade
+ previously installed packages.
+ </para>
+
+ <para>
+ To use your existing databases with the new installation, you'll
+ need to copy the contents of the old data directory to the new
+ data directory. Make sure that neither the old server nor the new
+ one is running when you do this. After you have copied over the
+ MySQL database files from the previous installation and have
+ successfully started the new server, you should consider removing
+ the old installation files to save disk space. Additionally, you
+ should also remove older versions of the Package Receipt
+ directories located in
+
<filename>/Library/Receipts/mysql-<replaceable>VERSION</replaceable>.pkg</filename>.
+ </para>
+
+ </section>
+
+ <section id="solaris-installation" role="cses">
+
+ <title>Installing MySQL on Solaris</title>
+
+ <indexterm>
+ <primary>Solaris</primary>
+ <secondary>installation</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>tar</primary>
+ <secondary>problems on Solaris</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>Solaris PKG packages</secondary>
+ </indexterm>
+
+ <para>
+ If you install MySQL using a binary tarball distribution on
+ Solaris, you may run into trouble even before you get the MySQL
+ distribution unpacked, as the Solaris <command>tar</command>
+ cannot handle long filenames. This means that you may see errors
+ when you try to unpack MySQL.
+ </para>
+
+ <para>
+ If this occurs, you must use GNU <command>tar</command>
+ (<command>gtar</command>) to unpack the distribution. You can find
+ a precompiled copy for Solaris at
+ <ulink url="&base-url-downloads;os-solaris.html"/>.
+ </para>
+
+ <para>
+ You can install MySQL on Solaris using a binary package in PKG
+ format instead of the binary tarball distribution. Before
+ installing using the binary PKG format, you should create the
+ <literal>mysql</literal> user and group, for example:
+ </para>
+
+<programlisting>
+groupadd mysql
+useradd -g mysql mysql
+</programlisting>
+
+ <para>
+ Some basic PKG-handling commands follow:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ To add a package:
+ </para>
+
+<programlisting>
+pkgadd -d <replaceable>package_name</replaceable>.pkg
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ To remove a package:
+ </para>
+
+<programlisting>
+pkgrm <replaceable>package_name</replaceable>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ To get a full list of installed packages:
+ </para>
+
+<programlisting>
+pkginfo
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ To get detailed information for a package:
+ </para>
+
+<programlisting>
+pkginfo -l <replaceable>package_name</replaceable>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ To list the files belonging to a package:
+ </para>
+
+<programlisting>
+pkgchk -v <replaceable>package_name</replaceable>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ To get packaging information for an arbitrary file:
+ </para>
+
+<programlisting>
+pkgchk -l -p <replaceable>file_name</replaceable>
+</programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ For additional information about installing MySQL on Solaris, see
+ <xref linkend="solaris"/>.
+ </para>
+
+ </section>
+
+ <section id="installation-i5os">
+
+ <title>Installing MySQL on i5/OS</title>
+
+ <indexterm>
+ <primary>IBM i5/OS</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>i5/OS</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>AS/400</primary>
+ </indexterm>
+
+ <para>
+ The i5/OS POWER MySQL package was created in cooperation with IBM.
+ MySQL works within the Portable Application Solution Environment
+ (PASE) on the System i series of hardware and will also provide
+ database services for the Zend Core for i5/OS.
+ </para>
+
+ <para>
+ MySQL for i5/OS is provided as a save file
+ (<literal>.savf</literal>) package that can be downloaded and
+ installed directly without any additional installation steps
+ required.
+ </para>
+
+ <para>
+ MySQL is only supported on i5/OS V5R4 or later releases. The i5/OS
+ PASE must be installed for MySQL to operate. You must be able to
+ login as a user in <literal>*SECOFR</literal> class.
+ </para>
+
+ <para>
+ You should the installation notes and tips for i5/OS before
+ starting installation. See
+ <link linkend="installation-i5os-notes">i5/OS Installation
+ Notes</link>.
+ </para>
+
+ <note>
+ <para>
+ The installation package will use an existing configuration if
+ you have previously installed MySQL (which is identified by
+ looking for the file <filename>/etc/my.cnf</filename>). The
+ values for the data directory (<literal>DATADIR</literal>) and
+ owner of the MySQL files (<literal>USRPRF</literal>) specified
+ during the installation will be ignored, and the values
+ determined from the <filename>/etc/my.cnf</filename> will be
+ used instead.
+ </para>
+
+ <para>
+ If you want to change these parameters during a new install, you
+ should temporarily rename <filename>/etc/my.cnf</filename>,
+ install MySQL using the new parameters you want to use, and then
+ merge your previous <filename>/etc/my.cnf</filename>
+ configuration settings with the new
+ <filename>/etc/my.cnf</filename> file that is created during
+ installation.
+ </para>
+ </note>
+
+ <para>
+ To install MySQL on i5/OS, follow these steps:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Create a user profile <literal>MYSQL</literal>. The
+ <literal>MYSQL</literal> user profile will own all the MySQL
+ files and databases and be the active user used when the MySQL
+ server is running. The profile should be disabled so that you
+ cannot log in as the MySQL user. To create a user profile, use
+ <command>CRTUSRPRF</command>:
+ </para>
+
+<programlisting>CRTUSRPRF USRPRF(MYSQL) STATUS(*DISABLED) TEXT('MySQL user
id')</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ On the System i machine, create a save file that will be used
+ to receive the downloaded installation save file. The file
+ should be located within the General Purpose Library
+ (<filename>QGPL</filename>):
+ </para>
+
+<programlisting>CRTSAVF FILE(QGPL/MYSQLINST)</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Download the MySQL installation save file in 32-bit
+
(<filename>mysql-<replaceable>5.0.42</replaceable>-i5os-power-32bit.savf</filename>)
+ or 64-bit
+
(<filename>mysql-<replaceable>5.0.42</replaceable>-i5os-power-64bit.savf</filename>)
+ from <ulink url="http://dev.mysql.com/downloads">MySQL
+ Downloads</ulink>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You need to FTP the downloaded <literal>.savf</literal> file
+ directly into the <literal>QGPL/MYSQLINST</literal> file on
+ the System i server. You can do this through FTP using the
+ following steps after logging in to the System i machine:
+ </para>
+
+<programlisting>ftp> bin
+ftp> cd qgpl
+ftp> put mysql-<replaceable>5.0.42</replaceable>-i5os-power.savf
mysqlinst</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Log into the System i server using a user in the
+ <literal>*SECOFR</literal> class, such as the
+ <literal>QSECOFR</literal> user ID.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You need to restore the installation library stored in the
+ <filename>.savf</filename> save file:
+ </para>
+
+<programlisting>RSTLIB MYSQLINST DEV(*SAVF)
SAVF(QGPL/MYSQLINST)</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ You need to execute the installation command,
+ <filename>MYSQLINST/INSMYSQL</filename>. You can specify three
+ parameter settings during installation:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+
<literal>DIR(<replaceable>'/opt/mysql'</replaceable>)</literal>
+ sets the installation location for the MySQL files. The
+ directory will be created if it does not already exist.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>DATADIR(<replaceable>'/QOpenSys/mysal/data'</replaceable>)</literal>
+ sets the location of the directory that will be used to
+ store the database files and binary logs. The default
+ setting is <filename>/QOpenSys/mysql/data</filename>. Note
+ that if the installer detects an existing installation
+ (due to the existence of
+ <filename>/etc/my.cnf</filename>), then this parameter
+ will be ignored.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+
<literal>USRPRF(<replaceable>MYSQL</replaceable>)</literal>
+ sets the user profile that will own the files that are
+ installed. The profile will be created if it does not
+ already exist.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ MySQL can be installed anywhere, for this example we will
+ assume MySQL has been installed into
+ <filename>/opt/mysql</filename>. The
<literal>MYSQL</literal>
+ user profile that was created earlier in this sequence should
+ be used for the profile:
+ </para>
+
+<programlisting>MYSQLINST/INSMYSQL DIR('/opt/mysql') DATADIR('/opt/mysqldata')
USRPRF(MYSQL)</programlisting>
+
+ <para>
+ If you are updating an installation over an existing MySQL
+ installation, you should use the same parameter values that
+ were used when MySQL was originally installed.
+ </para>
+
+ <para>
+ The installation copies all the necessary files into a
+ directory matching the package version (for example
+ <filename>mysql-5.0.42-i5os-power-32bit</filename>), sets the
+ ownership on those files, sets up the MySQL environment and
+ creates the MySQL configuration file (in
+ <filename>/etc/my.cnf</filename>) completing all the steps in
+ a typical binary installation process automatically. If this
+ is a new installation of MySQL, or if the installer detects
+ that this is a new version (because the
+ <filename>/etc/my.cnf</filename> file does not exist), then
+ the initial core MySQL databases will also be created during
+ installation.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Once the installation has completed, you can delete the
+ installation file:
+ </para>
+
+<programlisting>DLTLIB LIB(MYSQLINST)</programlisting>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ To start MySQL:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Log into the System i server using a user within the
+ <literal>*SECOFR</literal> class, such as the
+ <literal>QSECOFR</literal> user ID.
+ </para>
+
+ <note>
+ <para>
+ You should start <command>mysqld_safe</command> using a user
+ that in the PASE environment has the id=0 (the equivalent of
+ the standard Unix <literal>root</literal> user). If you do
+ not use a user with this ID then the system will be unable
+ to change the user when executing <command>mysqld</command>
+ as set using <literal>--user</literal> option. If this
+ happens, <command>mysqld</command> may be unable to read the
+ files located within the MySQL data directory and the
+ execution will fail.
+ </para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>
+ Enter the PASE environment using <literal>call
+ qp2term</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start the MySQL server by changing to the installation
+ directory and running <command>mysqld_safe</command>,
+ specifying the user name used to install the server. The
+ installer conveniently installs a symbolic link to the
+ installation directory
+ (<filename>mysql-5.0.42-i5os-power-32bit</filename>) as
+ <filename>/opt/mysql/mysql</filename>:
+ </para>
+
+<programlisting>> cd /opt/mysql/mysql
+> bin/mysqld_safe --user=mysql &</programlisting>
+
+ <para>
+ You should see a message similar to the following:
+ </para>
+
+<programlisting>Starting mysqld daemon with databases »
+ from /opt/mysql/mysql-enterprise-5.0.42-i5os-power-32bit/data</programlisting>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ If you are having problems starting MySQL server, see
+ <xref linkend="starting-server"/>.
+ </para>
+
+ <para>
+ To stop MySQL:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Log into the System i server using the
+ <literal>*SECOFR</literal> class, such as the
+ <literal>QSECOFR</literal> user ID.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Enter the PASE environment using <literal>call
+ qp2term</literal>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Stop the MySQL server by changing into the installation
+ directory and running <command>mysqladmin</command>,
+ specifying the user name used to install the server:
+ </para>
+
+<programlisting>> cd /opt/mysql/mysql
+> bin/mysqladmin -u root shutdown</programlisting>
+
+ <para>
+ If the session that you started and stopped MySQL are the
+ same, you may get the log output from
+ <literal>mysqld</literal>:
+ </para>
+
+<programlisting> STOPPING server from pid file »
+ /opt/mysql/mysql-enterprise-5.0.42-i5os-power-32bit/data/I5DBX.RCHLAND.IBM.COM.pid
+ 070718 10:34:20 mysqld ended</programlisting>
+
+ <para>
+ If the sessions used to start and stop MySQL are different,
+ you will not receive any confirmation of the shutdown.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ <para id="installation-i5os-notes">
+ <emphasis>Note and tips</emphasis>
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ A problem has been identified with the installation process on
+ DBCS systems. If you are having problems install MySQL on a
+ DBCS system, you need to change your job's coded character set
+ identifier (<literal>CSSID</literal>) to 37
+ (<literal>EBCDIC</literal>) before executing the install
+ command, <literal>INSMYSQL</literal>. To do this, determine
+ your existing <literal>CSSID</literal> (using
+ <literal>DSPJOB</literal> and selecting option 2), execute
+ <literal>CHGJOB CSSID(37)</literal>, run
+ <literal>INSMYSQL</literal> to install MySQL and then execute
+ <literal>CHGJOB</literal> again with your original
+ <literal>CSSID.</literal>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you want to use the Perl scripts that are included with
+ MySQL, you need to download the iSeries Tools for Developers
+ (5799-PTL). See
+ <ulink url="http://www-03.ibm.com/servers/enable/site/porting/tools/"/>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ </section>
+
+ <section id="netware-installation" role="cs">
+
+ <title>Installing MySQL on NetWare</title>
+
+ <indexterm>
+ <primary>Novell NetWare</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>NetWare</primary>
+ </indexterm>
+
+ <para>
+ Porting MySQL to NetWare was an effort spearheaded by Novell.
+ Novell customers should be pleased to note that NetWare 6.5 ships
+ with bundled MySQL binaries, complete with an automatic commercial
+ use license for all servers running that version of NetWare.
+ </para>
+
+ <para>
+ MySQL for NetWare is compiled using a combination of Metrowerks
+ CodeWarrior for NetWare and special cross-compilation versions of
+ the GNU autotools.
+ </para>
+
+ <para>
+ The latest binary packages for NetWare can be obtained at
+ <ulink url="&base-url-downloads;"/>. See
+ <xref linkend="getting-mysql"/>.
+ </para>
+
+ <para>
+ To host MySQL, the NetWare server must meet these requirements:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ The latest Support Pack of
+ <ulink
url="http://support.novell.com/filefinder/18197/index.html">NetWare
+ 6.5</ulink> must be installed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The system must meet Novell's minimum requirements to run the
+ respective version of NetWare.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ MySQL data and the program binaries must be installed on an
+ NSS volume; traditional volumes are not supported.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ To install MySQL for NetWare, use the following procedure:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ If you are upgrading from a prior installation, stop the MySQL
+ server. This is done from the server console, using the
+ following command:
+ </para>
+
+<programlisting>
+SERVER: mysqladmin -u root shutdown
+</programlisting>
+
+ <note>
+ <para>
+ If the MySQL <literal>root</literal> user account has a
+ password, you need to invoke <command>mysqladmin</command>
+ with the <option>-p</option> option and supply the password
+ when prompted.
+ </para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>
+ Log on to the target server from a client machine with access
+ to the location where you are installing MySQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Extract the binary package Zip file onto the server. Be sure
+ to allow the paths in the Zip file to be used. It is safe to
+ simply extract the file to <filename>SYS:\</filename>.
+ </para>
+
+ <para>
+ If you are upgrading from a prior installation, you may need
+ to copy the data directory (for example,
+ <filename>SYS:MYSQL\DATA</filename>), as well as
+ <filename>my.cnf</filename>, if you have customized it. You
+ can then delete the old copy of MySQL.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ You might want to rename the directory to something more
+ consistent and easy to use. The examples in this manual use
+ <filename>SYS:MYSQL</filename> to refer to the installation
+ directory.
+ </para>
+
+ <para>
+ Note that MySQL installation on NetWare does not detect if a
+ version of MySQL is already installed outside the NetWare
+ release. Therefore, if you have installed the latest MySQL
+ version from the Web (for example, MySQL 4.1 or later) in
+ <filename>SYS:\MYSQL</filename>, you must rename the folder
+ before upgrading the NetWare server; otherwise, files in
+ <filename>SYS:\MySQL</filename> are overwritten by the MySQL
+ version present in NetWare Support Pack.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ At the server console, add a search path for the directory
+ containing the MySQL NLMs. For example:
+ </para>
+
+<programlisting>
+SERVER: SEARCH ADD SYS:MYSQL\BIN
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Initialize the data directory and the grant tables, if
+ necessary, by executing <command>mysql_install_db</command> at
+ the server console.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Start the MySQL server using <command>mysqld_safe</command> at
+ the server console.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ To finish the installation, you should also add the following
+ commands to <filename>autoexec.ncf</filename>. For example, if
+ your MySQL installation is in <filename>SYS:MYSQL</filename>
+ and you want MySQL to start automatically, you could add these
+ lines:
+ </para>
+
+<programlisting>
+#Starts the MySQL ¤t-series;.x database server
+SEARCH ADD SYS:MYSQL\BIN
+MYSQLD_SAFE
+</programlisting>
+
+ <para>
+ If you are running MySQL on NetWare 6.0, we strongly suggest
+ that you use the <option>--skip-external-locking</option>
+ option on the command line:
+ </para>
+
+<programlisting>
+#Starts the MySQL ¤t-series;.x database server
+SEARCH ADD SYS:MYSQL\BIN
+MYSQLD_SAFE --skip-external-locking
+</programlisting>
+
+ <para>
+ It is also necessary to use <literal>CHECK TABLE</literal> and
+ <literal>REPAIR TABLE</literal> instead of
+ <command>myisamchk</command>, because
+ <command>myisamchk</command> makes use of external locking.
+ External locking is known to have problems on NetWare 6.0; the
+ problem has been eliminated in NetWare 6.5. Note that the use
+ of MySQL on Netware 6.0 is not officially supported.
+ </para>
+
+ <para>
+ <command>mysqld_safe</command> on NetWare provides a screen
+ presence. When you unload (shut down) the
+ <command>mysqld_safe</command> NLM, the screen does not go
+ away by default. Instead, it prompts for user input:
+ </para>
+
+<programlisting>
+*<NLM has terminated; Press any key to close the screen>*
+</programlisting>
+
+ <para>
+ If you want NetWare to close the screen automatically instead,
+ use the <option>--autoclose</option> option to
+ <command>mysqld_safe</command>. For example:
+ </para>
+
+<programlisting>
+#Starts the MySQL ¤t-series;.x database server
+SEARCH ADD SYS:MYSQL\BIN
+MYSQLD_SAFE --autoclose
+</programlisting>
+
+ <para>
+ The behavior of <command>mysqld_safe</command> on NetWare is
+ described further in <xref linkend="mysqld-safe"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <remark role="todo">
+ Check this periodically and update when these packages are no
+ longer beta level. /JS - 2005-07-16
+ </remark>
+
+ <para>
+ When installing MySQL, either for the first time or upgrading
+ from a previous version, download and install the latest and
+ appropriate Perl module and PHP extensions for NetWare:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ Perl:
+ <ulink
url="http://forge.novell.com/modules/xfcontent/downloads.php/perl/Modules/"/>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ PHP:
+ <ulink
url="http://forge.novell.com/modules/xfcontent/downloads.php/php/Modules/"/>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ If there was an existing installation of MySQL on the NetWare
+ server, be sure to check for existing MySQL startup commands in
+ <filename>autoexec.ncf</filename>, and edit or delete them as
+ necessary.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables initially
+ have no passwords. After starting the server, you should set up
+ passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ <remark role="todo">
+ Rename this node. "Installing binary" should be used for the
+ general binary installation section only.
+ </remark>
+
+ </section>
+
+ <section id="installing-binary" role="cs">
+
+ <title>Installing MySQL from <filename>tar.gz</filename> Packages
on Other
+ Unix-Like Systems</title>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>binary distribution</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>binary distributions</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+
+ <para>
+ This section covers the installation of MySQL binary distributions
+ that are provided for various platforms in the form of compressed
+ <command>tar</command> files (files with a
+ <filename>.tar.gz</filename> extension). See
+ <xref linkend="mysql-binaries"/>, for a detailed list.
+ </para>
+
+ <para>
+ To obtain MySQL, see <xref linkend="getting-mysql"/>.
+ </para>
+
+ <para>
+ MySQL <command>tar</command> file binary distributions have names
+ of the form
+
<filename>mysql-<replaceable>VERSION</replaceable>-<replaceable>OS</replaceable>.tar.gz</filename>,
+ where <literal><replaceable>VERSION</replaceable></literal>
is a
+ number (for example, <literal>¤t-version;</literal>), and
+ <replaceable>OS</replaceable> indicates the type of operating
+ system for which the distribution is intended (for example,
+ <literal>pc-linux-i686</literal>).
+ </para>
+
+ <para>
+ In addition to these generic packages, we also offer binaries in
+ platform-specific package formats for selected platforms. See
+ <xref linkend="quick-standard-installation"/>, for more
+ information on how to install these.
+ </para>
+
+ <para>
+ You need the following tools to install a MySQL
+ <command>tar</command> file binary distribution:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ GNU <literal>gunzip</literal> to uncompress the distribution.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A reasonable <command>tar</command> to unpack the
+ distribution. GNU <command>tar</command> is known to work.
+ Some operating systems come with a preinstalled version of
+ <command>tar</command> that is known to have problems. For
+ example, Mac OS X <command>tar</command> and Sun
+ <command>tar</command> are known to have problems with long
+ filenames. On Mac OS X, you can use the preinstalled
+ <command>gnutar</command> program. On other systems with a
+ deficient <command>tar</command>, you should install GNU
+ <command>tar</command> first.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ If you run into problems and need to file a bug report, please use
+ the instructions in <xref linkend="bug-reports"/>.
+ </para>
+
+ <indexterm>
+ <primary>commands</primary>
+ <secondary>for binary distribution</secondary>
+ </indexterm>
+
+ <para>
+ The basic commands that you must execute to install and use a
+ MySQL binary distribution are:
+ </para>
+
+<programlisting>
+shell> <userinput>groupadd mysql</userinput>
+shell> <userinput>useradd -g mysql mysql</userinput>
+shell> <userinput>cd /usr/local</userinput>
+shell> <userinput>gunzip <
<replaceable>/path/to/mysql-VERSION-OS</replaceable>.tar.gz | tar xvf
-</userinput>
+shell> <userinput>ln -s
<replaceable>full-path-to-mysql-VERSION-OS</replaceable>
mysql</userinput>
+shell> <userinput>cd mysql</userinput>
+shell> <userinput>chown -R mysql .</userinput>
+shell> <userinput>chgrp -R mysql .</userinput>
+shell> <userinput>scripts/mysql_install_db --user=mysql</userinput>
+shell> <userinput>chown -R root .</userinput>
+shell> <userinput>chown -R mysql data</userinput>
+shell> <userinput>bin/mysqld_safe --user=mysql &</userinput>
+</programlisting>
+
+ <note>
+ <para>
+ This procedure does not set up any passwords for MySQL accounts.
+ After following the procedure, proceed to
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ <para>
+ A more detailed version of the preceding description for
+ installing a binary distribution follows:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Add a login user and group for <command>mysqld</command> to
+ run as:
+ </para>
+
+<programlisting>
+shell> <userinput>groupadd mysql</userinput>
+shell> <userinput>useradd -g mysql mysql</userinput>
+</programlisting>
+
+ <para>
+ These commands add the <literal>mysql</literal> group and the
+ <literal>mysql</literal> user. The syntax for
+ <command>useradd</command> and
<command>groupadd</command> may
+ differ slightly on different versions of Unix, or they may
+ have different names such as <command>adduser</command> and
+ <command>addgroup</command>.
+ </para>
+
+ <para>
+ You might want to call the user and group something else
+ instead of <literal>mysql</literal>. If so, substitute the
+ appropriate name in the following steps.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Pick the directory under which you want to unpack the
+ distribution and change location into it. In the following
+ example, we unpack the distribution under
+ <filename>/usr/local</filename>. (The instructions, therefore,
+ assume that you have permission to create files and
+ directories in <filename>/usr/local</filename>. If that
+ directory is protected, you must perform the installation as
+ <literal>root</literal>.)
+ </para>
+
+<programlisting>
+shell> <userinput>cd /usr/local</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Obtain a distribution file using the instructions in
+ <xref linkend="getting-mysql"/>. For a given release, binary
+ distributions for all platforms are built from the same MySQL
+ source distribution.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Unpack the distribution, which creates the installation
+ directory. Then create a symbolic link to that directory:
+ </para>
+
+<programlisting>
+shell> <userinput>gunzip <
<replaceable>/path/to/mysql-VERSION-OS</replaceable>.tar.gz | tar xvf
-</userinput>
+shell> <userinput>ln -s
<replaceable>full-path-to-mysql-VERSION-OS</replaceable>
mysql</userinput>
+</programlisting>
+
+ <para>
+ The <command>tar</command> command creates a directory named
+
<filename>mysql-<replaceable>VERSION</replaceable>-<replaceable>OS</replaceable></filename>.
+ The <literal>ln</literal> command makes a symbolic link to
+ that directory. This lets you refer more easily to the
+ installation directory as
+ <filename>/usr/local/mysql</filename>.
+ </para>
+
+ <para>
+ With GNU <command>tar</command>, no separate invocation of
+ <literal>gunzip</literal> is necessary. You can replace the
+ first line with the following alternative command to
+ uncompress and extract the distribution:
+ </para>
+
+<programlisting>
+shell> <userinput>tar zxvf
<replaceable>/path/to/mysql-VERSION-OS</replaceable>.tar.gz</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change location into the installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>cd mysql</userinput>
+</programlisting>
+
+ <para>
+ You will find several files and subdirectories in the
+ <literal>mysql</literal> directory. The most important for
+ installation purposes are the <filename>bin</filename> and
+ <filename>scripts</filename> subdirectories:
+ </para>
+
+ <itemizedlist>
+
+ <indexterm>
+ <primary>PATH environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>PATH</secondary>
+ </indexterm>
+
+ <listitem>
+ <para>
+ The <filename>bin</filename> directory contains client
+ programs and the server. You should add the full pathname
+ of this directory to your <literal>PATH</literal>
+ environment variable so that your shell finds the MySQL
+ programs properly. See
+ <xref linkend="environment-variables"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ The <filename>scripts</filename> directory contains the
+ <command>mysql_install_db</command> script used to
+ initialize the <literal>mysql</literal> database
+ containing the grant tables that store the server access
+ permissions.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>
+ Ensure that the distribution contents are accessible to
+ <literal>mysql</literal>. If you unpacked the distribution as
+ <literal>mysql</literal>, no further action is required. If
+ you unpacked the distribution as <literal>root</literal>, its
+ contents will be owned by <literal>root</literal>. Change its
+ ownership to <literal>mysql</literal> by executing the
+ following commands as <literal>root</literal> in the
+ installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>chown -R mysql .</userinput>
+shell> <userinput>chgrp -R mysql .</userinput>
+</programlisting>
+
+ <para>
+ The first command changes the owner attribute of the files to
+ the <literal>mysql</literal> user. The second changes the
+ group attribute to the <literal>mysql</literal> group.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you have not installed MySQL before, you must create the
+ MySQL data directory and initialize the grant tables:
+ </para>
+
+<programlisting>
+shell> <userinput>scripts/mysql_install_db --user=mysql</userinput>
+</programlisting>
+
+ <para>
+ If you run the command as <literal>root</literal>, include the
+ <option>--user</option> option as shown. If you run the
+ command while logged in as that user, you can omit the
+ <option>--user</option> option.
+ </para>
+
+ <para>
+ The command should create the data directory and its contents
+ with <literal>mysql</literal> as the owner.
+ </para>
+
+ <para>
+ After creating or updating the grant tables, you need to
+ restart the server manually.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Most of the MySQL installation can be owned by
+ <literal>root</literal> if you like. The exception is that the
+ data directory must be owned by <literal>mysql</literal>. To
+ accomplish this, run the following commands as
+ <literal>root</literal> in the installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>chown -R root .</userinput>
+shell> <userinput>chown -R mysql data</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you want MySQL to start automatically when you boot your
+ machine, you can copy
+ <literal>support-files/mysql.server</literal> to the location
+ where your system has its startup files. More information can
+ be found in the <literal>support-files/mysql.server</literal>
+ script itself and in <xref linkend="automatic-start"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>adding</primary>
+ <secondary>new users</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>new users</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>users</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+
+ You can set up new accounts using the
+ <command>bin/mysql_setpermission</command> script if you
+ install the <literal>DBI</literal> and
+ <literal>DBD::mysql</literal> Perl modules. See
+ <xref linkend="mysql-setpermission"/>. For Perl module
+ installation instructions, see <xref linkend="perl-support"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you would like to use <command>mysqlaccess</command> and
+ have the MySQL distribution in some non-standard location, you
+ must change the location where <command>mysqlaccess</command>
+ expects to find the <command>mysql</command> client. Edit the
+ <filename>bin/mysqlaccess</filename> script at approximately
+ line 18. Search for a line that looks like this:
+ </para>
+
+<programlisting>
+$MYSQL = '/usr/local/bin/mysql'; # path to mysql executable
+</programlisting>
+
+ <para>
+ Change the path to reflect the location where
+ <command>mysql</command> actually is stored on your system. If
+ you do not do this, a <literal>Broken pipe</literal> error
+ will occur when you run <command>mysqlaccess</command>.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ After everything has been unpacked and installed, you should test
+ your distribution. To start the MySQL server, use the following
+ command:
+ </para>
+
+<programlisting>
+shell> <userinput>bin/mysqld_safe --user=mysql &</userinput>
+</programlisting>
+
+ <para>
+ If you run the command as <literal>root</literal>, you must use
+ the <option>--user</option> option as shown. The value of the
+ option is the name of the login account that you created in the
+ first step to use for running the server. If you run the command
+ while logged in as <literal>mysql</literal>, you can omit the
+ <option>--user</option> option.
+ </para>
+
+ <para>
+ If the command fails immediately and prints <literal>mysqld
+ ended</literal>, you can find some information in the
+
<filename><replaceable>host_name</replaceable>.err</filename>
file
+ in the data directory.
+ </para>
+
+ <para>
+ More information about <command>mysqld_safe</command> is given in
+ <xref linkend="mysqld-safe"/>.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables initially
+ have no passwords. After starting the server, you should set up
+ passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="installing-source" role="cs">
+
+ <title>MySQL Installation Using a Source Distribution</title>
+
+ <indexterm>
+ <primary>installing</primary>
+ <secondary>source distribution</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>source distribution</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>installation overview</primary>
+ </indexterm>
+
+ <para>
+ Before you proceed with an installation from source, first check
+ whether our binary is available for your platform and whether it
+ works for you. We put a great deal of effort into ensuring that
+ our binaries are built with the best possible options.
+ </para>
+
+ <para>
+ To obtain a source distribution for MySQL,
+ <xref linkend="getting-mysql"/>. If you want to build MySQL from
+ source on Windows, see <xref linkend="windows-source-build"/>.
+ </para>
+
+ <para>
+ MySQL source distributions are provided as compressed
+ <command>tar</command> archives and have names of the form
+
<filename>mysql-<replaceable>VERSION</replaceable>.tar.gz</filename>,
+ where <replaceable>VERSION</replaceable> is a number like
+ <literal>¤t-version;</literal>.
+ </para>
+
+ <para>
+ You need the following tools to build and install MySQL from
+ source:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ GNU <literal>gunzip</literal> to uncompress the distribution.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A reasonable <command>tar</command> to unpack the
+ distribution. GNU <command>tar</command> is known to work.
+ Some operating systems come with a preinstalled version of
+ <command>tar</command> that is known to have problems. For
+ example, the <command>tar</command> provided with early
+ versions of Mac OS X <command>tar</command>, SunOS 4.x and
+ Solaris 8 and earlier are known to have problems with long
+ filenames. On Mac OS X, you can use the preinstalled
+ <command>gnutar</command> program. On other systems with a
+ deficient <command>tar</command>, you should install GNU
+ <command>tar</command> first.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A working ANSI C++ compiler. <command>gcc</command> 2.95.2 or
+ later, SGI C++, and SunPro C++ are some of the compilers that
+ are known to work. <literal>libg++</literal> is not needed
+ when using <command>gcc</command>.
<command>gcc</command>
+ 2.7.x has a bug that makes it impossible to compile some
+ perfectly legal C++ files, such as
+ <filename>sql/sql_base.cc</filename>. If you have only
+ <command>gcc</command> 2.7.x, you must upgrade your
+ <command>gcc</command> to be able to compile MySQL.
+ <command>gcc</command> 2.8.1 is also known to have problems on
+ some platforms, so it should be avoided if a newer compiler
+ exists for the platform. <command>gcc</command> 2.95.2 or
+ later is recommended.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ A good <command>make</command> program. GNU
+ <command>make</command> is always recommended and is sometimes
+ required. (BSD <command>make</command> fails, and
+ vendor-provided <command>make</command> implementations may
+ fail as well.) If you have problems, we recommend GNU
+ <command>make</command> 3.75 or newer.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>libtool</command> 1.5.24 or later is also
+ recommended.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ If you are using a version of <command>gcc</command> recent enough
+ to understand the <option>-fno-exceptions</option> option, it is
+ <emphasis>very important</emphasis> that you use this option.
+ Otherwise, you may compile a binary that crashes randomly. We also
+ recommend that you use <option>-felide-constructors</option> and
+ <option>-fno-rtti</option> along with
+ <option>-fno-exceptions</option>. When in doubt, do the following:
+ </para>
+
+<programlisting>
+CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
+ -fno-exceptions -fno-rtti" ./configure \
+ --prefix=/usr/local/mysql --enable-assembler \
+ --with-mysqld-ldflags=-all-static
+</programlisting>
+
+ <para>
+ On most systems, this gives you a fast and stable binary.
+ </para>
+
+ <para>
+ If you run into problems and need to file a bug report, please use
+ the instructions in <xref linkend="bug-reports"/>.
+ </para>
+
+ <section id="quick-install" role="cs">
+
+ <title>Source Installation Overview</title>
+
+ <para>
+ The basic commands that you must execute to install a MySQL
+ source distribution are:
+ </para>
+
+<programlisting>
+shell> <userinput>groupadd mysql</userinput>
+shell> <userinput>useradd -g mysql mysql</userinput>
+shell> <userinput>gunzip <
mysql-<replaceable>VERSION</replaceable>.tar.gz | tar -xvf
-</userinput>
+shell> <userinput>cd
mysql-<replaceable>VERSION</replaceable></userinput>
+shell> <userinput>./configure --prefix=/usr/local/mysql</userinput>
+shell> <userinput>make</userinput>
+shell> <userinput>make install</userinput>
+shell> <userinput>cp support-files/my-medium.cnf
/etc/my.cnf</userinput>
+shell> <userinput>cd /usr/local/mysql</userinput>
+shell> <userinput>chown -R mysql .</userinput>
+shell> <userinput>chgrp -R mysql .</userinput>
+shell> <userinput>bin/mysql_install_db --user=mysql</userinput>
+shell> <userinput>chown -R root .</userinput>
+shell> <userinput>chown -R mysql var</userinput>
+shell> <userinput>bin/mysqld_safe --user=mysql &</userinput>
+</programlisting>
+
+ <para>
+ If you start from a source RPM, do the following:
+ </para>
+
+<programlisting>
+shell> <userinput>rpmbuild --rebuild --clean
MySQL-<replaceable>VERSION</replaceable>.src.rpm</userinput>
+</programlisting>
+
+ <para>
+ This makes a binary RPM that you can install. For older versions
+ of RPM, you may have to replace the command
+ <command>rpmbuild</command> with <command>rpm</command>
instead.
+ </para>
+
+ <note>
+ <para>
+ This procedure does not set up any passwords for MySQL
+ accounts. After following the procedure, proceed to
+ <xref linkend="post-installation"/>, for post-installation
+ setup and testing.
+ </para>
+ </note>
+
+ <para>
+ A more detailed version of the preceding description for
+ installing MySQL from a source distribution follows:
+ </para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>
+ Add a login user and group for <command>mysqld</command> to
+ run as:
+ </para>
+
+<programlisting>
+shell> <userinput>groupadd mysql</userinput>
+shell> <userinput>useradd -g mysql mysql</userinput>
+</programlisting>
+
+ <para>
+ These commands add the <literal>mysql</literal> group and
+ the <literal>mysql</literal> user. The syntax for
+ <command>useradd</command> and
<command>groupadd</command>
+ may differ slightly on different versions of Unix, or they
+ may have different names such as <command>adduser</command>
+ and <command>addgroup</command>.
+ </para>
+
+ <para>
+ You might want to call the user and group something else
+ instead of <literal>mysql</literal>. If so, substitute the
+ appropriate name in the following steps.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Perform the following steps as the <literal>mysql</literal>
+ user, except as noted.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Pick the directory under which you want to unpack the
+ distribution and change location into it.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Obtain a distribution file using the instructions in
+ <xref linkend="getting-mysql"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Unpack the distribution into the current directory:
+ </para>
+
+<programlisting>
+shell> <userinput>gunzip <
<replaceable>/path/to/mysql-VERSION</replaceable>.tar.gz | tar xvf
-</userinput>
+</programlisting>
+
+ <para>
+ This command creates a directory named
+
<filename>mysql-<replaceable>VERSION</replaceable></filename>.
+ </para>
+
+ <para>
+ With GNU <command>tar</command>, no separate invocation of
+ <literal>gunzip</literal> is necessary. You can use the
+ following alternative command to uncompress and extract the
+ distribution:
+ </para>
+
+<programlisting>
+shell> <userinput>tar zxvf
<replaceable>/path/to/mysql-VERSION-OS</replaceable>.tar.gz</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change location into the top-level directory of the unpacked
+ distribution:
+ </para>
+
+<programlisting>
+shell> <userinput>cd
mysql-<replaceable>VERSION</replaceable></userinput>
+</programlisting>
+
+ <remark role="todo">
+ [pd] It's no longer true that you must be in the top-level
+ directory, but we need information from the build team if
+ we're to describe alternative procedures.
+ </remark>
+
+ <para>
+ Note that currently you must configure and build MySQL from
+ this top-level directory. You cannot build it in a different
+ directory.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Configure the release and compile everything:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure --prefix=/usr/local/mysql</userinput>
+shell> <userinput>make</userinput>
+</programlisting>
+
+ <para>
+ When you run <command>configure</command>, you might want to
+ specify other options. Run <command>./configure
+ --help</command> for a list of options.
+ <xref linkend="configure-options"/>, discusses some of the
+ more useful options.
+ </para>
+
+ <para>
+ If <command>configure</command> fails and you are going to
+ send mail to a MySQL mailing list to ask for assistance,
+ please include any lines from
+ <filename>config.log</filename> that you think can help
+ solve the problem. Also include the last couple of lines of
+ output from <command>configure</command>. To file a bug
+ report, please use the instructions in
+ <xref linkend="bug-reports"/>.
+ </para>
+
+ <para>
+ If the compile fails, see
+ <xref linkend="compilation-problems"/>, for help.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Install the distribution:
+ </para>
+
+<programlisting>
+shell> <userinput>make install</userinput>
+</programlisting>
+
+ <para>
+ You might need to run this command as
+ <literal>root</literal>.
+ </para>
+
+ <para>
+ If you want to set up an option file, use one of those
+ present in the <filename>support-files</filename> directory
+ as a template. For example:
+ </para>
+
+<programlisting>
+shell> <userinput>cp support-files/my-medium.cnf
/etc/my.cnf</userinput>
+</programlisting>
+
+ <para>
+ You might need to run this command as
+ <literal>root</literal>.
+ </para>
+
+ <para>
+ If you want to configure support for
+ <literal>InnoDB</literal> tables, you should edit the
+ <literal>/etc/my.cnf</literal> file, remove the
+ <literal>#</literal> character before the option lines that
+ start with <literal>innodb_...</literal>, and modify the
+ option values to be what you want. See
+ <xref linkend="option-files"/>, and
+ <xref linkend="innodb-configuration"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Change location into the installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>cd /usr/local/mysql</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you ran the <command>make install</command> command as
+ <literal>root</literal>, the installed files will be owned
+ by <literal>root</literal>. Ensure that the installation is
+ accessible to <literal>mysql</literal> by executing the
+ following commands as <literal>root</literal> in the
+ installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>chown -R mysql .</userinput>
+shell> <userinput>chgrp -R mysql .</userinput>
+</programlisting>
+
+ <para>
+ The first command changes the owner attribute of the files
+ to the <literal>mysql</literal> user. The second changes the
+ group attribute to the <literal>mysql</literal> group.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you have not installed MySQL before, you must create the
+ MySQL data directory and initialize the grant tables:
+ </para>
+
+<programlisting>
+shell> <userinput>bin/mysql_install_db --user=mysql</userinput>
+</programlisting>
+
+ <para>
+ If you run the command as <literal>root</literal>, include
+ the <option>--user</option> option as shown. If you run the
+ command while logged in as <literal>mysql</literal>, you can
+ omit the <option>--user</option> option.
+ </para>
+
+ <para>
+ The command should create the data directory and its
+ contents with <literal>mysql</literal> as the owner.
+ </para>
+
+ <para>
+ After using <command>mysql_install_db</command> to create
+ the grant tables for MySQL, you must restart the server
+ manually. The <command>mysqld_safe</command> command to do
+ this is shown in a later step.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ Most of the MySQL installation can be owned by
+ <literal>root</literal> if you like. The exception is that
+ the data directory must be owned by
+ <literal>mysql</literal>. To accomplish this, run the
+ following commands as <literal>root</literal> in the
+ installation directory:
+ </para>
+
+<programlisting>
+shell> <userinput>chown -R root .</userinput>
+shell> <userinput>chown -R mysql var</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ If you want MySQL to start automatically when you boot your
+ machine, you can copy
+ <filename>support-files/mysql.server</filename> to the
+ location where your system has its startup files. More
+ information can be found in the
+ <filename>support-files/mysql.server</filename> script
+ itself; see also <xref linkend="automatic-start"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>adding</primary>
+ <secondary>new users</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>new users</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>users</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+
+ You can set up new accounts using the
+ <command>bin/mysql_setpermission</command> script if you
+ install the <literal>DBI</literal> and
+ <literal>DBD::mysql</literal> Perl modules. See
+ <xref linkend="mysql-setpermission"/>. For Perl module
+ installation instructions, see
+ <xref linkend="perl-support"/>.
+ </para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>
+ After everything has been installed, you should test your
+ distribution. To start the MySQL server, use the following
+ command:
+ </para>
+
+<programlisting>
+shell> <userinput>/usr/local/mysql/bin/mysqld_safe --user=mysql
&</userinput>
+</programlisting>
+
+ <para>
+ If you run the command as <literal>root</literal>, you should
+ use the <option>--user</option> option as shown. The value of
+ the option is the name of the login account that you created in
+ the first step to use for running the server. If you run the
+ command while logged in as that user, you can omit the
+ <option>--user</option> option.
+ </para>
+
+ <para>
+ If the command fails immediately and prints <literal>mysqld
+ ended</literal>, you can find some information in the
+
<filename><replaceable>host_name</replaceable>.err</filename>
+ file in the data directory.
+ </para>
+
+ <para>
+ More information about <command>mysqld_safe</command> is given
+ in <xref linkend="mysqld-safe"/>.
+ </para>
+
+ <note>
+ <para>
+ The accounts that are listed in the MySQL grant tables
+ initially have no passwords. After starting the server, you
+ should set up passwords for them using the instructions in
+ <xref linkend="post-installation"/>.
+ </para>
+ </note>
+
+ </section>
+
+ <section id="configure-options" role="cs">
+
+ <title>Typical <command>configure</command> Options</title>
+
+ <indexterm>
+ <primary>without-server option</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>with-big-tables option</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configure script</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>options</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configuration options</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>log files</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>files</primary>
+ <secondary>log</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>debugging support</primary>
+ </indexterm>
+
+ <para>
+ The <command>configure</command> script gives you a great deal
+ of control over how you configure a MySQL source distribution.
+ Typically you do this using options on the
+ <command>configure</command> command line. You can also affect
+ <command>configure</command> using certain environment
+ variables. See <xref linkend="environment-variables"/>. For a
+ full list of options supported by <command>configure</command>,
+ run this command:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure --help</userinput>
+</programlisting>
+
+ <para>
+ A list of the available <command>configure</command> options is
+ provided in the table below.
+ </para>
+
+ <para condition="dynamic:buildopts:fullsummary" role="5.0:mysqld:all"/>
+
+ <para>
+ Some of the <command>configure</command> options available are
+ described here:
+ </para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>without-server option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>without-server option</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ To compile just the MySQL client libraries and client
+ programs and not the server, use the
+ <option>--without-server</option> option:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure --without-server</userinput>
+</programlisting>
+
+ <para>
+ If you have no C++ compiler, some client programs such as
+ <command>mysql</command> cannot be compiled because they
+ require C++.. In this case, you can remove the code in
+ <command>configure</command> that tests for the C++ compiler
+ and then run <command>./configure</command> with the
+ <option>--without-server</option> option. The compile step
+ should still try to build all clients, but you can ignore
+ any warnings about files such as
+ <filename>mysql.cc</filename>. (If
<command>make</command>
+ stops, try <command>make -k</command> to tell it to continue
+ with the rest of the build even if errors occur.)
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>with-embedded-server option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>with-embedded-server option</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ If you want to build the embedded MySQL library
+ (<literal>libmysqld.a</literal>), use the
+ <option>--with-embedded-server</option> option.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>prefix option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>prefix option</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>localstatedir option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>localstatedir option</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ If you don't want your log files and database directories
+ located under <filename>/usr/local/var</filename>, use a
+ <command>configure</command> command something like one of
+ these:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure --prefix=/usr/local/mysql</userinput>
+shell> <userinput>./configure --prefix=/usr/local \</userinput>
+ <userinput>--localstatedir=/usr/local/mysql/data</userinput>
+</programlisting>
+
+ <para>
+ The first command changes the installation prefix so that
+ everything is installed under
+ <filename>/usr/local/mysql</filename> rather than the
+ default of <filename>/usr/local</filename>. The second
+ command preserves the default installation prefix, but
+ overrides the default location for database directories
+ (normally <filename>/usr/local/var</filename>) and changes
+ it to <literal>/usr/local/mysql/data</literal>.
+ </para>
+
+ <para>
+ You can also specify the installation directory and data
+ directory locations at server startup time by using the
+ <option>--basedir</option> and
<option>--datadir</option>
+ options. These can be given on the command line or in an
+ MySQL option file, although it is more common to use an
+ option file. See <xref linkend="option-files"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>with-unix-socket-path option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>with-unix-socket-path option</primary>
+ <secondary>configure</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>changing socket location</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>socket location</primary>
+ <secondary>changing</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>mysql.sock</primary>
+ <secondary>changing location of</secondary>
+ </indexterm>
+
+ If you are using Unix and you want the MySQL socket file
+ location to be somewhere other than the default location
+ (normally in the directory <filename>/tmp</filename> or
+ <filename>/var/run</filename>), use a
+ <command>configure</command> command like this:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure \</userinput>
+
<userinput>--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock</userinput>
+</programlisting>
+
+ <para>
+ The socket filename must be an absolute pathname. You can
+ also change the location of <filename>mysql.sock</filename>
+ at server startup by using a MySQL option file. See
+ <xref linkend="problems-with-mysql-sock"/>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>compiling</primary>
+ <secondary>statically</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>statically</primary>
+ <secondary>compiling</secondary>
+ </indexterm>
+
+ If you want to compile statically linked programs (for
+ example, to make a binary distribution, to get better
+ performance, or to work around problems with some Red Hat
+ Linux distributions), run <command>configure</command> like
+ this:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure --with-client-ldflags=-all-static
\</userinput>
+ <userinput>--with-mysqld-ldflags=-all-static</userinput>
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>CC environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CC</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>CXX environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CXX</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>gcc</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>C++ compiler</primary>
+ <secondary>gcc</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>compiler</primary>
+ <secondary>C++ gcc</secondary>
+ </indexterm>
+
+ If you are using <command>gcc</command> and don't have
+ <literal>libg++</literal> or
<literal>libstdc++</literal>
+ installed, you can tell <command>configure</command> to use
+ <command>gcc</command> as your C++ compiler:
+ </para>
+
+<programlisting>
+shell> <userinput>CC=gcc CXX=gcc ./configure</userinput>
+</programlisting>
+
+ <para>
+ When you use <command>gcc</command> as your C++ compiler, it
+ does not attempt to link in <literal>libg++</literal> or
+ <literal>libstdc++</literal>. This may be a good thing to do
+ even if you have those libraries installed. Some versions of
+ them have caused strange problems for MySQL users in the
+ past.
+ </para>
+
+ <para>
+ The following list indicates some compilers and environment
+ variable settings that are commonly used with each one.
+ </para>
+
+ <indexterm>
+ <primary>CC environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CC</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>CXX environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CXX</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>CFLAGS environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CFLAGS</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>CXXFLAGS environment variable</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>environment variable</primary>
+ <secondary>CXXFLAGS</secondary>
+ </indexterm>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <command>gcc</command> 2.7.2:
+ </para>
+
+<programlisting>
+CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <command>gcc</command> 2.95.2:
+ </para>
+
+<programlisting>
+CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \
+-felide-constructors -fno-exceptions -fno-rtti"
+</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>pgcc</literal> 2.90.29 or newer:
+ </para>
+
+<programlisting>
+CFLAGS="-O3 -mpentiumpro -mstack-align-double" CXX=gcc \
+CXXFLAGS="-O3 -mpentiumpro -mstack-align-double \
+-felide-constructors -fno-exceptions -fno-rtti"
+</programlisting>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>
+ In most cases, you can get a reasonably optimized MySQL
+ binary by using the options from the preceding list and
+ adding the following options to the
+ <command>configure</command> line:
+ </para>
+
+<programlisting>
+--prefix=/usr/local/mysql --enable-assembler \
+--with-mysqld-ldflags=-all-static
+</programlisting>
+
+ <para>
+ The full <command>configure</command> line would, in other
+ words, be something like the following for all recent
+ <command>gcc</command> versions:
+ </para>
+
+<programlisting>
+CFLAGS="-O3 -mpentiumpro" CXX=gcc CXXFLAGS="-O3 -mpentiumpro \
+-felide-constructors -fno-exceptions -fno-rtti" ./configure \
+--prefix=/usr/local/mysql --enable-assembler \
+--with-mysqld-ldflags=-all-static
+</programlisting>
+
+ <para>
+ The binaries we provide on the MySQL Web site at
+ <ulink url="&base-url-downloads;"/> are all compiled with
+ full optimization and should be perfect for most users. See
+ <xref linkend="mysql-binaries"/>. There are some
+ configuration settings you can tweak to build an even faster
+ binary, but these are only for advanced users. See
+ <xref linkend="compile-and-link-options"/>.
+ </para>
+
+ <para>
+ If the build fails and produces errors about your compiler
+ or linker not being able to create the shared library
+
<filename>libmysqlclient.so.<replaceable>N</replaceable></filename>
+ (where <replaceable>N</replaceable> is a version number),
+ you can work around this problem by giving the
+ <option>--disable-shared</option> option to
+ <command>configure</command>. In this case,
+ <command>configure</command> does not build a shared
+
<filename>libmysqlclient.so.<replaceable>N</replaceable></filename>
+ library.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <indexterm>
+ <primary>character sets</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>with-charset option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>with-extra-charsets option</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>configure</primary>
+ <secondary>with-collation option</secondary>
+ </indexterm>
+
+ By default, MySQL uses the <literal>latin1</literal> (cp1252
+ West European) character set. To change the default set, use
+ the <option>--with-charset</option> option:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure
--with-charset=<replaceable>CHARSET</replaceable></userinput>
+</programlisting>
+
+ <para>
+ <replaceable>CHARSET</replaceable> may be one of
+ <literal>binary</literal>,
<literal>armscii8</literal>,
+ <literal>ascii</literal>, <literal>big5</literal>,
+ <literal>cp1250</literal>, <literal>cp1251</literal>,
+ <literal>cp1256</literal>, <literal>cp1257</literal>,
+ <literal>cp850</literal>, <literal>cp852</literal>,
+ <literal>cp866</literal>, <literal>cp932</literal>,
+ <literal>dec8</literal>, <literal>eucjpms</literal>,
+ <literal>euckr</literal>, <literal>gb2312</literal>,
+ <literal>gbk</literal>, <literal>geostd8</literal>,
+ <literal>greek</literal>, <literal>hebrew</literal>,
+ <literal>hp8</literal>, <literal>keybcs2</literal>,
+ <literal>koi8r</literal>, <literal>koi8u</literal>,
+ <literal>latin1</literal>, <literal>latin2</literal>,
+ <literal>latin5</literal>, <literal>latin7</literal>,
+ <literal>macce</literal>,
<literal>macroman</literal>,
+ <literal>sjis</literal>, <literal>swe7</literal>,
+ <literal>tis620</literal>, <literal>ucs2</literal>,
+ <literal>ujis</literal>, <literal>utf8</literal>. See
+ <xref linkend="charset-configuration"/>. (Additional
+ character sets might be available. Check the output from
+ <command>./configure --help</command> for the current list.)
+ </para>
+
+ <para>
+ The default collation may also be specified. MySQL uses the
+ <literal>latin1_swedish_ci</literal> collation by default.
+ To change this, use the <option>--with-collation</option>
+ option:
+ </para>
+
+<programlisting>
+shell> <userinput>./configure
--with-collation=<replaceable>COLLATION</replaceable></userinput>
+</programlisting>
+
+ <para>
+ To change both the character set and the collation, use both
+ the <option>--with-charset</option> and
+ <option>--with-collation</option> options. The collation
+ must be a legal collation for the character set. (Use the
+ <literal>SHOW COLLATION</litera