This Release Note covers all point releases for the MySQL 5.6 branch that are offered by eApps. Upgrade instructions are also included.
NOTE - eApps only maintains MySQL Server 5.6 for CentOS 6 OS Templates. Virtual Servers using CentOS 7 OS Templates will use MariaDB, which is a drop in replacement for MySQL. Please see the MariaDB User Guide for more information. If you are on a CentOS 6 OS Template and want to move to a CentOS 7 OS Template, please contact eApps Sales.
MySQL 5.6 is a major release of the MySQL database server. This release has introduced new functionality and significant changes to the existing MySQL server. If you are upgrading from any prior version of MySQL to MySQL 5.6, there is a HIGH RISK of data loss and downtime if you do not carefully test your existing application and database with this new version. |
eApps recommends, as a best practice, to maintain a staging server where you can test software upgrades before moving them into production. This approach will allow you to minimize the risk of data loss and downtime of your production service when performing software upgrades. If necessary, you can rebuild your staging Virtual Server on demand so that you have a fresh installation to test on. If you need more information about setting up a staging Virtual Server, please contact eApps Sales.
IMPORTANT! MySQL version 5.6 has an extensive list of new features and changes. Upgrading to this version may significantly impact the operation of your database. The official What is New in MySQL 5.6 documentation is located here - http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html. Please read this to understand all of the changes in the MySQL 5.6 release. For additional information, the official documentation for MySQL is located here - http://dev.mysql.com/doc/
eApps Release Notes for MySQL 5.6.27
eApps Release Notes for MySQL 5.6.25
eApps Release Notes for MySQL 5.6.24
eApps Release Notes for MySQL 5.6.22
eApps Release Notes for MySQL 5.6.21
eApps Release Notes for MySQL 5.6.20
eApps Release Notes for MySQL 5.6.17
eApps Release Notes for MySQL 5.6.12
How to upgrade
MySQL 5.1 to MySQL 5.6
MySQL 5.6.x to MySQL 5.6.y
yaSSL
upgraded to 2.3.7dALTER TABLE
operations with partitioningCREATE TABLE
with an invalid function not failing gracefullymemcached
codeThe official Release Notes for MySQL 5.6.27 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-27.html
my_print_defaults
configuration now masks passwords by default.innodb_stress
suite of tests is now includedUPDATE_TIME
column of the INFORMATION_SCHEMA.TABLES
table now shows when a partition InnoDB table was last updatedmemcached set
command no longer accepts a negative expire time valueSHOW ENGINE INNODB STATUS
negative signal count values fixedThe official Release Notes for MySQL 5.6.25 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-25.html
memcached extra_col_value[]
array causing a server exit.mysql.user
table could result in a server exitThe official Release Notes for MySQL 5.6.24 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-24.html
NOTE - the Replication variable binlogging_impossible_mode
has been renamed to binlog_error_action
. The binlogging_impossible_mode
variable is now deprecated.
COMMIT
related to a full text search that caused a seg faultmysqldump
not reporting a disk-full error if the destination was an NFS mountThe official Release Notes for MySQL 5.6.22 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-22.html
NOTE - the --skip-innodb
option is now deprecated and will be removed in a future MySQL release. Using this feature now results in a warning. This also applies to its synonyms (--innodb=OFF
, --disable-innodb
, and so forth).
X509_verify_cert_error_string()
in the SSL certificate verification code to be more robust in detecting invalid certificates.The official Release Notes for MySQL 5.6.21 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-21.html
NOTE - mysqlhotcopy
is now deprecated and will be removed in a future version of MySQL. Alternatives include mysqldump
and the MySQL plugin available with the Enterprise Backup Service.
mysql_install_db
NOTE - several important changes/fixes to the behavior of DROP TABLE have been implemented. Please read the official Release Notes (linked to below) for more information.
The official Release Notes for MySQL 5.6.20 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-20.html
WARNING - There are several incompatible changes with previous versions of MySQL that are included in this release. Please read the official Release Notes for more details. These changes are in place in preparation for MySQL 5.7, the next major release.
Some of the incompatible changes are:
AES_ENCRYPT
and AES_DECRYPT
are now unsafe for statement based replicationERROR_FOR_DIVISION_BY_ZERO
, NO_ZERO_DATE
, and NO_ZERO_IN_DATE
are all deprecated, and in MySQL 5.7 will do nothing.The official Release Notes for MySQL 5.6.17 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-17.html
mysql_upgrade
now verifies that the server version matches the compiled version and exits if there is a mismatchALTER_TABLE
bug that caused a partial rollback to be treated as a full rollbackSET_PASSWORD
and users in the mysql.users
tableThe official Release Notes for MySQL 5.6.12 are available here - http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-12.html
Before upgrading MySQL, make a backup of your databases. Instructions are here - http://support.eapps.com/ispmgr/mysql5#backing-up-your-mysql-databases |
To upgrade MySQL, you will need to work from the command line using SSH, and you will need to be able to work as the root user. You will need to use yum to upgrade the application. You will also need to know the root password for the MySQL server (not the super user root password).
There is no direct upgrade path between major MySQL releases, such as between MySQL 5.1 and MySQL 5.6. In order to upgrade, you will need to export your databases, uninstall MySQL, move your existing data and configuration files, update the mysql libraries and client, install the new version of MySQL, and then import your databases. If you have custom configurations that are still compatible with MySQL 5.6, you will need to move those back into place.
NOTE - If you try to update MySQL without following these steps, the upgrade will fail, and you may encounter data loss due to database corruption.
To export your databases, use the mysqldump --all-databases -p > dumpfile.sql
command. This exports ALL your databases into the current working directory. You may need to enter the MySQL root password.
[root@eapps-example ~]# mysqldump --all-databases -p > dumpfile.sql
Enter password:
[root@eapps-example ~]#
To uninstall the MySQL server, use the yum remove mysql-server
command. This removes the mysql-server package, but leaves the libraries and mysql client application, both of which will be updated in the next few steps.
[root@eapps-example ~]# yum remove mysql-server
You will be asked to confirm that you wish to remove the package, answer y.
The update to MySQL 5.6 will install a new mysql directory and my.cnf file. If your existing mysql directory and configuration file are still in place, the new version of MySQL will not start.
To do this, you will need to use the mv
(move) command, and you will need to rename the exiting directory and configuration file so that they do not interfere with the newly installed files. The mysql directory is located at /var/lib/mysql, move it to mysql_orig. The configuration file is /etc/my.cnf, move it to my.cnf_orig.
[root@eapps-example ~]# mv /var/lib/mysql/ /var/lib/mysql_orig
[root@eapps-example ~]# mv /etc/my.cnf /etc/my.cnf_orig
Along with the MySQL server, the MySQL libraries and client application have to be updated. Updating the MySQL libraries will update the MySQL client at the same time.
To update the libraries and client, use the yum update mysql-libs
command.
[root@eapps-example ~]# yum update mysql-libs
You will be asked to confirm that you wish to update two packages, answer y.
After updating the MySQL libraries and client, you will need to install the new version of the MySQL server. This is done with the yum install mysql-server
command. This will also install the libaio application as a dependency.
[root@eapps-example ~]# yum install mysql-server
You will be asked to confirm that you wish to install two packages, answer y.
After the installation completes, you will need to start the MySQL server.
For CentOS 6, use the service mysqld start
command:
[root@eapps-example ~]# service mysqld start
After the upgrade is complete, you will need to import your databases back into MySQL, and then restart the MySQL server. Import your databases back into MySQL with the mysql -u root < dumpfile.sql
command. Because this is a new install of MySQL, there is currently no MySQL root user password - the password will be put into place when you import your databases and restart the mysqld service.
[root@eapps-example ~]# mysql -u root < dumpfile.sql
Once you have imported the databases, restart MySQL.
For CentOS 6, use the service mysqld restart
command:
[root@eapps-example ~]# service mysqld restart
You should now be able to access MySQL as the MySQL root user, with the correct password.
[root@eapps-example ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or .
Your MySQL connection id is 1
Server version: 5.6.12 MySQL Community Server (GPL)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '' for help. Type '' to clear the current input statement.
mysql>
As part of the upgrade process, you moved the my.cnf configuration file to a new location (my.cnf_orig). If you had made any changes to the original my.cnf, please review the official MySQL 5.6 documentation before adding those changes to the new my.cnf file. Some of the configuration parameters may have changed, and using an older value may cause issues with the new version of MySQL.
If you are not sure, move your custom configurations from the original my.cnf file into the new my.cnf file one at a time, and restart MySQL after each addition. If MySQL fails to start, then you know that particular configuration is not compatible with the new version.
To update MySQL you will need to connect to your Virtual Machine via SSH. Once you are connected to the Virtual Machine, you will need to run the following commands as the root user: yum clean all
and yum -y update mysql-server
[root@eapps-example ~]# yum clean all
Loaded plugins: fastestmirror, priorities, remove-with-leaves
Cleaning up Everything
Cleaning up list of fastest mirrors
[root@eapps-example ~]# yum -y update mysql-server
You will know that the new version of MySQL is installed when you see a Complete! message and you are returned to the command prompt. Once the installation has completed, restart MySQL.
For CentOS 6, use the service mysqld restart
command:
[root@eapps-example ~]# service mysqld restart