<div id="docs-body">
 <div class="section">
  <div class="titlepage">
   <div>
    <div>
     <h2 class="title">
      <a name="upgrade-binary-package">
      </a>
      3.7 Upgrading MySQL Binary or Package-based Installations on Unix/Linux
     </h2>
    </div>
   </div>
  </div>
  <p>
   This section describes how to upgrade MySQL binary and
      package-based installations on Unix/Linux. In-place and logical
      upgrade methods are described.
  </p>
  <div class="itemizedlist">
   <ul class="itemizedlist" style="list-style-type: disc; ">
    <li class="listitem">
     <p>
      <a class="xref" href="upgrade-binary-package.html#upgrade-procedure-inplace" title="In-Place Upgrade">
       In-Place Upgrade
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="upgrade-binary-package.html#upgrade-procedure-logical" title="Logical Upgrade">
       Logical Upgrade
      </a>
     </p>
    </li>
    <li class="listitem">
     <p>
      <a class="xref" href="upgrade-binary-package.html#upgrading-cluster" title="MySQL Cluster Upgrade">
       MySQL Cluster Upgrade
      </a>
     </p>
    </li>
   </ul>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h3 class="title">
       <a name="upgrade-procedure-inplace">
       </a>
       In-Place Upgrade
      </h3>
     </div>
    </div>
   </div>
   <p>
    An in-place upgrade involves shutting down the old MySQL server,
        replacing the old MySQL binaries or packages with the new ones,
        restarting MySQL on the existing data directory, and upgrading
        any remaining parts of the existing installation that require
        upgrading. For details about what may need upgrading, see
    <a class="xref" href="upgrading-what-is-upgraded.html" title="3.4 What the MySQL Upgrade Process Upgrades">
     Section 3.4, “What the MySQL Upgrade Process Upgrades”
    </a>
    .
   </p>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     If you are upgrading an installation originally produced by
          installing multiple RPM packages, 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.
    </p>
    <p>
     For some Linux platforms, MySQL installation from RPM or
          Debian packages includes systemd support for managing MySQL
          server startup and shutdown. On these platforms,
     <a class="link" href="mysqld-safe.html" title="6.3.2 mysqld_safe — MySQL Server Startup Script">
      <span class="command">
       <strong>
        mysqld_safe
       </strong>
      </span>
     </a>
     is not installed. In such
          cases, use systemd for server startup and shutdown instead of
          the methods used in the following instructions. See
     <a class="xref" href="using-systemd.html" title="2.5.9 Managing MySQL Server with systemd">
      Section 2.5.9, “Managing MySQL Server with systemd”
     </a>
     .
    </p>
    <p>
     For upgrades to MySQL Cluster installations, see also
     <a class="xref" href="upgrade-binary-package.html#upgrading-cluster" title="MySQL Cluster Upgrade">
      MySQL Cluster Upgrade
     </a>
     .
    </p>
   </div>
   <p>
    To perform an in-place upgrade:
   </p>
   <div class="orderedlist">
    <ol class="orderedlist" type="1">
     <li class="listitem">
      <p>
       Review the information in
       <a class="xref" href="upgrade-before-you-begin.html" title="3.1 Before You Begin">
        Section 3.1, “Before You Begin”
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       Ensure the upgrade readiness of your installation by
            completing the preliminary checks in
       <a class="xref" href="upgrade-prerequisites.html" title="3.6 Preparing Your Installation for Upgrade">
        Section 3.6, “Preparing Your Installation for Upgrade”
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       If you use XA transactions with
       <code class="literal">
        InnoDB
       </code>
       ,
            run
       <a class="link" href="xa-statements.html" title="15.3.8.1 XA Transaction SQL Statements">
        <code class="literal">
         XA
            RECOVER
        </code>
       </a>
       before upgrading to check for uncommitted
            XA transactions. If results are returned, either commit or
            rollback the XA transactions by issuing an
       <a class="link" href="xa-statements.html" title="15.3.8.1 XA Transaction SQL Statements">
        <code class="literal">
         XA
            COMMIT
        </code>
       </a>
       or
       <a class="link" href="xa-statements.html" title="15.3.8.1 XA Transaction SQL Statements">
        <code class="literal">
         XA
            ROLLBACK
        </code>
       </a>
       statement.
      </p>
     </li>
     <li class="listitem">
      <p>
       If you normally run your MySQL server configured with
       <a class="link" href="innodb-parameters.html#sysvar_innodb_fast_shutdown">
        <code class="literal">
         innodb_fast_shutdown
        </code>
       </a>
       set to
       <code class="literal">
        2
       </code>
       (cold shutdown), configure it to
            perform a fast or slow shutdown by executing either of these
            statements:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-sql"><div class="docs-select-all right" id="sa80129774"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token keyword">SET</span> <span class="token keyword">GLOBAL</span> innodb_fast_shutdown <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> <span class="token comment" spellcheck="true">-- fast shutdown</span>
<span class="token keyword">SET</span> <span class="token keyword">GLOBAL</span> innodb_fast_shutdown <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token comment" spellcheck="true">-- slow shutdown</span></code></pre>
      </div>
      <p>
       With a fast or slow shutdown,
       <code class="literal">
        InnoDB
       </code>
       leaves its undo logs and data files in a state that can be
            dealt with in case of file format differences between
            releases.
      </p>
     </li>
     <li class="listitem">
      <p>
       Shut down the old MySQL server. For example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa41839456"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqladmin <span class="token property">-u</span> root <span class="token property">-p</span> shutdown</code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       Upgrade the MySQL binaries or packages. If upgrading a
            binary installation, unpack the new MySQL binary
            distribution package. See
       <a class="xref" href="binary-installation.html#binary-installation-unpack" title="Obtain and Unpack the Distribution">
        Obtain and Unpack the Distribution
       </a>
       . For
            package-based installations, install the new packages.
      </p>
     </li>
     <li class="listitem">
      <p>
       Start the MySQL 8.4 server, using the existing
            data directory. For example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa60239283"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqld_safe <span class="token constant">--user</span><span class="token attr-value"><span class="token punctuation">=</span>mysql</span> <span class="token constant">--datadir</span><span class="token attr-value"><span class="token punctuation">=</span><em class="replaceable">/path/to/existing-datadir</em></span> &amp;</code></pre>
      </div>
      <p>
       If there are encrypted
       <code class="literal">
        InnoDB
       </code>
       tablespaces, use the
       <a class="link" href="server-options.html#option_mysqld_early-plugin-load">
        <code class="option">
         --early-plugin-load
        </code>
       </a>
       option to
            load the keyring plugin.
      </p>
      <p>
       When you start the MySQL 8.4 server, it
            automatically detects whether data dictionary tables are
            present. If not, the server creates them in the data
            directory, populates them with metadata, and then proceeds
            with its normal startup sequence. During this process, the
            server upgrades metadata for all database objects, including
            databases, tablespaces, system and user tables, views, and
            stored programs (stored procedures and functions, triggers,
            and Event Scheduler events). The server also removes files
            that previously were used for metadata storage. For example,
            after upgrading from MySQL 8.3 to MySQL
            8.4, you may notice that tables no longer have
       <code class="filename">
        .frm
       </code>
       files.
      </p>
      <p>
       If this step fails, the server reverts all changes to the
            data directory. In this case, you should remove all redo log
            files, start your MySQL 8.3 server on the same
            data directory, and fix the cause of any errors. Then
            perform another slow shutdown of the 8.3
            server and start the MySQL 8.4 server to try
            again.
      </p>
     </li>
     <li class="listitem">
      <p>
       In the previous step, the server upgrades the data
            dictionary as necessary, making any changes required in the
       <code class="literal">
        mysql
       </code>
       system database between MySQL
            8.3 and MySQL 8.4, so that you
            can take advantage of new privileges or capabilities. It
            also brings the Performance Schema,
       <code class="literal">
        INFORMATION_SCHEMA
       </code>
       , and
       <code class="literal">
        sys
       </code>
       databases up to date for MySQL
            8.4, and examines all user databases for
            incompatibilities with the current version of MySQL.
      </p>
     </li>
    </ol>
   </div>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     The upgrade process does not upgrade the contents of the time
          zone tables. For upgrade instructions, see
     <a class="xref" href="time-zone-support.html" title="7.1.15 MySQL Server Time Zone Support">
      Section 7.1.15, “MySQL Server Time Zone Support”
     </a>
     .
    </p>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h3 class="title">
       <a name="upgrade-procedure-logical">
       </a>
       Logical Upgrade
      </h3>
     </div>
    </div>
   </div>
   <p>
    A logical upgrade involves exporting SQL from the old MySQL
        instance using a backup or export utility such as
    <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
     <span class="command">
      <strong>
       mysqldump
      </strong>
     </span>
    </a>
    , installing the new MySQL server,
        and applying the SQL to your new MySQL instance. For details
        about what may need upgrading, see
    <a class="xref" href="upgrading-what-is-upgraded.html" title="3.4 What the MySQL Upgrade Process Upgrades">
     Section 3.4, “What the MySQL Upgrade Process Upgrades”
    </a>
    .
   </p>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     For some Linux platforms, MySQL installation from RPM or
          Debian packages includes systemd support for managing MySQL
          server startup and shutdown. On these platforms,
     <a class="link" href="mysqld-safe.html" title="6.3.2 mysqld_safe — MySQL Server Startup Script">
      <span class="command">
       <strong>
        mysqld_safe
       </strong>
      </span>
     </a>
     is not installed. In such
          cases, use systemd for server startup and shutdown instead of
          the methods used in the following instructions. See
     <a class="xref" href="using-systemd.html" title="2.5.9 Managing MySQL Server with systemd">
      Section 2.5.9, “Managing MySQL Server with systemd”
     </a>
     .
    </p>
   </div>
   <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Warning
    </div>
    <p>
     Applying SQL extracted from a previous MySQL release to a new
          MySQL release may result in errors due to incompatibilities
          introduced by new, changed, deprecated, or removed features
          and capabilities. Consequently, SQL extracted from a previous
          MySQL release may require modification to enable a logical
          upgrade.
    </p>
    <p>
     To identify incompatibilities before upgrading to the latest
          MySQL 8.4 release, perform the steps described in
     <a class="xref" href="upgrade-prerequisites.html" title="3.6 Preparing Your Installation for Upgrade">
      Section 3.6, “Preparing Your Installation for Upgrade”
     </a>
     .
    </p>
   </div>
   <p>
    To perform a logical upgrade:
   </p>
   <div class="orderedlist">
    <ol class="orderedlist" type="1">
     <li class="listitem">
      <p>
       Review the information in
       <a class="xref" href="upgrade-before-you-begin.html" title="3.1 Before You Begin">
        Section 3.1, “Before You Begin”
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       Export your existing data from the previous MySQL
            installation:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-terminal"><div class="docs-select-all right" id="sa6003869"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqldump <span class="token property">-u</span> root <span class="token property">-p</span>
  <span class="token property">--add-drop-table</span> <span class="token property">--routines</span> <span class="token property">--events</span>
  <span class="token property">--all-databases</span> <span class="token property">--force</span> &gt; data-for-upgrade<span class="token punctuation">.</span>sql</code></pre>
      </div>
      <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
       <div class="admon-title">
        Note
       </div>
       <p>
        Use the
        <a class="link" href="mysqldump.html#option_mysqldump_routines">
         <code class="option">
          --routines
         </code>
        </a>
        and
        <a class="link" href="mysqldump.html#option_mysqldump_events">
         <code class="option">
          --events
         </code>
        </a>
        options with
        <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
         <span class="command">
          <strong>
           mysqldump
          </strong>
         </span>
        </a>
        (as shown above) if your
              databases include stored programs. The
        <a class="link" href="mysqldump.html#option_mysqldump_all-databases">
         <code class="option">
          --all-databases
         </code>
        </a>
        option
              includes all databases in the dump, including the
        <code class="literal">
         mysql
        </code>
        database that holds the system
              tables.
       </p>
      </div>
      <div class="important" style="margin-left: 0.5in; margin-right: 0.5in;">
       <div class="admon-title">
        Important
       </div>
       <p>
        If you have tables that contain generated columns, use the
        <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
         <span class="command">
          <strong>
           mysqldump
          </strong>
         </span>
        </a>
        utility provided with MySQL
              5.7.9 or higher to create your dump files. The
        <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
         <span class="command">
          <strong>
           mysqldump
          </strong>
         </span>
        </a>
        utility provided in earlier
              releases uses incorrect syntax for generated column
              definitions (Bug #20769542). You can use the Information
              Schema
        <a class="link" href="information-schema-columns-table.html" title="28.3.8 The INFORMATION_SCHEMA COLUMNS Table">
         <code class="literal">
          COLUMNS
         </code>
        </a>
        table to
              identify tables with generated columns.
       </p>
      </div>
     </li>
     <li class="listitem">
      <p>
       Shut down the old MySQL server. For example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa79385810"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqladmin <span class="token property">-u</span> root <span class="token property">-p</span> shutdown</code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       Install MySQL 8.4. For installation
            instructions, see
       <a class="xref" href="installing.html" title="Chapter 2 Installing MySQL">
        Chapter 2,
        <i>
         Installing MySQL
        </i>
       </a>
       .
      </p>
     </li>
     <li class="listitem">
      <p>
       Initialize a new data directory, as described in
       <a class="xref" href="data-directory-initialization.html" title="2.9.1 Initializing the Data Directory">
        Section 2.9.1, “Initializing the Data Directory”
       </a>
       . For
            example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa26439471"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqld <span class="token property">--initialize</span> <span class="token constant">--datadir</span><span class="token attr-value"><span class="token punctuation">=</span><em class="replaceable">/path/to/8.4-datadir</em></span></code></pre>
      </div>
      <p>
       Copy the temporary
       <code class="literal">
        'root'@'localhost'
       </code>
       password displayed to your screen or written to your error
            log for later use.
      </p>
     </li>
     <li class="listitem">
      <p>
       Start the MySQL 8.4 server, using the new data
            directory. For example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa26023672"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqld_safe <span class="token constant">--user</span><span class="token attr-value"><span class="token punctuation">=</span>mysql</span> <span class="token constant">--datadir</span><span class="token attr-value"><span class="token punctuation">=</span><em class="replaceable">/path/to/8.4-datadir</em></span> &amp;</code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       Reset the
       <code class="literal">
        root
       </code>
       password:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-terminal"><div class="docs-select-all right" id="sa58006044"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal"><span class="token prompt">$&gt; </span><span class="token command">mysql</span> <span class="token property">-u</span> root <span class="token property">-p</span>
Enter password<span class="token punctuation">:</span> ****  &lt;- enter temporary root password</code></pre>
      </div>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-sql"><div class="docs-select-all right" id="sa52898936"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-sql"><span class="token prompt">mysql&gt;</span> <span class="token keyword">ALTER</span> <span class="token keyword">USER</span> <span class="token function">USER</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">IDENTIFIED</span> <span class="token keyword">BY</span> <span class="token string">'<em class="replaceable">your new password</em>'</span><span class="token punctuation">;</span></code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       Load the previously created dump file into the new MySQL
            server. For example:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-terminal"><div class="docs-select-all right" id="sa91673434"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysql <span class="token property">-u</span> root <span class="token property">-p</span> <span class="token property">--force</span> &lt; data-for-upgrade<span class="token punctuation">.</span>sql</code></pre>
      </div>
      <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
       <div class="admon-title">
        Note
       </div>
       <p>
        It is not recommended to load a dump file when GTIDs are
              enabled on the server
              (
        <a class="link" href="replication-options-gtids.html#sysvar_gtid_mode">
         <code class="literal">
          gtid_mode=ON
         </code>
        </a>
        ), if your
              dump file includes system tables.
        <a class="link" href="mysqldump.html" title="6.5.4 mysqldump — A Database Backup Program">
         <span class="command">
          <strong>
           mysqldump
          </strong>
         </span>
        </a>
        issues DML instructions for
              the system tables which use the non-transactional MyISAM
              storage engine, and this combination is not permitted when
              GTIDs are enabled. Also be aware that loading a dump file
              from a server with GTIDs enabled, into another server with
              GTIDs enabled, causes different transaction identifiers to
              be generated.
       </p>
      </div>
     </li>
     <li class="listitem">
      <p>
       Perform any remaining upgrade operations:
      </p>
      <p>
       Shut down the server, then restart it with the
       <a class="link" href="server-options.html#option_mysqld_upgrade">
        <code class="option">
         --upgrade=FORCE
        </code>
       </a>
       option to
            perform the remaining upgrade tasks:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting language-terminal"><div class="docs-select-all right" id="sa42298997"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-terminal">mysqladmin <span class="token property">-u</span> root <span class="token property">-p</span> shutdown
mysqld_safe <span class="token constant">--user</span><span class="token attr-value"><span class="token punctuation">=</span>mysql</span> <span class="token constant">--datadir</span><span class="token attr-value"><span class="token punctuation">=</span><em class="replaceable">/path/to/8.4-datadir</em></span> <span class="token constant">--upgrade</span><span class="token attr-value"><span class="token punctuation">=</span>FORCE</span> &amp;</code></pre>
      </div>
      <p>
       Upon restart with
       <a class="link" href="server-options.html#option_mysqld_upgrade">
        <code class="option">
         --upgrade=FORCE
        </code>
       </a>
       , the server
            makes any changes required in the
       <code class="literal">
        mysql
       </code>
       system schema between MySQL 8.3 and MySQL
            8.4, so that you can take advantage of new
            privileges or capabilities. It also brings the Performance
            Schema,
       <code class="literal">
        INFORMATION_SCHEMA
       </code>
       , and
       <code class="literal">
        sys
       </code>
       schema up to date for MySQL
            8.4, and examines all user schemas for
            incompatibilities with the current version of MySQL.
      </p>
     </li>
    </ol>
   </div>
   <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
    <div class="admon-title">
     Note
    </div>
    <p>
     The upgrade process does not upgrade the contents of the time
          zone tables. For upgrade instructions, see
     <a class="xref" href="time-zone-support.html" title="7.1.15 MySQL Server Time Zone Support">
      Section 7.1.15, “MySQL Server Time Zone Support”
     </a>
     .
    </p>
   </div>
  </div>
  <div class="simplesect">
   <div class="titlepage">
    <div>
     <div class="simple">
      <h3 class="title">
       <a name="upgrading-cluster">
       </a>
       MySQL Cluster Upgrade
      </h3>
     </div>
    </div>
   </div>
   <p>
    The information in this section is an adjunct to the in-place
        upgrade procedure described in
    <a class="xref" href="upgrade-binary-package.html#upgrade-procedure-inplace" title="In-Place Upgrade">
     In-Place Upgrade
    </a>
    , for use if you are
        upgrading MySQL Cluster.
   </p>
   <p>
    A MySQL Cluster upgrade can be performed as a regular rolling
        upgrade, following the usual three ordered steps:
   </p>
   <div class="orderedlist">
    <ol class="orderedlist" type="1">
     <li class="listitem">
      <p>
       Upgrade MGM nodes.
      </p>
     </li>
     <li class="listitem">
      <p>
       Upgrade data nodes one at a time.
      </p>
     </li>
     <li class="listitem">
      <p>
       Upgrade API nodes one at a time (including MySQL servers).
      </p>
     </li>
    </ol>
   </div>
   <p>
    There are two steps to upgrading each individual
    <code class="literal">
     mysqld
    </code>
    :
   </p>
   <div class="orderedlist">
    <ol class="orderedlist" type="1">
     <li class="listitem">
      <p>
       Import the data dictionary.
      </p>
      <p>
       Start the new server with the
       <a class="link" href="server-options.html#option_mysqld_upgrade">
        <code class="option">
         --upgrade=MINIMAL
        </code>
       </a>
       option to
            upgrade the data dictionary but not the system tables.
      </p>
      <p>
       The MySQL server must be connected to
       <code class="literal">
        NDB
       </code>
       for this phase to complete. If any
       <code class="literal">
        NDB
       </code>
       or
       <code class="literal">
        NDBINFO
       </code>
       tables exist, and the server
            cannot connect to the cluster, it exits with an error
            message:
      </p>
      <div class="copytoclipboard-wrapper">
       <pre class="programlisting one-line language-none"><div class="docs-select-all right" id="sa79984991"><div class="copy-help left">Press ⌘+C to copy</div> <div class="right"><button class="clipboard-btn" title="Copy to Clipboard"><span class="icon-clipboard"></span></button></div></div><code class="language-none">Failed to Populate DD tables.</code></pre>
      </div>
     </li>
     <li class="listitem">
      <p>
       Upgrade the system tables by restarting each individual
       <a class="link" href="mysqld.html" title="6.3.1 mysqld — The MySQL Server">
        <span class="command">
         <strong>
          mysqld
         </strong>
        </span>
       </a>
       without the
       <a class="link" href="server-options.html#option_mysqld_upgrade">
        <code class="option">
         --upgrade=MINIMAL
        </code>
       </a>
       option.
      </p>
     </li>
    </ol>
   </div>
  </div>
 </div>
 <br/>
</div>
