List:Commits« Previous MessageNext Message »
From:paul Date:February 1 2006 6:44pm
Subject:svn commit - mysqldoc@docsrva: r1170 - in trunk: . refman-4.1 refman-5.0 refman-5.1
View as plain text  
Author: paul
Date: 2006-02-01 19:44:17 +0100 (Wed, 01 Feb 2006)
New Revision: 1170

Log:
 r2768@kite-hub:  paul | 2006-02-01 12:05:44 -0600
 General revisions.


Modified:
   trunk/
   trunk/refman-4.1/ndbcluster.xml
   trunk/refman-5.0/ndbcluster.xml
   trunk/refman-5.1/ndbcluster.xml


Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:7026
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:2767
   + b5ec3a16-e900-0410-9ad2-d183a3acac99:/mysqldoc-local/mysqldoc/trunk:7026
bf112a9c-6c03-0410-a055-ad865cd57414:/mysqldoc-local/mysqldoc/trunk:2768

Modified: trunk/refman-4.1/ndbcluster.xml
===================================================================
--- trunk/refman-4.1/ndbcluster.xml	2006-02-01 18:44:04 UTC (rev 1169)
+++ trunk/refman-4.1/ndbcluster.xml	2006-02-01 18:44:17 UTC (rev 1170)
@@ -1331,6 +1331,11 @@
 
       <title>&title-multi-load-data-queries;</title>
 
+      <remark role="todo">
+        Look into changing this section to use new sample DB once MikeH
+        has it ready.
+      </remark>
+
       <para>
         Working with data in MySQL Cluster is not much different than
         doing so in MySQL without Cluster. There are two points to keep
@@ -1339,50 +1344,66 @@
 
       <itemizedlist>
 
-        <remark role="todo">
-          Look into changing this example to use new sample DB once
-          MikeH has it ready.
-        </remark>
+        <listitem>
+          <para>
+            For a table to be replicated in the cluster, it must be
+            created with the <option>ENGINE=NDB</option> or
+            <option>ENGINE=NDBCLUSTER</option> table option, or else it
+            must be altered after being created (using <literal>ALTER
+            TABLE</literal>) to use the <literal>NDB Cluster</literal>
+            storage engine.
+          </para>
+        </listitem>
 
         <listitem>
           <para>
-            Tables must be created with the <option>ENGINE=NDB</option>
-            or <option>ENGINE=NDBCLUSTER</option> option, or be altered
-            (using <literal>ALTER TABLE</literal>) to use the NDB
-            CLuster storage engine to have them replicated in the
-            cluster. If you are importing tables from an existing
-            database using the output of <command>mysqldump</command>,
-            you can open the SQL script or scripts in a text editor and
-            add this option to any table creation statements, or replace
-            any existing <literal>ENGINE</literal> (or
-            <literal>TYPE</literal>) option with one of these. Suppose
-            that you have the sample <literal>world</literal> database
-            on another MySQL server (that does not support MySQL
-            Cluster), and you want to export the definition for the
-            <literal>City</literal> table:
+            Also remember that <emphasis>each <literal>NDB</literal>
+            table must have a primary key</emphasis>. If no primary key
+            is defined by the user when a table is created, the
+            <literal>NDB Cluster</literal> storage engine will
+            automatically generate a hidden one.
+            (<emphasis role="bold">Note</emphasis>: This hidden key
+            takes up space just as does any other table index. It is not
+            uncommon to encounter problems due to insufficient memory
+            for accommodating these automatically created keys.)
           </para>
+        </listitem>
 
+      </itemizedlist>
+
+      <para>
+        If you are importing tables from an existing database using the
+        output of <command>mysqldump</command>, you can open the SQL
+        script or scripts in a text editor and add the
+        <literal>ENGINE</literal> option to any table creation
+        statements, or replace any existing <literal>ENGINE</literal>
+        (or <literal>TYPE</literal>) option. Suppose that you have the
+        <literal>world</literal> sample database on another MySQL server
+        that does not support MySQL Cluster, and you want to export the
+        <literal>City</literal> table:
+      </para>
+
 <programlisting>
 shell&gt; <userinput>mysqldump --add-drop-table world City &gt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            The resulting <filename>city_table.sql</filename> file will
-            contain this table creation statement (and the
-            <literal>INSERT</literal> statements necessary to import the
-            table data):
-          </para>
+      <para>
+        The resulting <filename>city_table.sql</filename> file will
+        contain this table creation statement (and the
+        <literal>INSERT</literal> statements necessary to import the
+        table data):
+      </para>
 
 <programlisting>
-DROP TABLE IF EXISTS City;
-CREATE TABLE City (
-ID int(11) NOT NULL auto_increment,
-Name char(35) NOT NULL default '',
-CountryCode char(3) NOT NULL default '',
-District char(20) NOT NULL default '',
-Population int(11) NOT NULL default '0',
-PRIMARY KEY  (ID)
-) ENGINE=MyISAM;
+DROP TABLE IF EXISTS `City`;
+CREATE TABLE `City` (
+  `ID` int(11) NOT NULL auto_increment,
+  `Name` char(35) NOT NULL default '',
+  `CountryCode` char(3) NOT NULL default '',
+  `District` char(20) NOT NULL default '',
+  `Population` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`ID`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);
 INSERT INTO City VALUES (2,'Qandahar','AFG','Qandahar',237500);
@@ -1390,14 +1411,14 @@
 # (remaining INSERT statements omitted)
 </programlisting>
 
-          <para>
-            You will need to make sure that MySQL uses the NDB storage
-            engine for this table. There are two ways that this can be
-            accomplished. One of these is, <emphasis>before</emphasis>
-            importing the table into the Cluster database, to modify its
-            definition so that it reads (still using
-            <literal>City</literal> as an example):
-          </para>
+      <para>
+        You will need to make sure that MySQL uses the NDB storage
+        engine for this table. There are two ways that this can be
+        accomplished. One of these is, <emphasis>before</emphasis>
+        importing the table into the Cluster database, to modify its
+        definition so that it reads (still using <literal>City</literal>
+        as an example):
+      </para>
 
 <programlisting>
 DROP TABLE IF EXISTS City;
@@ -1416,76 +1437,75 @@
 # (etc.)
 </programlisting>
 
-          <para>
-            This will need to be done for the definition of each table
-            that is to be part of the clustered database. The easiest
-            way to accomplish this is to do a search-and-replace on the
-            <filename>world.sql</filename> file and replace all
-            instances of <literal>TYPE=MyISAM</literal> or
-            <literal>ENGINE=MyISAM</literal> with
-            <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
-            modify the file, you can also use <literal>ALTER
-            TABLE</literal> to change their type. The particulars are
-            given later in this section.
-          </para>
+      <para>
+        This will need to be done for the definition of each table that
+        is to be part of the clustered database. The easiest way to
+        accomplish this is to do a search-and-replace on the
+        <filename>world.sql</filename> file and replace all instances of
+        <literal>TYPE=MyISAM</literal> or
+        <literal>ENGINE=MyISAM</literal> with
+        <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
+        modify the file, you can also use <literal>ALTER TABLE</literal>
+        to change their type. The particulars are given later in this
+        section.
+      </para>
 
-          <para>
-            Assuming that you have already created a database named
-            <literal>world</literal> on the SQL node of the cluster, you
-            can then use the <command>mysql</command> command-line
-            client to read <filename>city_table.sql</filename>, and
-            create and populate the corresponding table in the usual
-            manner:
-          </para>
+      <para>
+        Assuming that you have already created a database named
+        <literal>world</literal> on the SQL node of the cluster, you can
+        then use the <command>mysql</command> command-line client to
+        read <filename>city_table.sql</filename>, and create and
+        populate the corresponding table in the usual manner:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql world &lt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            It is very important to keep in mind that the preceding
-            command must be executed on the host where the SQL node is
-            running -- in this case, on the machine with the IP address
-            <literal>192.168.0.20</literal>.
-          </para>
+      <para>
+        It is very important to keep in mind that the preceding command
+        must be executed on the host where the SQL node is running -- in
+        this case, on the machine with the IP address
+        <literal>192.168.0.20</literal>.
+      </para>
 
-          <para>
-            To create a copy of the <literal>world</literal> database on
-            the SQL node, save the file to
-            <filename>/usr/local/mysql/data</filename>, and then run
-          </para>
+      <para>
+        To create a copy of the <literal>world</literal> database on the
+        SQL node, save the file to
+        <filename>/usr/local/mysql/data</filename>, and then run
+      </para>
 
 <programlisting>
 shell&gt; <userinput>cd /usr/local/mysql/data</userinput>
 shell&gt; <userinput>mysql world &lt; world.sql</userinput>
 </programlisting>
 
-          <para>
-            Of course, the SQL script must be readable by the
-            <literal>mysql</literal> system user. If you save the file
-            to a different location, adjust the preceding instructions
-            accordingly.
-          </para>
+      <para>
+        Of course, the SQL script must be readable by the
+        <literal>mysql</literal> system user. If you save the file to a
+        different location, adjust the preceding instructions
+        accordingly.
+      </para>
 
-          <para>
-            It is important to note that <literal>NDB Cluster</literal>
-            in MySQL &current-series; does not support autodiscovery of
-            databases. (See
-            <xref linkend="mysql-cluster-limitations-in-4-1"/>.) This
-            means that, once the <literal>world</literal> database and
-            its tables have been created on one data node, you need to
-            issue the statement <literal>CREATE DATABASE world</literal>
-            followed by <literal>FLUSH TABLES</literal> on each SQL node
-            in the cluster. This will cause the node to recognize the
-            database and read its table definitions.
-          </para>
+      <para>
+        It is important to note that <literal>NDB Cluster</literal> in
+        MySQL &current-series; does not support autodiscovery of
+        databases. (See
+        <xref linkend="mysql-cluster-limitations-in-4-1"/>.) This means
+        that, once the <literal>world</literal> database and its tables
+        have been created on one data node, you need to issue the
+        statement <literal>CREATE DATABASE world</literal> followed by
+        <literal>FLUSH TABLES</literal> on each SQL node in the cluster.
+        This will cause the node to recognize the database and read its
+        table definitions.
+      </para>
 
-          <para>
-            Running <literal>SELECT</literal> queries on the SQL node is
-            no different than running them on any other instance of a
-            MySQL server. To run queries from the command line, you
-            first need to log in to the MySQL Monitor in the usual way:
-          </para>
+      <para>
+        Running <literal>SELECT</literal> queries on the SQL node is no
+        different than running them on any other instance of a MySQL
+        server. To run queries from the command line, you first need to
+        log in to the MySQL Monitor in the usual way:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql -u root -p</userinput>
@@ -1495,15 +1515,36 @@
 
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
-mysql&gt;<userinput/>
+mysql&gt;
 </programlisting>
 
-          <para>
-            If you did not modify the <literal>ENGINE=</literal> clauses
-            in the table definitions prior to importing the SQL script,
-            you should run the following statements at this point:
-          </para>
+      <para>
+        Specify the <literal>root</literal> password at the
+        <literal>Enter password:</literal> prompt.
+      </para>
 
+      <para>
+        We simply use the MySQL server's <literal>root</literal> account
+        and assume that you have followed the standard security
+        precautions for installing a MySQL server, including setting a
+        strong <literal>root</literal> password. For more information,
+        see <xref linkend="default-privileges"/>.
+      </para>
+
+      <para>
+        It is worth taking into account that Cluster nodes do not make
+        use of the MySQL privilege system when accessing one another.
+        Setting or changing MySQL user accounts (including the
+        <literal>root</literal> account) effects only applications that
+        access the SQL node, not interaction between nodes.
+      </para>
+
+      <para>
+        If you did not modify the <literal>ENGINE</literal> clauses in
+        the table definitions prior to importing the SQL script, you
+        should run the following statements at this point:
+      </para>
+
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>ALTER TABLE City ENGINE=NDBCLUSTER;</userinput>
@@ -1511,34 +1552,12 @@
 mysql&gt; <userinput>ALTER TABLE CountryLanguage ENGINE=NDBCLUSTER;</userinput>
 </programlisting>
 
-          <para>
-            Note that we simply use the MySQL server's default
-            <literal>root</literal> account with its empty password
-            here. Of course, in a production setting, you should
-            <emphasis>always</emphasis> follow the standard security
-            precautions for installing a MySQL server, including the
-            setting of a strong <literal>root</literal> password and
-            creation of a user account with only those privileges
-            required to accomplish the tasks necessary for that user.
-            For more information about these, see
-            <xref linkend="privilege-system"/>.
-          </para>
+      <para>
+        Selecting a database and running a <command>SELECT</command>
+        query against a table in that database is also accomplished in
+        the usual manner, as is exiting the MySQL Monitor:
+      </para>
 
-          <para>
-            It is worth taking into account that Cluster nodes do not
-            make use of the MySQL privileges system when accessing one
-            another, and setting or changing MySQL user accounts
-            (including the <literal>root</literal> account) has no
-            effect on interaction between nodes, only on applications
-            accessing the SQL node.
-          </para>
-
-          <para>
-            Selecting a database and running a <command>SELECT</command>
-            query against a table in that database is also accomplished
-            in the usual manner, as is exiting the MySQL Monitor:
-          </para>
-
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5;</userinput>
@@ -1556,17 +1575,18 @@
 mysql&gt; <userinput>\q</userinput>
 Bye
 
-shell&gt;<userinput/>
+shell&gt;
 </programlisting>
 
-          <para>
-            Applications using MySQL can use standard APIs. It is
-            important to remember that your application must access the
-            SQL node, and not the MGM or storage nodes. This brief
-            example shows how we might execute the same query shown
-            earlier using PHP 5's <literal>mysqli</literal> extension
-            running on a Web server elsewhere on the network:
-          </para>
+      <para>
+        Applications that use MySQL can employ standard APIs to access
+        NDB tables. It is important to remember that your application
+        must access the SQL node, and not the MGM or storage nodes. This
+        brief example shows how we might execute the
+        <literal>SELECT</literal> statement just shown by using PHP 5's
+        <literal>mysqli</literal> extension running on a Web server
+        elsewhere on the network:
+      </para>
 
 <programlisting>
 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
@@ -1626,35 +1646,18 @@
 &lt;/html&gt;
 </programlisting>
 
-          <para>
-            We assume that the process running on the Web server can
-            reach the IP address of the SQL node.
-          </para>
+      <para>
+        We assume that the process running on the Web server can reach
+        the IP address of the SQL node.
+      </para>
 
-          <para>
-            In a similar fashion, you can use the MySQL C API, Perl-DBI,
-            Python-mysql, or MySQL AB's own Connectors to perform the
-            tasks of data definition and manipulation just as you would
-            normally with MySQL.
-          </para>
-        </listitem>
+      <para>
+        In a similar fashion, you can use the MySQL C API, Perl-DBI,
+        Python-mysql, or MySQL AB's own Connectors to perform the tasks
+        of data definition and manipulation just as you would normally
+        with MySQL.
+      </para>
 
-        <listitem>
-          <para>
-            Also remember that <emphasis>each <literal>NDB</literal>
-            table must have a primary key</emphasis>. If no primary key
-            is defined by the user when a table is created, the
-            <literal>NDB Cluster</literal> storage engine will
-            automatically generate a hidden one.
-            (<emphasis role="bold">Note</emphasis>: This hidden key
-            takes up space just as does any other table index. It is not
-            uncommon to encounter problems due to insufficient memory
-            for accommodating these automatically created keys.)
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
     </section>
 
     <section id="multi-shutdown-restart">
@@ -2289,9 +2292,18 @@
 </programlisting>
 
         <para>
-          There are six different sections in this configuration file:
+          Note that each node has its own section in the
+          <filename>config.ini</filename>. For instance, this cluster
+          has two data nodes, so the preceding configuration file
+          contains two <literal>[NDBD]</literal> sections defining these
+          nodes.
         </para>
 
+        <para>
+          There are six different sections in that you can use in the
+          <filename>config.ini</filename> configuration file:
+        </para>
+
         <itemizedlist>
 
           <listitem>
@@ -2343,16 +2355,11 @@
         </itemizedlist>
 
         <para>
-          Note that each node has its own section in the
-          <filename>config.ini</filename>. For instance, this cluster
-          has two data nodes, so the configuration file contains two
-          sections defining these nodes.
-        </para>
-
-        <para>
           You can define <literal>DEFAULT</literal> values for each
           section. As of MySQL 4.1.5, all parameter names are
-          case-insensitive.
+          case-insensitive, which differs from parameters specified in
+          <filename>my.cnf</filename> or <filename>my.ini</filename>
+          files.
         </para>
 
       </section>
@@ -2363,18 +2370,19 @@
 
         <para>
           With the exception of the MySQL Cluster management server
-          (<command>ndb_mgmd</command>), each node making up a MySQL
-          Cluster requires a <firstterm>connectstring</firstterm> which
-          points to the management server's location. This is used in
-          establishing a connection to the management server as well as
-          in performing other tasks depending on the node's role in the
-          cluster. The syntax for a connectstring is as follows:
+          (<command>ndb_mgmd</command>), each node that is part of a
+          MySQL Cluster requires a <firstterm>connectstring</firstterm>
+          that points to the management server's location. This
+          connectstring is used in establishing a connection to the
+          management server as well as in performing other tasks
+          depending on the node's role in the cluster. The syntax for a
+          connectstring is as follows:
         </para>
 
 <programlisting>
 &lt;connectstring&gt; :=
     [&lt;nodeid-specification&gt;,]&lt;host-specification&gt;[,&lt;host-specification&gt;]
-    
+
 &lt;nodeid-specification&gt; := <replaceable>node_id</replaceable>
 
 &lt;host-specification&gt; := <replaceable>host_name</replaceable>[:<replaceable>port_num</replaceable>]

Modified: trunk/refman-5.0/ndbcluster.xml
===================================================================
--- trunk/refman-5.0/ndbcluster.xml	2006-02-01 18:44:04 UTC (rev 1169)
+++ trunk/refman-5.0/ndbcluster.xml	2006-02-01 18:44:17 UTC (rev 1170)
@@ -1331,6 +1331,11 @@
 
       <title>&title-multi-load-data-queries;</title>
 
+      <remark role="todo">
+        Look into changing this section to use new sample DB once MikeH
+        has it ready.
+      </remark>
+
       <para>
         Working with data in MySQL Cluster is not much different than
         doing so in MySQL without Cluster. There are two points to keep
@@ -1339,50 +1344,66 @@
 
       <itemizedlist>
 
-        <remark role="todo">
-          Look into changing this example to use new sample DB once
-          MikeH has it ready.
-        </remark>
+        <listitem>
+          <para>
+            For a table to be replicated in the cluster, it must be
+            created with the <option>ENGINE=NDB</option> or
+            <option>ENGINE=NDBCLUSTER</option> table option, or else it
+            must be altered after being created (using <literal>ALTER
+            TABLE</literal>) to use the <literal>NDB Cluster</literal>
+            storage engine.
+          </para>
+        </listitem>
 
         <listitem>
           <para>
-            Tables must be created with the <option>ENGINE=NDB</option>
-            or <option>ENGINE=NDBCLUSTER</option> option, or be altered
-            (using <literal>ALTER TABLE</literal>) to use the NDB
-            CLuster storage engine to have them replicated in the
-            cluster. If you are importing tables from an existing
-            database using the output of <command>mysqldump</command>,
-            you can open the SQL script or scripts in a text editor and
-            add this option to any table creation statements, or replace
-            any existing <literal>ENGINE</literal> (or
-            <literal>TYPE</literal>) option with one of these. Suppose
-            that you have the sample <literal>world</literal> database
-            on another MySQL server (that does not support MySQL
-            Cluster), and you want to export the definition for the
-            <literal>City</literal> table:
+            Also remember that <emphasis>each <literal>NDB</literal>
+            table must have a primary key</emphasis>. If no primary key
+            is defined by the user when a table is created, the
+            <literal>NDB Cluster</literal> storage engine will
+            automatically generate a hidden one.
+            (<emphasis role="bold">Note</emphasis>: This hidden key
+            takes up space just as does any other table index. It is not
+            uncommon to encounter problems due to insufficient memory
+            for accommodating these automatically created keys.)
           </para>
+        </listitem>
 
+      </itemizedlist>
+
+      <para>
+        If you are importing tables from an existing database using the
+        output of <command>mysqldump</command>, you can open the SQL
+        script or scripts in a text editor and add the
+        <literal>ENGINE</literal> option to any table creation
+        statements, or replace any existing <literal>ENGINE</literal>
+        (or <literal>TYPE</literal>) option. Suppose that you have the
+        <literal>world</literal> sample database on another MySQL server
+        that does not support MySQL Cluster, and you want to export the
+        <literal>City</literal> table:
+      </para>
+
 <programlisting>
 shell&gt; <userinput>mysqldump --add-drop-table world City &gt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            The resulting <filename>city_table.sql</filename> file will
-            contain this table creation statement (and the
-            <literal>INSERT</literal> statements necessary to import the
-            table data):
-          </para>
+      <para>
+        The resulting <filename>city_table.sql</filename> file will
+        contain this table creation statement (and the
+        <literal>INSERT</literal> statements necessary to import the
+        table data):
+      </para>
 
 <programlisting>
-DROP TABLE IF EXISTS City;
-CREATE TABLE City (
-ID int(11) NOT NULL auto_increment,
-Name char(35) NOT NULL default '',
-CountryCode char(3) NOT NULL default '',
-District char(20) NOT NULL default '',
-Population int(11) NOT NULL default '0',
-PRIMARY KEY  (ID)
-) ENGINE=MyISAM;
+DROP TABLE IF EXISTS `City`;
+CREATE TABLE `City` (
+  `ID` int(11) NOT NULL auto_increment,
+  `Name` char(35) NOT NULL default '',
+  `CountryCode` char(3) NOT NULL default '',
+  `District` char(20) NOT NULL default '',
+  `Population` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`ID`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);
 INSERT INTO City VALUES (2,'Qandahar','AFG','Qandahar',237500);
@@ -1390,14 +1411,14 @@
 # (remaining INSERT statements omitted)
 </programlisting>
 
-          <para>
-            You will need to make sure that MySQL uses the NDB storage
-            engine for this table. There are two ways that this can be
-            accomplished. One of these is, <emphasis>before</emphasis>
-            importing the table into the Cluster database, to modify its
-            definition so that it reads (still using
-            <literal>City</literal> as an example):
-          </para>
+      <para>
+        You will need to make sure that MySQL uses the NDB storage
+        engine for this table. There are two ways that this can be
+        accomplished. One of these is, <emphasis>before</emphasis>
+        importing the table into the Cluster database, to modify its
+        definition so that it reads (still using <literal>City</literal>
+        as an example):
+      </para>
 
 <programlisting>
 DROP TABLE IF EXISTS City;
@@ -1416,78 +1437,76 @@
 # (etc.)
 </programlisting>
 
-          <para>
-            This will need to be done for the definition of each table
-            that is to be part of the clustered database. The easiest
-            way to accomplish this is to do a search-and-replace on the
-            <filename>world.sql</filename> file and replace all
-            instances of <literal>TYPE=MyISAM</literal> or
-            <literal>ENGINE=MyISAM</literal> with
-            <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
-            modify the file, you can also use <literal>ALTER
-            TABLE</literal> to change their type. The particulars are
-            given later in this section.
-          </para>
+      <para>
+        This will need to be done for the definition of each table that
+        is to be part of the clustered database. The easiest way to
+        accomplish this is to do a search-and-replace on the
+        <filename>world.sql</filename> file and replace all instances of
+        <literal>TYPE=MyISAM</literal> or
+        <literal>ENGINE=MyISAM</literal> with
+        <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
+        modify the file, you can also use <literal>ALTER TABLE</literal>
+        to change their type. The particulars are given later in this
+        section.
+      </para>
 
-          <para>
-            Assuming that you have already created a database named
-            <literal>world</literal> on the SQL node of the cluster, you
-            can then use the <command>mysql</command> command-line
-            client to read <filename>city_table.sql</filename>, and
-            create and populate the corresponding table in the usual
-            manner:
-          </para>
+      <para>
+        Assuming that you have already created a database named
+        <literal>world</literal> on the SQL node of the cluster, you can
+        then use the <command>mysql</command> command-line client to
+        read <filename>city_table.sql</filename>, and create and
+        populate the corresponding table in the usual manner:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql world &lt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            It is very important to keep in mind that the preceding
-            command must be executed on the host where the SQL node is
-            running -- in this case, on the machine with the IP address
-            <literal>192.168.0.20</literal>.
-          </para>
+      <para>
+        It is very important to keep in mind that the preceding command
+        must be executed on the host where the SQL node is running -- in
+        this case, on the machine with the IP address
+        <literal>192.168.0.20</literal>.
+      </para>
 
-          <para>
-            To create a copy of the <literal>world</literal> database on
-            the SQL node, save the file to
-            <filename>/usr/local/mysql/data</filename>, and then run
-          </para>
+      <para>
+        To create a copy of the <literal>world</literal> database on the
+        SQL node, save the file to
+        <filename>/usr/local/mysql/data</filename>, and then run
+      </para>
 
 <programlisting>
 shell&gt; <userinput>cd /usr/local/mysql/data</userinput>
 shell&gt; <userinput>mysql world &lt; world.sql</userinput>
 </programlisting>
 
-          <para>
-            Of course, the SQL script must be readable by the
-            <literal>mysql</literal> system user. If you save the file
-            to a different location, adjust the preceding instructions
-            accordingly.
-          </para>
+      <para>
+        Of course, the SQL script must be readable by the
+        <literal>mysql</literal> system user. If you save the file to a
+        different location, adjust the preceding instructions
+        accordingly.
+      </para>
 
-          <para>
-            It is important to note that <literal>NDB Cluster</literal>
-            in MySQL &current-series; does not support autodiscovery of
-            databases. (See
-            <xref linkend="mysql-cluster-limitations"/>.) This means
-            that, once the <literal>world</literal> database and its
-            tables have been created on one data node, you need to issue
-            the statement <literal>CREATE SCHEMA world</literal>,
-            (beginning with MySQL 5.0.2, you may use <literal>CREATE
-            SCHEMA world</literal> instead), followed by <literal>FLUSH
-            TABLES</literal> on each SQL node in the cluster. This will
-            cause the node to recognize the database and read its table
-            definitions.
-          </para>
+      <para>
+        It is important to note that <literal>NDB Cluster</literal> in
+        MySQL &current-series; does not support autodiscovery of
+        databases. (See <xref linkend="mysql-cluster-limitations"/>.)
+        This means that, once the <literal>world</literal> database and
+        its tables have been created on one data node, you need to issue
+        the statement <literal>CREATE SCHEMA world</literal>, (beginning
+        with MySQL 5.0.2, you may use <literal>CREATE SCHEMA
+        world</literal> instead), followed by <literal>FLUSH
+        TABLES</literal> on each SQL node in the cluster. This will
+        cause the node to recognize the database and read its table
+        definitions.
+      </para>
 
-          <para>
-            Running <literal>SELECT</literal> queries on the SQL node is
-            no different than running them on any other instance of a
-            MySQL server. To run queries from the command line, you
-            first need to log in to the MySQL Monitor in the usual way:
-          </para>
+      <para>
+        Running <literal>SELECT</literal> queries on the SQL node is no
+        different than running them on any other instance of a MySQL
+        server. To run queries from the command line, you first need to
+        log in to the MySQL Monitor in the usual way:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql -u root -p</userinput>
@@ -1497,15 +1516,36 @@
 
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
-mysql&gt;<userinput/>
+mysql&gt;
 </programlisting>
 
-          <para>
-            If you did not modify the <literal>ENGINE=</literal> clauses
-            in the table definitions prior to importing the SQL script,
-            you should run the following statements at this point:
-          </para>
+      <para>
+        Specify the <literal>root</literal> password at the
+        <literal>Enter password:</literal> prompt.
+      </para>
 
+      <para>
+        We simply use the MySQL server's <literal>root</literal> account
+        and assume that you have followed the standard security
+        precautions for installing a MySQL server, including setting a
+        strong <literal>root</literal> password. For more information,
+        see <xref linkend="default-privileges"/>.
+      </para>
+
+      <para>
+        It is worth taking into account that Cluster nodes do not make
+        use of the MySQL privilege system when accessing one another.
+        Setting or changing MySQL user accounts (including the
+        <literal>root</literal> account) effects only applications that
+        access the SQL node, not interaction between nodes.
+      </para>
+
+      <para>
+        If you did not modify the <literal>ENGINE</literal> clauses in
+        the table definitions prior to importing the SQL script, you
+        should run the following statements at this point:
+      </para>
+
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>ALTER TABLE City ENGINE=NDBCLUSTER;</userinput>
@@ -1513,34 +1553,12 @@
 mysql&gt; <userinput>ALTER TABLE CountryLanguage ENGINE=NDBCLUSTER;</userinput>
 </programlisting>
 
-          <para>
-            Note that we simply use the MySQL server's default
-            <literal>root</literal> account with its empty password
-            here. Of course, in a production setting, you should
-            <emphasis>always</emphasis> follow the standard security
-            precautions for installing a MySQL server, including the
-            setting of a strong <literal>root</literal> password and
-            creation of a user account with only those privileges
-            required to accomplish the tasks necessary for that user.
-            For more information about these, see
-            <xref linkend="privilege-system"/>.
-          </para>
+      <para>
+        Selecting a database and running a <command>SELECT</command>
+        query against a table in that database is also accomplished in
+        the usual manner, as is exiting the MySQL Monitor:
+      </para>
 
-          <para>
-            It is worth taking into account that Cluster nodes do not
-            make use of the MySQL privileges system when accessing one
-            another, and setting or changing MySQL user accounts
-            (including the <literal>root</literal> account) has no
-            effect on interaction between nodes, only on applications
-            accessing the SQL node.
-          </para>
-
-          <para>
-            Selecting a database and running a <command>SELECT</command>
-            query against a table in that database is also accomplished
-            in the usual manner, as is exiting the MySQL Monitor:
-          </para>
-
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5;</userinput>
@@ -1558,17 +1576,18 @@
 mysql&gt; <userinput>\q</userinput>
 Bye
 
-shell&gt;<userinput/>
+shell&gt;
 </programlisting>
 
-          <para>
-            Applications using MySQL can use standard APIs. It is
-            important to remember that your application must access the
-            SQL node, and not the MGM or storage nodes. This brief
-            example shows how we might execute the same query shown
-            earlier using PHP 5's <literal>mysqli</literal> extension
-            running on a Web server elsewhere on the network:
-          </para>
+      <para>
+        Applications that use MySQL can employ standard APIs to access
+        NDB tables. It is important to remember that your application
+        must access the SQL node, and not the MGM or storage nodes. This
+        brief example shows how we might execute the
+        <literal>SELECT</literal> statement just shown by using PHP 5's
+        <literal>mysqli</literal> extension running on a Web server
+        elsewhere on the network:
+      </para>
 
 <programlisting>
 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
@@ -1628,35 +1647,18 @@
 &lt;/html&gt;
 </programlisting>
 
-          <para>
-            We assume that the process running on the Web server can
-            reach the IP address of the SQL node.
-          </para>
+      <para>
+        We assume that the process running on the Web server can reach
+        the IP address of the SQL node.
+      </para>
 
-          <para>
-            In a similar fashion, you can use the MySQL C API, Perl-DBI,
-            Python-mysql, or MySQL AB's own Connectors to perform the
-            tasks of data definition and manipulation just as you would
-            normally with MySQL.
-          </para>
-        </listitem>
+      <para>
+        In a similar fashion, you can use the MySQL C API, Perl-DBI,
+        Python-mysql, or MySQL AB's own Connectors to perform the tasks
+        of data definition and manipulation just as you would normally
+        with MySQL.
+      </para>
 
-        <listitem>
-          <para>
-            Also remember that <emphasis>each <literal>NDB</literal>
-            table must have a primary key</emphasis>. If no primary key
-            is defined by the user when a table is created, the
-            <literal>NDB Cluster</literal> storage engine will
-            automatically generate a hidden one.
-            (<emphasis role="bold">Note</emphasis>: This hidden key
-            takes up space just as does any other table index. It is not
-            uncommon to encounter problems due to insufficient memory
-            for accommodating these automatically created keys.)
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
     </section>
 
     <section id="multi-shutdown-restart">
@@ -2279,9 +2281,18 @@
 </programlisting>
 
         <para>
-          There are six different sections in this configuration file:
+          Note that each node has its own section in the
+          <filename>config.ini</filename>. For instance, this cluster
+          has two data nodes, so the preceding configuration file
+          contains two <literal>[NDBD]</literal> sections defining these
+          nodes.
         </para>
 
+        <para>
+          There are six different sections in that you can use in the
+          <filename>config.ini</filename> configuration file:
+        </para>
+
         <itemizedlist>
 
           <listitem>
@@ -2333,15 +2344,11 @@
         </itemizedlist>
 
         <para>
-          Note that each node has its own section in the
-          <filename>config.ini</filename>. For instance, this cluster
-          has two data nodes, so the configuration file contains two
-          sections defining these nodes.
-        </para>
-
-        <para>
           You can define <literal>DEFAULT</literal> values for each
-          section. All Cluster parameter names are case-insensitive.
+          section. All Cluster parameter names are case-insensitive,
+          which differs from parameters specified in
+          <filename>my.cnf</filename> or <filename>my.ini</filename>
+          files.
         </para>
 
       </section>
@@ -2352,18 +2359,19 @@
 
         <para>
           With the exception of the MySQL Cluster management server
-          (<command>ndb_mgmd</command>), each node making up a MySQL
-          Cluster requires a <firstterm>connectstring</firstterm> which
-          points to the management server's location. This is used in
-          establishing a connection to the management server as well as
-          in performing other tasks depending on the node's role in the
-          cluster. The syntax for a connectstring is as follows:
+          (<command>ndb_mgmd</command>), each node that is part of a
+          MySQL Cluster requires a <firstterm>connectstring</firstterm>
+          that points to the management server's location. This
+          connectstring is used in establishing a connection to the
+          management server as well as in performing other tasks
+          depending on the node's role in the cluster. The syntax for a
+          connectstring is as follows:
         </para>
 
 <programlisting>
 &lt;connectstring&gt; :=
     [&lt;nodeid-specification&gt;,]&lt;host-specification&gt;[,&lt;host-specification&gt;]
-    
+
 &lt;nodeid-specification&gt; := <replaceable>node_id</replaceable>
 
 &lt;host-specification&gt; := <replaceable>host_name</replaceable>[:<replaceable>port_num</replaceable>]

Modified: trunk/refman-5.1/ndbcluster.xml
===================================================================
--- trunk/refman-5.1/ndbcluster.xml	2006-02-01 18:44:04 UTC (rev 1169)
+++ trunk/refman-5.1/ndbcluster.xml	2006-02-01 18:44:17 UTC (rev 1170)
@@ -1331,6 +1331,11 @@
 
       <title>&title-multi-load-data-queries;</title>
 
+      <remark role="todo">
+        Look into changing this section to use new sample DB once MikeH
+        has it ready.
+      </remark>
+
       <para>
         Working with data in MySQL Cluster is not much different than
         doing so in MySQL without Cluster. There are two points to keep
@@ -1339,50 +1344,66 @@
 
       <itemizedlist>
 
-        <remark role="todo">
-          Look into changing this example to use new sample DB once
-          MikeH has it ready.
-        </remark>
+        <listitem>
+          <para>
+            For a table to be replicated in the cluster, it must be
+            created with the <option>ENGINE=NDB</option> or
+            <option>ENGINE=NDBCLUSTER</option> table option, or else it
+            must be altered after being created (using <literal>ALTER
+            TABLE</literal>) to use the <literal>NDB Cluster</literal>
+            storage engine.
+          </para>
+        </listitem>
 
         <listitem>
           <para>
-            Tables must be created with the <option>ENGINE=NDB</option>
-            or <option>ENGINE=NDBCLUSTER</option> option, or be altered
-            (using <literal>ALTER TABLE</literal>) to use the NDB
-            CLuster storage engine to have them replicated in the
-            cluster. If you are importing tables from an existing
-            database using the output of <command>mysqldump</command>,
-            you can open the SQL script or scripts in a text editor and
-            add this option to any table creation statements, or replace
-            any existing <literal>ENGINE</literal> (or
-            <literal>TYPE</literal>) option with one of these. Suppose
-            that you have the sample <literal>world</literal> database
-            on another MySQL server (that does not support MySQL
-            Cluster), and you want to export the definition for the
-            <literal>City</literal> table:
+            Also remember that <emphasis>each <literal>NDB</literal>
+            table must have a primary key</emphasis>. If no primary key
+            is defined by the user when a table is created, the
+            <literal>NDB Cluster</literal> storage engine will
+            automatically generate a hidden one.
+            (<emphasis role="bold">Note</emphasis>: This hidden key
+            takes up space just as does any other table index. It is not
+            uncommon to encounter problems due to insufficient memory
+            for accommodating these automatically created keys.)
           </para>
+        </listitem>
 
+      </itemizedlist>
+
+      <para>
+        If you are importing tables from an existing database using the
+        output of <command>mysqldump</command>, you can open the SQL
+        script or scripts in a text editor and add the
+        <literal>ENGINE</literal> option to any table creation
+        statements, or replace any existing <literal>ENGINE</literal>
+        (or <literal>TYPE</literal>) option. Suppose that you have the
+        <literal>world</literal> sample database on another MySQL server
+        that does not support MySQL Cluster, and you want to export the
+        <literal>City</literal> table:
+      </para>
+
 <programlisting>
 shell&gt; <userinput>mysqldump --add-drop-table world City &gt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            The resulting <filename>city_table.sql</filename> file will
-            contain this table creation statement (and the
-            <literal>INSERT</literal> statements necessary to import the
-            table data):
-          </para>
+      <para>
+        The resulting <filename>city_table.sql</filename> file will
+        contain this table creation statement (and the
+        <literal>INSERT</literal> statements necessary to import the
+        table data):
+      </para>
 
 <programlisting>
-DROP TABLE IF EXISTS City;
-CREATE TABLE City (
-ID int(11) NOT NULL auto_increment,
-Name char(35) NOT NULL default '',
-CountryCode char(3) NOT NULL default '',
-District char(20) NOT NULL default '',
-Population int(11) NOT NULL default '0',
-PRIMARY KEY  (ID)
-) ENGINE=MyISAM;
+DROP TABLE IF EXISTS `City`;
+CREATE TABLE `City` (
+  `ID` int(11) NOT NULL auto_increment,
+  `Name` char(35) NOT NULL default '',
+  `CountryCode` char(3) NOT NULL default '',
+  `District` char(20) NOT NULL default '',
+  `Population` int(11) NOT NULL default '0',
+  PRIMARY KEY  (`ID`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 
 INSERT INTO City VALUES (1,'Kabul','AFG','Kabol',1780000);
 INSERT INTO City VALUES (2,'Qandahar','AFG','Qandahar',237500);
@@ -1390,14 +1411,14 @@
 # (remaining INSERT statements omitted)
 </programlisting>
 
-          <para>
-            You will need to make sure that MySQL uses the NDB storage
-            engine for this table. There are two ways that this can be
-            accomplished. One of these is, <emphasis>before</emphasis>
-            importing the table into the Cluster database, to modify its
-            definition so that it reads (still using
-            <literal>City</literal> as an example):
-          </para>
+      <para>
+        You will need to make sure that MySQL uses the NDB storage
+        engine for this table. There are two ways that this can be
+        accomplished. One of these is, <emphasis>before</emphasis>
+        importing the table into the Cluster database, to modify its
+        definition so that it reads (still using <literal>City</literal>
+        as an example):
+      </para>
 
 <programlisting>
 DROP TABLE IF EXISTS City;
@@ -1416,76 +1437,74 @@
 # (etc.)
 </programlisting>
 
-          <para>
-            This will need to be done for the definition of each table
-            that is to be part of the clustered database. The easiest
-            way to accomplish this is to do a search-and-replace on the
-            <filename>world.sql</filename> file and replace all
-            instances of <literal>TYPE=MyISAM</literal> or
-            <literal>ENGINE=MyISAM</literal> with
-            <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
-            modify the file, you can also use <literal>ALTER
-            TABLE</literal> to change their type. The particulars are
-            given later in this section.
-          </para>
+      <para>
+        This will need to be done for the definition of each table that
+        is to be part of the clustered database. The easiest way to
+        accomplish this is to do a search-and-replace on the
+        <filename>world.sql</filename> file and replace all instances of
+        <literal>TYPE=MyISAM</literal> or
+        <literal>ENGINE=MyISAM</literal> with
+        <literal>ENGINE=NDBCLUSTER</literal>. If you do not want to
+        modify the file, you can also use <literal>ALTER TABLE</literal>
+        to change their type. The particulars are given later in this
+        section.
+      </para>
 
-          <para>
-            Assuming that you have already created a database named
-            <literal>world</literal> on the SQL node of the cluster, you
-            can then use the <command>mysql</command> command-line
-            client to read <filename>city_table.sql</filename>, and
-            create and populate the corresponding table in the usual
-            manner:
-          </para>
+      <para>
+        Assuming that you have already created a database named
+        <literal>world</literal> on the SQL node of the cluster, you can
+        then use the <command>mysql</command> command-line client to
+        read <filename>city_table.sql</filename>, and create and
+        populate the corresponding table in the usual manner:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql world &lt; city_table.sql</userinput>
 </programlisting>
 
-          <para>
-            It is very important to keep in mind that the preceding
-            command must be executed on the host where the SQL node is
-            running -- in this case, on the machine with the IP address
-            <literal>192.168.0.20</literal>.
-          </para>
+      <para>
+        It is very important to keep in mind that the preceding command
+        must be executed on the host where the SQL node is running -- in
+        this case, on the machine with the IP address
+        <literal>192.168.0.20</literal>.
+      </para>
 
-          <para>
-            To create a copy of the <literal>world</literal> database on
-            the SQL node, save the file to
-            <filename>/usr/local/mysql/data</filename>, and then run
-          </para>
+      <para>
+        To create a copy of the <literal>world</literal> database on the
+        SQL node, save the file to
+        <filename>/usr/local/mysql/data</filename>, and then run
+      </para>
 
 <programlisting>
 shell&gt; <userinput>cd /usr/local/mysql/data</userinput>
 shell&gt; <userinput>mysql world &lt; world.sql</userinput>
 </programlisting>
 
-          <para>
-            Of course, the SQL script must be readable by the
-            <literal>mysql</literal> system user. If you save the file
-            to a different location, adjust the preceding instructions
-            accordingly.
-          </para>
+      <para>
+        Of course, the SQL script must be readable by the
+        <literal>mysql</literal> system user. If you save the file to a
+        different location, adjust the preceding instructions
+        accordingly.
+      </para>
 
-          <para>
-            It is important to note that <literal>NDB Cluster</literal>
-            in MySQL &current-series; does not support autodiscovery of
-            databases. (See
-            <xref linkend="mysql-cluster-limitations"/>.) This means
-            that, once the <literal>world</literal> database and its
-            tables have been created on one data node, you need to issue
-            the statement <literal>CREATE SCHEMA world</literal>,
-            followed by <literal>FLUSH TABLES</literal> on each SQL node
-            in the cluster. This will cause the node to recognize the
-            database and read its table definitions.
-          </para>
+      <para>
+        It is important to note that <literal>NDB Cluster</literal> in
+        MySQL &current-series; does not support autodiscovery of
+        databases. (See <xref linkend="mysql-cluster-limitations"/>.)
+        This means that, once the <literal>world</literal> database and
+        its tables have been created on one data node, you need to issue
+        the statement <literal>CREATE SCHEMA world</literal>, followed
+        by <literal>FLUSH TABLES</literal> on each SQL node in the
+        cluster. This will cause the node to recognize the database and
+        read its table definitions.
+      </para>
 
-          <para>
-            Running <literal>SELECT</literal> queries on the SQL node is
-            no different than running them on any other instance of a
-            MySQL server. To run queries from the command line, you
-            first need to log in to the MySQL Monitor in the usual way:
-          </para>
+      <para>
+        Running <literal>SELECT</literal> queries on the SQL node is no
+        different than running them on any other instance of a MySQL
+        server. To run queries from the command line, you first need to
+        log in to the MySQL Monitor in the usual way:
+      </para>
 
 <programlisting>
 shell&gt; <userinput>mysql -u root -p</userinput>
@@ -1495,15 +1514,36 @@
 
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
-mysql&gt;<userinput/>
+mysql&gt;
 </programlisting>
 
-          <para>
-            If you did not modify the <literal>ENGINE=</literal> clauses
-            in the table definitions prior to importing the SQL script,
-            you should run the following statements at this point:
-          </para>
+      <para>
+        Specify the <literal>root</literal> password at the
+        <literal>Enter password:</literal> prompt.
+      </para>
 
+      <para>
+        We simply use the MySQL server's <literal>root</literal> account
+        and assume that you have followed the standard security
+        precautions for installing a MySQL server, including setting a
+        strong <literal>root</literal> password. For more information,
+        see <xref linkend="default-privileges"/>.
+      </para>
+
+      <para>
+        It is worth taking into account that Cluster nodes do not make
+        use of the MySQL privilege system when accessing one another.
+        Setting or changing MySQL user accounts (including the
+        <literal>root</literal> account) effects only applications that
+        access the SQL node, not interaction between nodes.
+      </para>
+
+      <para>
+        If you did not modify the <literal>ENGINE</literal> clauses in
+        the table definitions prior to importing the SQL script, you
+        should run the following statements at this point:
+      </para>
+
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>ALTER TABLE City ENGINE=NDBCLUSTER;</userinput>
@@ -1511,34 +1551,12 @@
 mysql&gt; <userinput>ALTER TABLE CountryLanguage ENGINE=NDBCLUSTER;</userinput>
 </programlisting>
 
-          <para>
-            Note that we simply use the MySQL server's default
-            <literal>root</literal> account with its empty password
-            here. Of course, in a production setting, you should
-            <emphasis>always</emphasis> follow the standard security
-            precautions for installing a MySQL server, including the
-            setting of a strong <literal>root</literal> password and
-            creation of a user account with only those privileges
-            required to accomplish the tasks necessary for that user.
-            For more information about these, see
-            <xref linkend="privilege-system"/>.
-          </para>
+      <para>
+        Selecting a database and running a <command>SELECT</command>
+        query against a table in that database is also accomplished in
+        the usual manner, as is exiting the MySQL Monitor:
+      </para>
 
-          <para>
-            It is worth taking into account that Cluster nodes do not
-            make use of the MySQL privileges system when accessing one
-            another, and setting or changing MySQL user accounts
-            (including the <literal>root</literal> account) has no
-            effect on interaction between nodes, only on applications
-            accessing the SQL node.
-          </para>
-
-          <para>
-            Selecting a database and running a <command>SELECT</command>
-            query against a table in that database is also accomplished
-            in the usual manner, as is exiting the MySQL Monitor:
-          </para>
-
 <programlisting>
 mysql&gt; <userinput>USE world;</userinput>
 mysql&gt; <userinput>SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5;</userinput>
@@ -1556,17 +1574,18 @@
 mysql&gt; <userinput>\q</userinput>
 Bye
 
-shell&gt;<userinput/>
+shell&gt;
 </programlisting>
 
-          <para>
-            Applications using MySQL can use standard APIs. It is
-            important to remember that your application must access the
-            SQL node, and not the MGM or storage nodes. This brief
-            example shows how we might execute the same query shown
-            earlier using PHP 5's <literal>mysqli</literal> extension
-            running on a Web server elsewhere on the network:
-          </para>
+      <para>
+        Applications that use MySQL can employ standard APIs to access
+        NDB tables. It is important to remember that your application
+        must access the SQL node, and not the MGM or storage nodes. This
+        brief example shows how we might execute the
+        <literal>SELECT</literal> statement just shown by using PHP 5's
+        <literal>mysqli</literal> extension running on a Web server
+        elsewhere on the network:
+      </para>
 
 <programlisting>
 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
@@ -1626,35 +1645,18 @@
 &lt;/html&gt;
 </programlisting>
 
-          <para>
-            We assume that the process running on the Web server can
-            reach the IP address of the SQL node.
-          </para>
+      <para>
+        We assume that the process running on the Web server can reach
+        the IP address of the SQL node.
+      </para>
 
-          <para>
-            In a similar fashion, you can use the MySQL C API, Perl-DBI,
-            Python-mysql, or MySQL AB's own Connectors to perform the
-            tasks of data definition and manipulation just as you would
-            normally with MySQL.
-          </para>
-        </listitem>
+      <para>
+        In a similar fashion, you can use the MySQL C API, Perl-DBI,
+        Python-mysql, or MySQL AB's own Connectors to perform the tasks
+        of data definition and manipulation just as you would normally
+        with MySQL.
+      </para>
 
-        <listitem>
-          <para>
-            Also remember that <emphasis>each <literal>NDB</literal>
-            table must have a primary key</emphasis>. If no primary key
-            is defined by the user when a table is created, the
-            <literal>NDB Cluster</literal> storage engine will
-            automatically generate a hidden one.
-            (<emphasis role="bold">Note</emphasis>: This hidden key
-            takes up space just as does any other table index. It is not
-            uncommon to encounter problems due to insufficient memory
-            for accommodating these automatically created keys.)
-          </para>
-        </listitem>
-
-      </itemizedlist>
-
     </section>
 
     <section id="multi-shutdown-restart">
@@ -2277,9 +2279,18 @@
 </programlisting>
 
         <para>
-          There are six different sections in this configuration file:
+          Note that each node has its own section in the
+          <filename>config.ini</filename>. For instance, this cluster
+          has two data nodes, so the preceding configuration file
+          contains two <literal>[NDBD]</literal> sections defining these
+          nodes.
         </para>
 
+        <para>
+          There are six different sections in that you can use in the
+          <filename>config.ini</filename> configuration file:
+        </para>
+
         <itemizedlist>
 
           <listitem>
@@ -2331,15 +2342,11 @@
         </itemizedlist>
 
         <para>
-          Note that each node has its own section in the
-          <filename>config.ini</filename>. For instance, this cluster
-          has two data nodes, so the configuration file contains two
-          sections defining these nodes.
-        </para>
-
-        <para>
           You can define <literal>DEFAULT</literal> values for each
-          section. All Cluster parameter names are case-insensitive.
+          section. All Cluster parameter names are case-insensitive,
+          which differs from parameters specified in
+          <filename>my.cnf</filename> or <filename>my.ini</filename>
+          files.
         </para>
 
       </section>
@@ -2350,18 +2357,19 @@
 
         <para>
           With the exception of the MySQL Cluster management server
-          (<command>ndb_mgmd</command>), each node making up a MySQL
-          Cluster requires a <firstterm>connectstring</firstterm> which
-          points to the management server's location. This is used in
-          establishing a connection to the management server as well as
-          in performing other tasks depending on the node's role in the
-          cluster. The syntax for a connectstring is as follows:
+          (<command>ndb_mgmd</command>), each node that is part of a
+          MySQL Cluster requires a <firstterm>connectstring</firstterm>
+          that points to the management server's location. This
+          connectstring is used in establishing a connection to the
+          management server as well as in performing other tasks
+          depending on the node's role in the cluster. The syntax for a
+          connectstring is as follows:
         </para>
 
 <programlisting>
 &lt;connectstring&gt; :=
     [&lt;nodeid-specification&gt;,]&lt;host-specification&gt;[,&lt;host-specification&gt;]
-    
+
 &lt;nodeid-specification&gt; := <replaceable>node_id</replaceable>
 
 &lt;host-specification&gt; := <replaceable>host_name</replaceable>[:<replaceable>port_num</replaceable>]

Thread
svn commit - mysqldoc@docsrva: r1170 - in trunk: . refman-4.1 refman-5.0 refman-5.1paul1 Feb