Upgrading a Docker Installation of MySQL Note If the MySQL  root  user account has a password, invoke  mysqladmin  with the -p  option and enter the password when prompted. 3. Extract the ZIP archive. You may either overwrite your existing MySQL installation (usually located at  C:\mysql ), or install it into a different directory, such as  C:\mysql8 . Overwriting the existing installation is recommended. 4. Restart the server. For example, use the  SC START  mysqld_service_name  or  NET START mysqld_service_name  command if you run MySQL as a service, or invoke  mysqld  directly otherwise. 5. Prior to MySQL 8.0.16, run  mysql_upgrade  as Administrator to check your tables, attempt to repair them if necessary, and update your grant tables if they have changed so that you can take advantage of any new capabilities. See Section 4.4.5, “mysql_upgrade — Check and Upgrade MySQL Tables” . As of MySQL 8.0.16, this step is not required, as the server performs all tasks previously handled by mysql_upgrade . 6. If you encounter errors, see Section 2.3.5, “Troubleshooting a Microsoft Windows MySQL Server Installation” . To upgrade a Docker installation of MySQL, refer to Upgrading a MySQL Server Container. 2.11.11 Upgrading a Docker Installation of MySQL 2.11.12 Upgrade Troubleshooting •A schema mismatch in a MySQL 5.7 instance between the  .frm  file of a table and the  InnoDB  data dictionary can cause an upgrade to MySQL 8.0 to fail. Such mismatches may be due to  .frm  file corruption. To address this issue, dump and restore affected tables before attempting the upgrade again. •If problems occur, such as that the new  mysqld  server does not start, verify that you do not have an old my.cnf  file from your previous installation. You can check this with the  --print-defaults  option (for example,  mysqld --print-defaults ). If this command displays anything other than the program name, you have an active  my.cnf  file that affects server or client operation. •If, after an upgrade, you experience problems with compiled client programs, such as  Commands out of sync  or unexpected core dumps, you probably have used old header or library files when compiling your programs. In this case, check the date for your  mysql.h  file and  libmysqlclient.a library to verify that they are from the new MySQL distribution. If not, recompile your programs with the new headers and libraries. Recompilation might also be necessary for programs compiled against the shared client library if the library major version number has changed (for example, from libmysqlclient.so.20  to  libmysqlclient.so.21 ). •If you have created a loadable function with a given name and upgrade MySQL to a version that implements a new built-in function with the same name, the loadable function becomes inaccessible. To correct this, use  DROP FUNCTION  to drop the loadable function, and then use  CREATE FUNCTION to re-create the loadable function with a different nonconflicting name. The same is true if the new version of MySQL implements a built-in function with the same name as an existing stored function. See Section 9.2.5, “Function Name Parsing and Resolution” , for the rules describing how the server interprets references to different kinds of functions. •If upgrade to MySQL 8.0 fails due to any of the issues outlined in Section 2.11.5, “Preparing Your Installation for Upgrade” , the server reverts all changes to the data directory. In this case, remove all 295