It takes long time since upgrade mysql last time,
so this time upgrade MySql from 5.6.14 to 5.6.16.

Changes in MySQL 5.6.16 (2014-01-31)
There is many InnoDB and Replication related bug fixes.

Download latest version of MySQL with wget.

 [root@HOME002 src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-linux-glibc2.5-i686.tar.gz
--11:58:56--  http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16-linux-glibc2.5-i686.tar.gz
dev.mysql.com をDNSに問いあわせています... 137.254.60.11
dev.mysql.com|137.254.60.11|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.16-linux-glibc2.5-i686.tar.gz [続く]
--11:58:57--  http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.16-linux-glibc2.5-i686.tar.gz
cdn.mysql.com をDNSに問いあわせています... 23.51.56.96
cdn.mysql.com|23.51.56.96|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 296884387 (283M) [application/x-tar-gz]
Saving to: `mysql-5.6.16-linux-glibc2.5-i686.tar.gz'
100%[=======================================================================>] 296,884,387 54.4K/s   in 96m 1s
13:35:00 (50.3 KB/s) - `mysql-5.6.16-linux-glibc2.5-i686.tar.gz' を保存しました [296884387/296884387]

[root@HOME002 src]#

Extract and move to self defined location.

[root@HOME002 src]# tar zxvf mysql-5.6.16-linux-glibc2.5-i686.tar.gz
mysql-5.6.16-linux-glibc2.5-i686/bin/innochecksum
mysql-5.6.16-linux-glibc2.5-i686/bin/myisam_ftdump
mysql-5.6.16-linux-glibc2.5-i686/bin/mysql_waitpid
mysql-5.6.16-linux-glibc2.5-i686/bin/mysqld_safe
mysql-5.6.16-linux-glibc2.5-i686/bin/perror
mysql-5.6.16-linux-glibc2.5-i686/bin/resolveip
mysql-5.6.16-linux-glibc2.5-i686/bin/msql2mysql

省略...............

mysql-5.6.16-linux-glibc2.5-i686/support-files/my-default.cnf
mysql-5.6.16-linux-glibc2.5-i686/support-files/mysql.server
mysql-5.6.16-linux-glibc2.5-i686/support-files/binary-configure
mysql-5.6.16-linux-glibc2.5-i686/support-files/mysqld_multi.server
mysql-5.6.16-linux-glibc2.5-i686/support-files/magic
mysql-5.6.16-linux-glibc2.5-i686/support-files/mysql-log-rotate
[root@HOME002 src]#

[root@HOME002 src]# ls -l
合計 583004
-rw-r--r--  1 root root 299497357  9月 11 11:14 mysql-5.6.14-linux-glibc2.5-i686.tar.gz
drwxr-xr-x 13 root root      4096  3月  1 13:39 mysql-5.6.16-linux-glibc2.5-i686
-rw-r--r--  1 root root 296884387  1月 15 19:59 mysql-5.6.16-linux-glibc2.5-i686.tar.gz
[root@HOME002 src]# mv  mysql-5.6.16-linux-glibc2.5-i686 /usr/local/
[root@HOME002 src]# cd /usr/local/
[root@HOME002 local]# ls -l
合計 124
drwxr-xr-x  2 root  root  4096  1月  8  2013 bin
drwxr-xr-x  2 root  root  4096  3月 30  2007 etc
drwxr-xr-x  2 root  root  4096  3月 30  2007 games
drwxr-xr-x  2 root  root  4096  1月  7  2013 include
drwxr-xr-x  3 root  root  4096  1月  7  2013 lib
drwxr-xr-x  2 root  root  4096  3月 30  2007 libexec
drwxr-xr-x  3 root  root  4096  1月  7  2013 man
lrwxrwxrwx  1 root  root    33 11月  9 10:12 mysql -> mysql-5.6.14-linux-glibc2.5-i686/
drwxr-xr-x 13 mysql mysql 4096  4月 28  2013 mysql-5.6.11-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096  6月 22  2013 mysql-5.6.12-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096  9月 14 07:48 mysql-5.6.13-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096 11月  9 10:06 mysql-5.6.14-linux-glibc2.5-i686
drwxr-xr-x 13 root  root  4096  3月  1 13:39 mysql-5.6.16-linux-glibc2.5-i686
drwxr-xr-x  2 root  root  4096  3月 30  2007 sbin
drwxr-xr-x  5 root  root  4096  1月  7  2013 share
drwxr-xr-x  2 root  root  4096  3月  1 13:40 src
[root@HOME002 local]#

Replace Symbolic link and data between old and new version.

[root@HOME002 local]# /etc/init.d/mysql stop
Shutting down MySQL...                                     [  OK  ]
[root@HOME002 local]# rm mysql
rm: remove シンボリックリンク `mysql'? y
[root@HOME002 local]#

[root@HOME002 local]# ln -s mysql-5.6.16-linux-glibc2.5-i686/ mysql
[root@HOME002 local]# ls -l
合計 124
drwxr-xr-x  2 root  root  4096  1月  8  2013 bin
drwxr-xr-x  2 root  root  4096  3月 30  2007 etc
drwxr-xr-x  2 root  root  4096  3月 30  2007 games
drwxr-xr-x  2 root  root  4096  1月  7  2013 include
drwxr-xr-x  3 root  root  4096  1月  7  2013 lib
drwxr-xr-x  2 root  root  4096  3月 30  2007 libexec
drwxr-xr-x  3 root  root  4096  1月  7  2013 man
lrwxrwxrwx  1 root  root    33  3月  1 13:43 mysql -> mysql-5.6.16-linux-glibc2.5-i686/
drwxr-xr-x 13 mysql mysql 4096  4月 28  2013 mysql-5.6.11-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096  6月 22  2013 mysql-5.6.12-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096  9月 14 07:48 mysql-5.6.13-linux-glibc2.5-i686
drwxr-xr-x 13 mysql mysql 4096 11月  9 10:06 mysql-5.6.14-linux-glibc2.5-i686
drwxr-xr-x 13 root  root  4096  3月  1 13:39 mysql-5.6.16-linux-glibc2.5-i686
drwxr-xr-x  2 root  root  4096  3月 30  2007 sbin
drwxr-xr-x  5 root  root  4096  1月  7  2013 share
drwxr-xr-x  2 root  root  4096  3月  1 13:40 src
[root@HOME002 local]#

[root@HOME002 mysql-5.6.14-linux-glibc2.5-i686]# cp -rp data/* /usr/local/mysql/data/
cp: `/usr/local/mysql/data/test/db.opt' を上書きしてもよろしいですか(yes/no)? y
[root@HOME002 mysql-5.6.14-linux-glibc2.5-i686]#

[root@HOME002 local]# chown -R mysql:mysql mysql-5.6.16-linux-glibc2.5-i686/
[root@HOME002 local]# chmod -R 755 mysql-5.6.16-linux-glibc2.5-i686/
[root@HOME002 local]#

[root@HOME002 local]# /etc/init.d/mysql start
Starting MySQL.......                                      [  OK  ]
[root@HOME002 local]#

[root@HOME002 local]#  /usr/local/mysql/bin/mysql --version
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.6.16, for linux-glibc2.5 (i686) using  EditLine wrapper
[root@HOME002 local]#

Update system DB in MySQL.


[root@HOME002 bin]# ./mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' as: ./mysql
Looking for 'mysqlcheck' as: ./mysqlcheck
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock'
Warning: Using a password on the command line interface can be insecure.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Running 'mysql_fix_privilege_tables'...
Warning: Using a password on the command line interface can be insecure.
Running 'mysqlcheck' with connection arguments: '--port=3306' '--socket=/tmp/mysql.sock'
test.TABLE001                                      OK
test.timestamp_chk                                 OK
test.timestamp_chk2                                OK
OK
[root@HOME002 bin]#


[root@HOME002 bin]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.6.16-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, 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 '\h' for help. Type '\c' to clear the current input statement.

mysql> select @@version;
+------------+
| @@version  |
+------------+
| 5.6.16-log |
+------------+
1 row in set (0.00 sec)

mysql>

Since I didn`t use this environment for while, so I need to fix replication.
Before fix replication confirm current master log position.


mysql> show master status;;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000035 |      120 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

Start to fix replication at slave side.

mysql> use test
Database changed
mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State:
                  Master_Host: home001
                  Master_User: slave_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000034
          Read_Master_Log_Pos: 433
               Relay_Log_File: relay-bin.000004
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000034
             Slave_IO_Running: No
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB: mysql,performance_schema
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 433
              Relay_Log_Space: 120
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 2516bf0a-943a-11e2-8417-00123fd6c9fa
             Master_Info_File: /usr/local/mysql-5.6.16-linux-glibc2.5-i686/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp: 140301 13:47:09
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

mysql> stop slave;
Query OK, 0 rows affected (0.08 sec)

mysql> CHANGE MASTER TO MASTER_HOST = 'home001', master_port=3306, MASTER_LOG_FILE = 'mysql-bin.000035', MASTER_LOG_POS = 120;
Query OK, 0 rows affected (0.16 sec)

mysql> start slave;
Query OK, 0 rows affected (0.07 sec)

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: home001
                  Master_User: slave_user
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000035
          Read_Master_Log_Pos: 120
               Relay_Log_File: relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000035
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB: mysql,performance_schema
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 120
              Relay_Log_Space: 450
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 1
                  Master_UUID: 2516bf0a-943a-11e2-8417-00123fd6c9fa
             Master_Info_File: /usr/local/mysql-5.6.16-linux-glibc2.5-i686/data/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind:
      Last_IO_Error_Timestamp:
     Last_SQL_Error_Timestamp:
               Master_SSL_Crl:
           Master_SSL_Crlpath:
           Retrieved_Gtid_Set:
            Executed_Gtid_Set:
                Auto_Position: 0
1 row in set (0.00 sec)

mysql>

Insert data in Master DB.

mysql> use test;
Database changed
mysql> insert into TABLE001(title,comment) values('after-upgrade','Master MYSQL is upgraded to 5.6.16.');
Query OK, 1 row affected (0.38 sec)

mysql> select * from TABLE001 order by id desc limit 0,1;
+----+---------------+-------------------------------------+
| id | title         | comment                             |
+----+---------------+-------------------------------------+
| 25 | after-upgrade | Master MYSQL is upgraded to 5.6.16. |
+----+---------------+-------------------------------------+
1 row in set (0.00 sec)

mysql>

Confirm data slave side and finish replication recovery.

mysql> select * from TABLE001 order by id desc limit 0,1;
+----+---------------+-------------------------------------+
| id | title         | comment                             |
+----+---------------+-------------------------------------+
| 24 | after-upgrade | Master MYSQL is upgraded to 5.6.14. |
+----+---------------+-------------------------------------+
1 row in set (0.08 sec)

------- Insert data at master DB.

mysql> select * from TABLE001 order by id desc limit 0,1;
+----+---------------+-------------------------------------+
| id | title         | comment                             |
+----+---------------+-------------------------------------+
| 25 | after-upgrade | Master MYSQL is upgraded to 5.6.16. |
+----+---------------+-------------------------------------+
1 row in set (0.00 sec)

mysql>