Reference: Upgrading from MySQL 5.7 to 8.0

Note:

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.

Note:

The following process is an example of how to upgrade in-place by using Ubuntu 22.04.

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

  2. Update and upgrade all installations.

    apt-get update
    apt-get upgrade
  3. 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
  4. 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
  5. 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
  6. Install the latest version of MySQL 8.0.

    apt-get install mysql-server
  7. Verify the MySQL 8.0 service status.

    systemctl status mysql.service
  8. 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
  9. Apply the changes that you made to the CR file.

    kubectl apply -f /opt/turbonomic/kubernetes/operator/deploy/crds/charts_v1alpha1_xl_cr.yaml
  10. 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