Upgrading MySQL server from version 5.6 to 8.0
Created On: 28 Jun, 2018: 16:04:08 - Tags : server management | software installation | database management
The latest version of MySQL server currently is 8.03. To upgrade MySQL server from a previous version we need to ensure that we are upgrading from the last stable release. For example from version 5.7 to 8.0. To upgrade from 5.6 to 8.0 we need to first upgrade from 5.6 to 5.7 and then from 5.7 to 8.0. Upgrading directly from 5.6 to 8.0, will result in errors related to incompatible sql or log file formats.
Installing latest version of MySQL serverMySQL server is part of most Linux distributions. However the default version of MySQL server is usually outdated. We can install the latest version of MySQL server from the MySQL apt repository. The MySQL online documentation provides detailed information on how to install and upgrade MySQL server and tools using the MySQL apt repository.
To install the MySQL apt repository we need to first download the repository package from: http://dev.mysql.com/downloads/repo/apt/. Next we need to install the repository package using the command: sudo dpkg -i mysql-apt-config_w.x.y-z_all.deb. During the installation of the package, we will be asked to choose the version of MySQL server and other tools. After the repository package has been installed we can install the MySQL server using the commands: apt-get update followed by apt-get install mysql-server. This will install the version of the MySQL server that we had selected during the repository package installation.
To change the version of MySQL server that we have installed, we need to issue the command: sudo dpkg-reconfigure mysql-apt-config. The version that we select here will be installed when we install the package from apt
Upgrading MySQL serverAs mentioned previously we should upgrade to the next stable release. For example from 5.6 to 5.7. To upgrade MySQL server we should first back up the database. We can do this by exporting the databases to sql file using the command: mysqldump -u root -p --all-databases > database_file.sql. This command will export all databases to a sql file. We may also back up the data directory located at: /var/lib/mysql.
Next we need to remove the MySQL server using the command: apt-get remove mysql-server. This command will remove the MySQL server binaries from the system. To remove the MySQL data we need to substitute remove with purge in the previous command.
After that we need to choose the new version of MySQL server from the MySQl apt configuration tool. We can access the tool with the command: sudo dpkg-reconfigure mysql-apt-config.
Next we need to install the new version of the MySQL server with the command: apt-get install mysql-server. During installation we will be prompted for the root password for the MySQL server.
If we had used the purge option while removing the MySQL server, then we will need to import the data back to the MySQL server. We can do this with the command: mysql -u root -p < database_file.sql
After the installation has completed we need to upgrade the server using the command: mysql_upgrade -u root -p. This will upgrade the table formats to the version support by the new MySQL server.
Downgrading MySQL serverTo downgrade MySQL server to a previous version, we need to follow the same procedure that we used for upgrading the server. The only change would be to select the older MySQL server version from the MySQL apt configuration tool
- Using Rsync over custom SSH port
- Upgrading Postgresql from version 9.4 to 9.6
- Installing latest version of Php
- Upgrading R from version 3.0 to 3.5
- Backing up and restoring LXD containers
- Resizing Linux root partitions without unmount on Google Cloud
- Running multiple versions of mailx command
- Getting /etc/rc.local file to work on Debian 9 (Stretch)
- Increasing number of concurrent connections for Proftp
- Changing ownership of symbolic link
- Configuring Apache to process html files as php
- Php server APIs
- Apache Multi Processing Modules (MPMs)
- Calculating the number of simultaneous connections supported by Apache
- Problem with copying large files to USB
- Monitoring RAM usage on server
- Finding CPU usage using top command
- Format of crontab file
- Force grub2 to not use UUID
- Automate scp command using sshpass