After upgrading the operating system from Oracle Linux 8 to Oracle Linux 9, we encountered an issue with the MySQL repository used by Oracle GoldenGate Veridata. Although the Veridata environment and MySQL binaries remained unchanged, the MySQL client could no longer start and reported a missing shared library error for libncurses.so.5.
Oracle Linux 9 ships with newer ncurses libraries, while the MySQL 8.0.34 Commercial binary in this Veridata environment still depends on the older libncurses.so.5 and libtinfo.so.5 libraries. In this post, we will walk through the issue, identify the missing dependencies, enable the required Oracle Linux repository, install the compatibility libraries, and finally validate the Veridata MySQL repository connection.
Issue After Oracle Linux Upgrade
After upgrading from Oracle Linux 8 to Oracle Linux 9, connecting to the Veridata MySQL repository failed with the following error:
[root@gghub ~]# /ogg/veridata/mysql-commercial-8.0.34-linux-glibc2.17-x86_64-minimal/bin/mysql -u veridata -p -h 127.0.0.1 -P 3306
/ogg/veridata/mysql-commercial-8.0.34-linux-glibc2.17-x86_64-minimal/bin/mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[root@gghub ~]#
The same error occurred when running the MySQL client directly from the bin directory:
[root@gghub bin]# ./mysql -u veridata -p -h 127.0.0.1 -P 3306
./mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
[root@gghub bin]#
This indicated that the problem was not related to the MySQL repository database itself. The MySQL executable was unable to start because one of its required operating system shared libraries was unavailable.
Verify the Operating System and ncurses Libraries
First, we verified the Oracle Linux version and checked the available ncurses libraries.
[root@gghub bin]# cat /etc/os-release
ldconfig -p | grep ncurses
NAME="Oracle Linux Server"
VERSION="9.8"
ID="ol"
ID_LIKE="fedora"
VARIANT="Server"
VARIANT_ID="server"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Oracle Linux Server 9.8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:oracle:linux:9:8:server"
HOME_URL="https://linux.oracle.com/"
BUG_REPORT_URL="https://github.com/oracle/oracle-linux"
ORACLE_BUGZILLA_PRODUCT="Oracle Linux"
ORACLE_BUGZILLA_PRODUCT_VERSION=9.8
ORACLE_SUPPORT_PRODUCT="Oracle Linux"
ORACLE_SUPPORT_PRODUCT_VERSION=9.8
libncursesw.so.6 (libc6,x86-64) => /lib64/libncursesw.so.6
libncurses.so.6 (libc6,x86-64) => /lib64/libncurses.so.6
libncurses++w.so.6 (libc6,x86-64) => /lib64/libncurses++w.so.6
libncurses++.so.6 (libc6,x86-64) => /lib64/libncurses++.so.6
[root@gghub bin]#
The server was running Oracle Linux 9.8, and the output showed that version 6 of the ncurses libraries was available.
However, the MySQL binary required version 5.
Identify All Missing MySQL Libraries
Instead of troubleshooting only the library reported in the initial error, we used ldd to identify all unresolved shared-library dependencies for the MySQL executable.
[root@gghub bin]# ldd ./mysql | grep "not found"
libncurses.so.5 => not found
libtinfo.so.5 => not found
This identified two missing libraries:
libncurses.so.5
libtinfo.so.5
Therefore, even though the initial startup error mentioned only libncurses.so.5, both compatibility libraries were required by the MySQL executable.
Attempt to Install the Compatibility Package
The required libraries are provided through the ncurses compatibility package. We initially attempted to install ncurses-compat-libs directly:
[root@gghub bin]# dnf install ncurses-compat-libs
Last metadata expiration check: 1:31:57 ago on Sat 22 Aug 2026 11:25:57 PM IST.
No match for argument: ncurses-compat-libs
Error: Unable to find a match: ncurses-compat-libs
[root@gghub bin]#
The package could not be found because the repository containing it was not enabled on the Oracle Linux 9 server.
Enable the Oracle Linux 9 EPEL Repository
To make the required compatibility package available, we installed the Oracle Linux 9 EPEL release package.
[root@gghub bin]# dnf install oracle-epel-release-el9
Last metadata expiration check: 1:32:33 ago on Sat 22 Aug 2026 11:25:57 PM IST.
Dependencies resolved.
======================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================
Installing:
oracle-epel-release-el9 x86_64 1.0-1.el9 ol9_baseos_latest 14 k
Transaction Summary
======================================================================================================================================================================
Install 1 Package
Total download size: 14 k
Installed size: 18 k
Is this ok [y/N]: y
Downloading Packages:
oracle-epel-release-el9-1.0-1.el9.x86_64.rpm 34 kB/s | 14 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 33 kB/s | 14 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : oracle-epel-release-el9-1.0-1.el9.x86_64 1/1
Verifying : oracle-epel-release-el9-1.0-1.el9.x86_64 1/1
Installed:
oracle-epel-release-el9-1.0-1.el9.x86_64
Complete!
[root@gghub bin]#
The Oracle Linux 9 EPEL repository configuration was installed successfully.
Install ncurses Compatibility Libraries
After enabling the required repository, we retried the ncurses compatibility package installation.
[root@gghub bin]# dnf install ncurses-compat-libs
Oracle Linux 9 EPEL Packages for Development (x86_64) 80 kB/s | 37 MB 07:51
Last metadata expiration check: 0:06:17 ago on Sun 23 Aug 2026 01:01:42 AM IST.
Dependencies resolved.
======================================================================================================================================================================
Package Architecture Version Repository Size
======================================================================================================================================================================
Installing:
ncurses-compat-libs x86_64 6.2-8.20210508.1.el9 ol9_developer_EPEL 330 k
Transaction Summary
======================================================================================================================================================================
Install 1 Package
Total download size: 330 k
Installed size: 1.0 M
Is this ok [y/N]: y
Downloading Packages:
ncurses-compat-libs-6.2-8.20210508.1.el9.x86_64.rpm 26 kB/s | 330 kB 00:12
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 26 kB/s | 330 kB 00:12
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : ncurses-compat-libs-6.2-8.20210508.1.el9.x86_64 1/1
Running scriptlet: ncurses-compat-libs-6.2-8.20210508.1.el9.x86_64 1/1
Verifying : ncurses-compat-libs-6.2-8.20210508.1.el9.x86_64 1/1
Installed:
ncurses-compat-libs-6.2-8.20210508.1.el9.x86_64
Complete!
[root@gghub bin]#
This time the package was successfully located in the ol9_developer_EPEL repository and installed.
Verify libncurses.so.5 and libtinfo.so.5
After installing the compatibility package, we verified whether both required libraries were now available.
[root@gghub bin]# ldconfig -p | grep -E 'libncurses.so.5|libtinfo.so.5'
libtinfo.so.5 (libc6,x86-64) => /lib64/libtinfo.so.5
libncurses.so.5 (libc6,x86-64) => /lib64/libncurses.so.5
[root@gghub bin]#
The output confirmed that both required libraries were now available under /lib64.
Validate MySQL Dependencies
Before attempting another connection, we ran ldd again to make sure there were no remaining unresolved dependencies.
[root@gghub bin]# ldd ./mysql | grep "not found"
[root@gghub bin]#
No output was returned.
This confirmed that the MySQL executable could now resolve all of its required shared libraries.
Verify the Veridata MySQL Repository Connection
Finally, we attempted the same connection to the MySQL repository used by Oracle GoldenGate Veridata.
[root@gghub bin]# /ogg/veridata/mysql-commercial-8.0.34-linux-glibc2.17-x86_64-minimal/bin/mysql -u veridata -p -h 127.0.0.1 -P 3306
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.34-commercial MySQL Enterprise Server - Commercial
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| VDUSER_VERIDATA |
| information_schema |
| performance_schema |
+--------------------+
3 rows in set (0.01 sec)
mysql> use VDUSER_VERIDATA;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql>
The MySQL client now started successfully, and we were able to connect to and access the Veridata repository database.
Root Cause
The issue occurred after upgrading from Oracle Linux 8 to Oracle Linux 9 because the MySQL 8.0.34 binary used by Oracle GoldenGate Veridata required the older libncurses.so.5 and libtinfo.so.5 libraries. These compatibility libraries were not available by default on Oracle Linux 9.
Conclusion
After the Oracle Linux 8 to Oracle Linux 9 upgrade, the Veridata MySQL repository became inaccessible because the MySQL 8.0.34 binary required libncurses.so.5 and libtinfo.so.5, which were not available by default on the upgraded operating system.
Enabling the Oracle Linux 9 EPEL repository and installing ncurses-compat-libs restored the required compatibility libraries. Once the missing dependencies were resolved, the MySQL client started normally and the Oracle GoldenGate Veridata repository was accessible again.