Reference: Upgrading from MySQL 5.7 to 8.0
MySQL version 5.7 reached EOL on 21 October 2023 and is no longer supported. Turbonomic supports MySQL 8.0.x as an alternative database server for MariaDB for running Turbonomic.
If you utilized MySQL 5.7 as your external database and you need to upgrade to MySQL 8.0, follow the process outlined to perform an in-place upgrade.
The following process is an example of how to upgrade in-place by using Ubuntu 22.04.
-
Run the
upgrade-precheck.sh
script.You can use this script to make sure that your current installation of Turbonomic is ready to update. It is recommended that you run this script before updating your installation (see Checking Before Updating).
Note:Any table corruptions must be resolved with IBM support before you upgrade.
-
Update and upgrade all installations.
apt-get update
apt-get upgrade
-
Remove the existing MySQL 5.7 installation.
apt-get remove mysql-server apt-get autoremove dpkg -l | grep mysql | grep ii apt-get remove mysql-client mysql-common mysql-community-client mysql-community-server
-
Edit your Configuration File to include MySQL 8.0 configurations.
Open the Configuration File (
/etc/mysql/my.cnf
) in an editor, change the values for these system variables, and then save your changes.event_scheduler = ON sql_mode = ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION max_allowed_packet = 1GB skip-log-bin log_bin_trust_function_creators = ON explicit_defaults_for_timestamp = OFF character-set-server = utf8mb4 collation-server = utf8mb4_general_ci
-
Backup the updated MySQL Configuration Files in preparation for MySQL 8.0.
cp /etc/mysql/my.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
cp /etc/mysql/my.cnf /etc/mysql/mysql.cnf
-
Install the latest version of MySQL 8.0.
apt-get install mysql-server
-
Verify the MySQL 8.0 service status.
systemctl status mysql.service
-
Reconfigure Turbonomic to use the MySQL 8.0 instance.
Open the Custom Resource (CR) file for editing.
kubectl edit /opt/turbonomic/kubernetes/operator/deploy/crds/charts_v1alpha1_xl_cr.yaml
Modify the CR file to replace MySQL 5.7 values with 8.0, and include the
enableSecureDBConnection: true
property.global: repository: icr.io/cpopen/turbonomic tag: 8.15.0 externalIP: nginx_host_IP externalDbIP: MySQL_8.0_host_IP externalTimescaleDBIP: nginx_host_IP spec: properties: global: enableSecureDBConnection: true dbRootUsername: MySQL_8.0_root_username dbRootPassword: MySQL_8.0_complex_password
-
Apply the changes that you made to the CR file.
kubectl apply -f /opt/turbonomic/kubernetes/operator/deploy/crds/charts_v1alpha1_xl_cr.yaml
-
Restart auth and all other DB-based components.
kubectl scale --replicas=0 deployment auth history action-orchestrator clustermgr cost group market plan-orchestrator suspend repository server-power-modeler topology-processor