# MySQL Upgrade to 8.4.x  (Windows)

This guide outlines the step-by-step process to upgrade MySQL to version 8.4.x on a Windows system. It includes prerequisites, backup instructions, installation steps, database restoration, and post-upgrade validation to ensure a smooth and secure transition with data integrity preserved.

## Prerequisites

Ensure the following before proceeding:

* Operating System: Windows 10 or later
* Administrative privileges on the system
* Active internet connection (for downloading installers)
* Basic knowledge of the Windows command line and navigation
* Ensure MySQL 8.0 is installed and running
* Sufficient disk space for backup and restoration

## Steps Involved

1. **Verify Database Size**
   * Check Database Size
     * To estimate the backup size, run the following query.

       ```sql
       SELECT table_schema AS "ovaledgedb",
              ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS "DB Size in MB"
       FROM information_schema.tables
       GROUP BY table_schema;
       ```

       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdI1D2bwbQx_vbp1ilAlaW2KoEYZAW-g8WKvOEMb4CHeSTEJt6yNskOkBOnue0Z3ND4wnAAjsDH8QmUT3yVGNjfiD6eH9LxTUL3zv371nJcslBZMgOsVHcAL5zjFT5LqDPAjjkUuA?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

2. **Create Backup using mysqldump**
   * Take the MySQL backup, i.e., mysqldump, using the below command.

     ```cmd
     mysqldump -u root -p ovaledgedb > C:\backup\ovaledgedb_2025.sql
     ```

     \
     \&#xNAN;*Sample Reference Screenshot:*

     <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcm9vCyT8irCwzc1VWOi7Zgj_VUJ_P7orKrfgrbwaAoshY0_K0BwiAG2wCTdnv3YciKqIFA7FNn-dczyX1t0gL0PgPJ358RMM-PSayyIdoUbeBS1TRTrcvBlxDBprjw0GCTp3kb?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

3. **Stop Existing MySQL Services**

   Stop the MySQL 8.0 services as shown below:

   * Open the Start menu, search for **Services**, and click on it to launch the Services window.

     <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdYSp5i6VwHzrRyO1CBgApRNpYAdToqZcX9GtH-rbZUsLv8wWm1cf13PYXeVD18dm2UcuuyPzt4q5PjJuDGIOCo16LFuk8ah_ayNZHZGLo_lf8fA8IBmifFUlWLCbLBv5v0IcrAbQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
   * In the Services window, locate **MySQL80**, right-click it, and select **Stop** to halt the service.

     <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcBSDD7vTj2NZPxyELHCPFVCqzX2XP9Kcf9uctsYe_yd0XBaOnc8vdsSU2IwZkeGfwqGPPBsfSVBue44ATp2TS1kwMA1oERzt_aC7ai_Wu_n9eTj-rW_Mp_h2X-Gq6K37HTug3vXQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

4. **Download and Install MySQL 8.4.x**
   * Download Installer
     * Download the latest Windows MSI Installer from:\
       [https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.5-winx64.msi](https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.5-winx64.msi?utm_source=chatgpt.com)

       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXev2l_TXDH7itFkClZhAkYgt6-Y5OHWQh8O4W7AugTxFhNrmi-x6BoWd0vYDG0tLgjzK7K5p9xuxp2YYO2OFNqxNMJmHbXJCjU79L3lt3OcUNrdxO4NkfHDBzgCXmrQRSyZDct9Jw?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

   * Run the Installer and Follow the Setup
     * Double-click the **MySQL 8.4.x.msi** file to launch the setup wizard. Click **Next**.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfBItXDgNpqd009DQsg3Cxv7yJshdpngygJX89uvPeV6Xc44QfiW_b3myUPVCb4JhyKGz97PQkW6uXGfvAZ8xOPritTnLVd7R1YuzqyvO3azW9arQvrjaf6Y4xMf16CmB3dFZOn3w?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **MySQL Server 8.4 Setup** page, review and accept the terms of the License Agreement, then click **Next** to continue.

       <div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcrd61G1VQAgrKxnJ-5B4SPeB7NNXatfky9hPhS73pZ8qBSgMsCgAGwqX0at3cyd3FqXGhi6mehA7Z6KYy8OqSobdDEz_kmPoTyVvC_KSL6enDHvx1YbcV46P0uHF3KY89cPdGXqQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure></div>
     * On the **Choose Setup Type** page, select **Complete**, and then click **Next** to proceed.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd9Nb9HTW9og31_uNkN59bkO_uNHC3ovj4K7tgjkRa1dtvOfY_wPR8sKzkx9a1RYd-XZibuiS-xasdEMigrWLFXP68W-1rREMFNPiq9FiRCj4JbIesH7IaRFesSpzXepDeLL88w2g?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Ready to Install MySQL Server 8.4** page, click **Install** to begin the installation.

       <div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcRRqLEv6xA9GUut2VQrfxfPLgHyiN8GzvlxJxA9DhHsmRtALSLQse3Jv5wcTPCFkxscsEvPy58erpDpd0NmIfF3a_Am2q8kBCYa2tmbGjbYQBt3gEdEd3FiSZWXW_bzooOrAr5xw?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure></div>
     * Wait for the installation to finish, then click **Finish**.

       <div align="left"><figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdwkGNcYyWWXKAi75rigiO4L5k9pYq2Zu9NZR5eVkZAHFYlzTLElFosLL2JHp3XaXhMFu8Ey74Z6xaqH0jBuN3S7EwfW4_bHWVyHFerEvool0SiH_7qcrbP_S6Ql2sZDV-aRbMV?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure></div>
     * On the **Welcome** section of the MySQL Configurator page, click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdiqGfmzHA-B4CNh3Jjyfr-ZElOrAuk6k19HQB1GVCVrLX5O9lY5Z0MJ9k0XFOcVGOBPEUO88SqqdB0Fix6GIDdY3-00r1GVQUZBeuT0XlRXdzds2bO5JxF_a_WHwGoW_u1xp-M?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Data Directory** page, review the default directory path. If needed, modify the data directory location. Click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXen2YjUsZL5s-6Dp-hY6732aKIoYsVRIFX8Gs8rPUnbfPLT_dAOwbjnieoW874rot9ZHlDkalYqLe74hM5hbi1wntRI3ZzNt9pBIoot7r7UAIfLpXH13mEjp4wswlaC_Gdbcp_AkQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Type and Networking** section, use the default MySQL port (3306). If necessary, you may change the port number. Click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdVkkhhSGmGmdaRYrodxB4m2PvtxhrAeeZrgyxs0mrOTJfW7RBrXfIctmnIdvnQdaTK5HC-i_owNtDMTqtAQhJiW3RSvgcu8mwn0RlODGaiDy_Z8MyvGBI_Lsgh3RJU0tqbdkZoyQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * In the **Accounts and Roles** section, set the root password. Click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeeLmtrVlxGSmVpF8IxQdGKu5578UqfaqS2_26wmfVmzOXr6L935H6DQqnNamQbU3CEyxP1KzVG9llUb_xa4kK6mRG1p6X8VtnEqiJ0Ya6rA6CAXgJdig4g9-PhwX19jiloYCJRtQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Windows Service** page, keep the default settings and click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXciUd_rH5K3Iv9z9UnEzBqJQox0LO-nBZ-zXlLjJfuzV30Zp1zLsun4hZpPiZaQ-VIjL8bXEjyohju--hYZpqjmUofKVBFWNqL3Df8GQrihNao52DLFS_Lw3jRRdkwoOMyzVyRPDA?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Server File Permissions** page, review the settings and click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeclduVpi_5p6f_YI8t2goTBTSYQyVq3zctidT55zQg7h0BM40r5IWWdKdlyE00Ohpwv4UpBPkKXOTqqb5xEfspmNxNhiEzH2nWr3qNjE8FcbbdhKSMkFCmgucV5CWRl0v68AQC?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Sample Databases** section, optionally select any sample databases to install. Click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfgkQ1IYYp7kwJAbtbKvS3i2m-i-N5QWnDy7fS0DjCmrm5Oxv6FjWmbGnnwMVirhg36sKigxPfd7mssbe1KBrcU4dWW5mD143eZSHKu3onB55uiHO6cpj8UAM9HWyh1CsgTjt2zig?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * On the **Apply Configuration** section, review the default settings and click **Execute** to begin the configuration process.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsaJ1ViCRL0G-nXxI9prEcRWJhM3cyqg8_e1n3bYODpHxqK1UbYsVwSwa3NvYv3FNOzi7grDqxL1EMwLGGL8yh6PF1nTjKGhWVDGoWrIMYZPLm4e2T5yGjWQU_epdmIJgn5sbb7Q?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * The MySQL packages will now be installed. Once the installation is complete, click **Next** to continue.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeq6pEPLaB4Cm8h4PbGs0EX6gW8qHh_gC-PIlSjhFLohlW_mqDgudFozSy1d9e9_qiMAOaiaDCghYCOKYt0AoxhqYWH7E7gM1o1U8ubWoxG4h9fVZWiJbmQTQpNQnuuqjqkICd7?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
     * After the configuration completes successfully, click **Finish** to close the setup wizard.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcfQNLNw0rv9NeYfP3aJoa7AVa_Tk0LG0t-LvzlVKKc3yi2w7_VKHZUblny3J_MH_4_fwX61OSTdohkamAvBAvlM-j0NG6fWqsPBL-Nck3QTk0c7AYlGddxHdYFgeJAEKsW2j5-?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

5. **Post-Installation Tasks**
   * Verify MySQL 8.4 Service
     * Open the **Start menu**, type **Services** in the search bar, and press Enter to open the Services window.
     * Confirm the new MySQL service is listed as **MySQL84** under Services and is running.

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXc-ShLL5qXVyBHbdWDNR_awTU5cjLuqzFeEcsWf_tYxx5LZEgIVoAjQL_NwfhVfXsLfDyDHw30x9nVxLu0ZFIBFHkkT2mWvhTm4jj1acbo_aDk8ZW04BiyWXIiQqUgoM7pB8D6AmA?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

6. **Restore Database**
   * Create OvalEdge Database and OvalEdge User
     * Connect to MySQL 8.4 using the MySQL terminal or Workbench and run the following Queries:

       ```sql
       CREATE DATABASE ovaledgedb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

       CREATE USER IF NOT EXISTS 'ovaledge'@'localhost' IDENTIFIED BY '<password>';
       CREATE USER IF NOT EXISTS 'ovaledge'@'%' IDENTIFIED BY '<password>';

       GRANT ALL ON ovaledgedb.* TO 'ovaledge'@'localhost';
       GRANT ALL ON ovaledgedb.* TO 'ovaledge'@'%';
       USE ovaledgedb;
       ```

       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXdcbLGFAEDxTuwE4wc1Jc0m_GdAU140WVSnxZHCMe-AYEAH57gSRZwBH_8cjwSYVIbnWPNBMDvj4NGTg-KbJ1RbXHIw0piATMno9B4aGAXE-o0xv8O0_AVzuIDn63naiyocCQg4IA?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>
   * Import the Backup Dump
     * Run the dump file, i.e., a backup of MySQL using the source query.

       ```sql
       USE ovaledgedb;
       SOURCE C:/backup/ovaledgedb_2025.sql;
       ```

       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXeKOFXmOKTF04sEUzgMfuC9pA_HcDGSXP20jWurP3cvyn0-2HqTdKoosJtqHRUNbttR0zxoQ1innRftK0_F8zgWRT8xqseR3er_45lR_WHy-Mul_r2S-tNJZjSgF379juz4fxryDA?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

7. **Post-Restoration Validation**
   * Verify Database Restoration
     * Once MySQL dump restoration is complete, execute the following queries to verify the availability of databases.

       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfsBKdTPy2crLQIhlajxu9cRmAs9N4Dr3FWPvnxfEiozH361VG_snI5Tu4cHmrOnR99yeNOGWdPr5FucJ-7avJOwslrzmW9eD7n1sdJj1f-mOv2dulRZkvEX370Nnu4rwaWucNAOQ?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

   * Check the restored database size

     * Execute the query below to check the database size.

       ```sql
       SELECT table_schema AS "ovaledgedb",
              ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) AS "DB Size in MB"
       FROM information_schema.tables
       GROUP BY table_schema;
       ```

       \
       \
       \&#xNAN;*Sample Reference Screenshot:*

       <figure><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXcXYXiytvG4WF9EGNZfT_EPorshxUdydCAMHHGiaCsOvhtiEtANGgcy7zGf0iCtyv8V0tTBpJRjmjAO8cKQp6gwbQRuTu_MngIWWmloPMAmcjMiNlkDJ-syKMEplIGTwIXwJBkGBw?key=a9YuVvLPuWmRYusJuvzYdA" alt=""><figcaption></figcaption></figure>

   * Re-point Application and Start Services
     * Point the OvalEdge application to the upgraded MySQL instance.
     * Start the Tomcat or other application services.
     * Validate application connectivity and data accuracy.

***

Copyright © 2025, OvalEdge LLC, Peachtree Corners, GA, USA.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ovaledge.com/release8.1/deployment-and-maintenance/upgrade/mysql-upgrade-to-8.4.x-windows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
