We are really excited about MySQL 8.0 new features (https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/mysql-nutshell.html<\/a>) and our consultants spend several hours weekly, testing new features and doing research on how best we can create value for our customers from having those in production. Being an pure-play MySQL consulting, support and remote DBA services company, We are fully accountable for our customer database infrastructure operations performance, scalability, high availability and reliability. \u00a0As we are aggressive about gaining maximum results from MySQL 8 investments made by our customers, We are equally conservative (our customer data reliability is critical for us !) \u00a0on adopting new features, until we are fully confident after several rounds of testing (at different scales on multiple platforms) and technical review (we engage both internal and external consultants for acceptance) and acceptance before deployment in production infrastructure. In the previous versions of MySQL, before every upgrade our consultants manually spend several hours testing compatibility but MySQL 8 made this simple by introducing “upgrade checker” javascript with MySQL Shell 8.0.11 , In this blog we are writing about “upgrade checker” utility and upgrade from MySQL 5.7 to MySQL 8.0 .<\/p>\n Using MySQL Shell 8.0.11 “upgrade checker<\/strong>”<\/p>\n Typical “upgrade checker<\/strong>”\u00a0run will look similar to this:<\/p>\n At the end, \u00a0“upgrade checker<\/strong>” prints a summary and returns an integer value describing he severity of the issues found:<\/p>\n Upgrade from MySQL 5.7\u00a0to MySQL 8.0<\/strong><\/p>\n Step 1 – Uninstall MySQL 5.7\u00a0<\/em><\/p>\n Step 2 – Install MySQL 8.0<\/em><\/p>\n Step 3- Start MySQL 8.0<\/em><\/p>\n Step 4 – Run “mysql_upgrade<\/strong><\/em>” , mysql_upgrade checks for all tables in all databases\u00a0for incompatibilities with the current version of MySQL Server, it\u00a0also upgrades the system tables so that you can take advantage of new privileges or capabilities that might have been added.<\/p>\n <\/p>\n Success \ud83d\ude0a\ud83d\udc4d\u00a0, You have successfully completed upgrade from MySQL 5.7 to MySQL 8.0 .<\/p>\n <\/p>\n <\/p>\n","protected":false},"excerpt":{"rendered":" We are really excited about MySQL 8.0 new features (https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/mysql-nutshell.html) and our consultants spend several hours weekly, testing new features and doing research on how best we can create value for our customers from having […]<\/a><\/p>\n<\/div>","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,125],"tags":[130],"yoast_head":"\n MySQL JS > util.checkForServerUpgrade(\"root@localhost:3306\")\r\nPlease provide the password for 'root@localhost:3306': **********\r\nThe MySQL server at localhost:3306 will now be checked for compatibility issues for upgrade to MySQL 8.0...\r\nMySQL version: 5.7.22-log - MySQL Community Server (GPL)\r\n\r\n1) Usage of db objects with names conflicting with reserved keywords in 8.0\r\n No issues found\r\n\r\n2) Usage of utf8mb3 charset\r\n Warning: The following objects use the utf8mb3 character set. It is recommended to convert them to use utf8mb4 instead, for improved Unicode support.\r\n\r\n sakila.actor.first_name - column's default character set: utf8\r\n sakila.actor.last_name - column's default character set: utf8\r\n sakila.actor_info.first_name - column's default character set: utf8\r\n sakila.actor_info.last_name - column's default character set: utf8\r\n sakila.actor_info.film_info - column's default character set: utf8\r\n sakila.address.address - column's default character set: utf8\r\n sakila.address.address2 - column's default character set: utf8\r\n sakila.address.district - column's default character set: utf8\r\n sakila.address.postal_code - column's default character set: utf8\r\n sakila.address.phone - column's default character set: utf8\r\n sakila.category.name - column's default character set: utf8\r\n sakila.city.city - column's default character set: utf8\r\n sakila.country.country - column's default character set: utf8\r\n sakila.customer.first_name - column's default character set: utf8\r\n sakila.customer.last_name - column's default character set: utf8\r\n sakila.customer.email - column's default character set: utf8\r\n sakila.customer_list.name - column's default character set: utf8\r\n sakila.customer_list.address - column's default character set: utf8\r\n sakila.customer_list.zip code - column's default character set: utf8\r\n sakila.customer_list.phone - column's default character set: utf8\r\n sakila.customer_list.city - column's default character set: utf8\r\n sakila.customer_list.country - column's default character set: utf8\r\n sakila.customer_list.notes - column's default character set: utf8\r\n sakila.film.title - column's default character set: utf8\r\n sakila.film.description - column's default character set: utf8\r\n sakila.film.rating - column's default character set: utf8\r\n sakila.film.special_features - column's default character set: utf8\r\n sakila.film_list.title - column's default character set: utf8\r\n sakila.film_list.description - column's default character set: utf8\r\n sakila.film_list.category - column's default character set: utf8\r\n sakila.film_list.rating - column's default character set: utf8\r\n sakila.film_list.actors - column's default character set: utf8\r\n sakila.film_text.title - column's default character set: utf8\r\n sakila.film_text.description - column's default character set: utf8\r\n sakila.language.name - column's default character set: utf8\r\n sakila.nicer_but_slower_film_list.title - column's default character set: utf8\r\n sakila.nicer_but_slower_film_list.description - column's default character set: utf8\r\n sakila.nicer_but_slower_film_list.category - column's default character set: utf8\r\n sakila.nicer_but_slower_film_list.rating - column's default character set: utf8\r\n sakila.nicer_but_slower_film_list.actors - column's default character set: utf8\r\n sakila.sales_by_film_category.category - column's default character set: utf8\r\n sakila.sales_by_store.store - column's default character set: utf8\r\n sakila.sales_by_store.manager - column's default character set: utf8\r\n sakila.staff.first_name - column's default character set: utf8\r\n sakila.staff.last_name - column's default character set: utf8\r\n sakila.staff.email - column's default character set: utf8\r\n sakila.staff.username - column's default character set: utf8\r\n sakila.staff.password - column's default character set: utf8\r\n sakila.staff_list.name - column's default character set: utf8\r\n sakila.staff_list.address - column's default character set: utf8\r\n sakila.staff_list.zip code - column's default character set: utf8\r\n sakila.staff_list.phone - column's default character set: utf8\r\n sakila.staff_list.city - column's default character set: utf8\r\n sakila.staff_list.country - column's default character set: utf8\r\n\r\n3) Usage of use ZEROFILL\/display length type attributes\r\n Notice: The following table columns specify a ZEROFILL\/display length attributes. Please be aware that they will be ignored in MySQL 8.0\r\n\r\n sakila.customer.active - tinyint(1)\r\n sakila.staff.active - tinyint(1)\r\n\r\n4) Issues reported by 'check table x for upgrade' command\r\n No issues found\r\n\r\n5) Table names in the mysql schema conflicting with new tables in 8.0\r\n No issues found\r\n\r\n6) Usage of old temporal type\r\n No issues found\r\n\r\n7) Foreign key constraint names longer than 64 characters\r\n No issues found\r\n\r\n8) Usage of obsolete MAXDB sql_mode flag\r\n No issues found\r\n\r\n9) Usage of obsolete sql_mode flags\r\n No issues found\r\n\r\n10) Usage of partitioned tables in shared tablespaces\r\n No issues found\r\n\r\n11) Usage of removed functions\r\n No issues found\r\n\r\nNo fatal errors were found that would prevent a MySQL 8 upgrade, but some potential issues were detected. Please ensure that the reported issues are not significant before upgrading.\r\n1\r\n<\/pre>\n
\n
[root@localhost ~]# systemctl stop mysqld \r\n[root@localhost ~]# yum remove mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-devel.x86_64 mysql-community-libs.x86_64 mysql-community-libs-compat.x86_64 mysql-community-server.x86_64 \r\nLoaded plugins: fastestmirror\r\nResolving Dependencies\r\n--> Running transaction check\r\n---> Package mysql-community-client.x86_64 0:5.7.22-1.el7 will be erased\r\n---> Package mysql-community-common.x86_64 0:5.7.22-1.el7 will be erased\r\n---> Package mysql-community-devel.x86_64 0:5.7.22-1.el7 will be erased\r\n---> Package mysql-community-libs.x86_64 0:5.7.22-1.el7 will be erased\r\n---> Package mysql-community-libs-compat.x86_64 0:5.7.22-1.el7 will be erased\r\n---> Package mysql-community-server.x86_64 0:5.7.22-1.el7 will be erased\r\n--> Finished Dependency Resolution\r\n\r\nDependencies Resolved\r\n\r\n=======================================================================================\r\n Package Arch Version Repository Size\r\n=======================================================================================\r\nRemoving:\r\n mysql-community-client x86_64 5.7.22-1.el7 @mysql57-community 106 M\r\n mysql-community-common x86_64 5.7.22-1.el7 @mysql57-community 2.5 M\r\n mysql-community-devel x86_64 5.7.22-1.el7 @mysql57-community 21 M\r\n mysql-community-libs x86_64 5.7.22-1.el7 @mysql57-community 9.4 M\r\n mysql-community-libs-compat x86_64 5.7.22-1.el7 @mysql57-community 9.2 M\r\n mysql-community-server x86_64 5.7.22-1.el7 @mysql57-community 743 M\r\n\r\nTransaction Summary\r\n=======================================================================================\r\nRemove 6 Packages\r\n\r\nInstalled size: 892 M\r\nIs this ok [y\/N]: y\r\nDownloading packages:\r\nRunning transaction check\r\nRunning transaction test\r\nTransaction test succeeded\r\nRunning transaction\r\n Erasing : mysql-community-devel-5.7.22-1.el7.x86_64 1\/6 \r\n Erasing : mysql-community-server-5.7.22-1.el7.x86_64 2\/6 \r\nwarning: \/etc\/my.cnf saved as \/etc\/my.cnf.rpmsave\r\n Erasing : mysql-community-client-5.7.22-1.el7.x86_64 3\/6 \r\n Erasing : mysql-community-libs-compat-5.7.22-1.el7.x86_64 4\/6 \r\n Erasing : mysql-community-libs-5.7.22-1.el7.x86_64 5\/6 \r\n Erasing : mysql-community-common-5.7.22-1.el7.x86_64 6\/6 \r\n Verifying : mysql-community-libs-compat-5.7.22-1.el7.x86_64 1\/6 \r\n Verifying : mysql-community-common-5.7.22-1.el7.x86_64 2\/6 \r\n Verifying : mysql-community-devel-5.7.22-1.el7.x86_64 3\/6 \r\n Verifying : mysql-community-server-5.7.22-1.el7.x86_64 4\/6 \r\n Verifying : mysql-community-client-5.7.22-1.el7.x86_64 5\/6 \r\n Verifying : mysql-community-libs-5.7.22-1.el7.x86_64 6\/6 \r\n\r\nRemoved:\r\n mysql-community-client.x86_64 0:5.7.22-1.el7 \r\n mysql-community-common.x86_64 0:5.7.22-1.el7 \r\n mysql-community-devel.x86_64 0:5.7.22-1.el7 \r\n mysql-community-libs.x86_64 0:5.7.22-1.el7 \r\n mysql-community-libs-compat.x86_64 0:5.7.22-1.el7 \r\n mysql-community-server.x86_64 0:5.7.22-1.el7 \r\n\r\nComplete!\r\n[root@localhost ~]# \r\n<\/pre>\n
[root@localhost MySQL8-Community-Edition]# rpm -ivh mysql-community-server-8.0.11-1.el7.x86_64.rpm mysql-community-client-8.0.11-1.el7.x86_64.rpm mysql-community-common-8.0.11-1.el7.x86_64.rpm mysql-community-devel-8.0.11-1.el7.x86_64.rpm mysql-community-libs-8.0.11-1.el7.x86_64.rpm mysql-community-libs-compat-8.0.11-1.el7.x86_64.rpm \r\nwarning: mysql-community-server-8.0.11-1.el7.x86_64.rpm: Header V3 DSA\/SHA1 Signature, key ID 5072e1f5: NOKEY\r\nPreparing... ################################# [100%]\r\nUpdating \/ installing...\r\n 1:mysql-community-common-8.0.11-1.e################################# [ 17%]\r\n 2:mysql-community-libs-8.0.11-1.el7################################# [ 33%]\r\n 3:mysql-community-client-8.0.11-1.e################################# [ 50%]\r\n 4:mysql-community-server-8.0.11-1.e################################# [ 67%]\r\n 5:mysql-community-devel-8.0.11-1.el################################# [ 83%]\r\n 6:mysql-community-libs-compat-8.0.1################################# [100%]\r\n[root@localhost MySQL8-Community-Edition]# \r\n<\/pre>\n
[root@localhost MySQL8-Community-Edition]# systemctl start mysqld \r\n[root@localhost MySQL8-Community-Edition]# mysql -u root -p\r\nEnter password: \r\nWelcome to the MySQL monitor. Commands end with ; or \\g.\r\nYour MySQL connection id is 10\r\nServer version: 8.0.11 MySQL Community Server - GPL\r\n\r\nCopyright (c) 2000, 2018, Oracle and\/or its affiliates. All rights reserved.\r\n\r\nOracle is a registered trademark of Oracle Corporation and\/or its\r\naffiliates. Other names may be trademarks of their respective\r\nowners.\r\n\r\nType 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.\r\n\r\nmysql> \r\n<\/pre>\n
[root@localhost MySQL8-Community-Edition]# mysql_upgrade -u root -p \r\nEnter password: \r\nChecking if update is needed.\r\nChecking server version.\r\nRunning queries to upgrade MySQL server.\r\nUpgrading system table data.\r\nChecking system database.\r\nmysql.columns_priv OK\r\nmysql.component OK\r\nmysql.db OK\r\nmysql.default_roles OK\r\nmysql.engine_cost OK\r\nmysql.func OK\r\nmysql.general_log OK\r\nmysql.global_grants OK\r\nmysql.gtid_executed OK\r\nmysql.help_category OK\r\nmysql.help_keyword OK\r\nmysql.help_relation OK\r\nmysql.help_topic OK\r\nmysql.innodb_index_stats OK\r\nmysql.innodb_table_stats OK\r\nmysql.ndb_binlog_index OK\r\nmysql.password_history OK\r\nmysql.plugin OK\r\nmysql.procs_priv OK\r\nmysql.proxies_priv OK\r\nmysql.role_edges OK\r\nmysql.server_cost OK\r\nmysql.servers OK\r\nmysql.slave_master_info OK\r\nmysql.slave_relay_log_info OK\r\nmysql.slave_worker_info OK\r\nmysql.slow_log OK\r\nmysql.tables_priv OK\r\nmysql.time_zone OK\r\nmysql.time_zone_leap_second OK\r\nmysql.time_zone_name OK\r\nmysql.time_zone_transition OK\r\nmysql.time_zone_transition_type OK\r\nmysql.user OK\r\nFound outdated sys schema version 1.5.1.\r\nUpgrading the sys schema.\r\nChecking databases.\r\nemployees.departments OK\r\nemployees.dept_emp OK\r\nemployees.dept_manager OK\r\nemployees.employees OK\r\nemployees.salaries OK\r\nemployees.tab1 OK\r\nemployees.titles OK\r\nsakila.actor OK\r\nsakila.address OK\r\nsakila.category OK\r\nsakila.city OK\r\nsakila.country OK\r\nsakila.customer OK\r\nsakila.film OK\r\nsakila.film_actor OK\r\nsakila.film_category OK\r\nsakila.film_text OK\r\nsakila.inventory OK\r\nsakila.language OK\r\nsakila.payment OK\r\nsakila.rental OK\r\nsakila.staff OK\r\nsakila.store OK\r\nsys.sys_config OK\r\nUpgrade process completed successfully.\r\nChecking if update is needed.\r\n<\/pre>\n