# 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.
