Skip to main content

MySQL to 8.0.11 in place upgrade

MySQL in place upgrade from 5.6.11 to 8.0.11:
 

01. Install MySQL 5.7 latest version on MySQL database server such as 5.7.22.
02. Initialize MySQL
    mysqld --defaults-file=/etc/my.cnf --initialize-insecure &

03. Start MySQL daemon
    mysqld --defaults-file=/etc/my.cnf &

04. Configure systemd to start and stop Mysql daemon
      * Shutdown mysqld
          mysqladmin -uroot -S/var/lib/mysql/mysql.sock shutdown
       * Edit file /usr/lib/systemd/system/mysqld.service and add following
        [Service]
        PIDFile=/var/lib/mysql/mysql.pid
        ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid-file=/var   /lib/mysql/mysql.pid $MYSQLD_OPTS
      * sudo systemctl daemon-reload
      * sudo systemctl start mysqld
      * sudo systemctl enable mysqld
  
05. Get MySQL dump from source server using following command
    mysqldump -uroot –p<passwrod> --databases <db_name> > /tmp/bkup.sql
06. Restore MySQL dump of 5.6.11 to 5.7.22
    mysql -uroot -p<password> -S/var/lib/mysql/mysql.sock < /tmp/bkup.sql > /tmp/bkup.log 2>&1

07. Upgrade MySQL database using mysqlupgrade
    mysql_upgrade -uroot -p<password> --socket=/var/lib/mysql/mysql.sock --verbose
   
    At this point MySQL database is upgraded from 5.6.11 to 5.7.22
    

08. Upgrade MySQL database software to 8.0.11 using yum repository
      * Install mysql80 community release el7 no arch
         yum install mysql80-community-release-el7-1.noarch.rpm
      * Check /etc/yum.repos.d/mysql-community.repo and  make sure mysql80-community Server is enabled.
        [mysql80-community]
        name=MySQL 8.0 Community Server
        baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
        enabled=1
        gpgcheck=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
  09. Stop mysqld
        # systemctl stop mysqld
         * Update MySQL software from 5.7.22 to 8.0.11
        yum update mysql-server
        * Check version of MySQL software installed
        yum list installed | grep "^mysql"
10.    Upgrade MySQL database
    mysql_upgrade -uroot -p<password> --socket=/var/lib/mysql/mysql.sock --verbose 


Ref.: 
https://dev.mysql.com/doc/refman/8.0/en/updating-yum-repo.html
https://dev.mysql.com/doc/refman/8.0/en/upgrading-strategies.html#upgrade-procedure-inplace

Comments

Popular posts from this blog

MySQL InnoDB cluster troubleshooting | commands

Cluster Validation: select * from performance_schema.replication_group_members; All members should be online. select instance_name, mysql_server_uuid, addresses from  mysql_innodb_cluster_metadata.instances; All instances should return same value for mysql_server_uuid SELECT @@GTID_EXECUTED; All nodes should return same value Frequently use commands: mysql> SET SQL_LOG_BIN = 0;  mysql> stop group_replication; mysql> set global super_read_only=0; mysql> drop database mysql_innodb_cluster_metadata; mysql> RESET MASTER; mysql> RESET SLAVE ALL; JS > var cluster = dba.getCluster() JS > var cluster = dba.getCluster("<Cluster_name>") JS > var cluster = dba.createCluster('name') JS > cluster.removeInstance('root@<IP_Address>:<Port_No>',{force: true}) JS > cluster.addInstance('root@<IP add>,:<port>') JS > cluster.addInstance('root@ <IP add>,:<port> ') JS > dba.getC...

InnoDB cluster Remove Instance Force | Add InnoDB instance

InnoDB cluster environment UUID is different on node: To fix it stop group replication, remove instance (use force if require), add instance back Identify the node which is not in sync: Execute following SQL statement on each node and identify the node has different UUID on all nodes. mysql> select * from mysql_innodb_cluster_metadata.instances; Stop group replication: Stop group replication on the node which does not have same UUID on all nodes. mysql > stop GROUP_REPLICATION; Remove instances from cluster: Remove all secondary node from the cluster and add them back if require. $mysqlsh JS >\c root@<IP_Address>:<Port_No> JS > dba.getCluster().status() JS > dba.getCluster () <Cluster:cluster_name> JS > var cluster = dba.getCluster("cluster_name"); JS >  cluster.removeInstance('root@<IP_Address>:<Port_No>'); If you get "Cluster.removeInstance: Timeout reached waiting......" JS > cluster.removeInstance(...

Oracle E-Business Suite Online Patch Phases executing adop

Following description about Oracle E-Business Suite is high level and from documentation https://docs.oracle.com/cd/E26401_01/doc.122/e22954/T202991T531062.htm#5281339 for in depth and detail description refer it. The online patching cycle phases: Prepare Apply Finalize Cutover Cleanup Prepare phase: Start a new online patching cycle, Prepares the environment for patching. $ adop phase=prepare Apply phase: Applies the specified patches to the environment. Apply one or more patches to the patch edition. $ adop phase=apply patches=123456,789101 workers=8 Finalize phase: Performs any final steps required to make the system ready for cutover. Perform the final patching operations that can be executed while the application is still online. $ adop phase=finalize Cutover phase: Shuts down application tier services, makes the patch edition the new run edition, and then restarts application tier services. This is the only phase that involves a brief ...