MySQLのUpdate

MySQLをアップデートした時の手順。
5.6.20から5.6.21へアップデートした。
※)今回は壊しても問題がない自宅の環境での作業メモだが、仕事など壊せない環境の場合は検証環境で検討を重ねた上で手順を作成して実施すること。この手順をそのまま鵜呑みにしないこと。もちろん、そのような人がいるとは思ってはいないが。

1.MySQLの設定ファイルをバックアップする

$ sudo mkdir ./backup
$ sudo tar cvfz ./backup/mysql_conf.tgz /etc/mysql

2.全てのデータベースとデータディレクトリをバックアップする

$ mysqldump -uroot -p --all-databases --lock-all-tables --master-data=2 > backup_db.sql
$ sudo tar cvfz ./backup/mysql_datadir.tgz /var/lib/mysql/

3.MySQLサーバを停止する

$ sudo service mysql stop

4.MySQLの既存のパッケージを全てアンインストールする
「sudo apt-get autoremove」を使用して不要になったパッケージを削除するが、「apt-get remove --purge」は使用しないこと。これを使用すると設定ファイルも削除してしまうらしい。

$ sudo apt-get remove mysql-server mysql-client mysql-common
$ sudo apt-get autoremove
$ sudo apt-get autoclean

5.MySQL dependency (kernel asynchronous I/O access library)をインストールする

$ sudo apt-get install libaio1

6.新しいMySQLを取得する

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-community-server_5.6.21-1ubuntu12.04_i386.deb'

7.MySQL Serverをインストールする

$ sudo dpkg -i mysql-server_5.6.21-1ubuntu14.04_i386.deb
(Reading database ... 174341 files and directories currently installed.)
Preparing to unpack mysql-server_5.6.21-1ubuntu14.04_i386.deb ...
Unpacking mysql-server (5.6.21-1ubuntu14.04) over (5.6.21-1ubuntu14.04) ...
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-community-server (= 5.6.21-1ubuntu14.04); however:
  Version of mysql-community-server on system is 5.6.21-1ubuntu12.04.

dpkg: error processing package mysql-server (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server

community serverが必要だと言われたからインストールする。

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-community-server_5.6.21-1ubuntu12.04_i386.deb'
$ sudo dpkg -i mysql-community-server_5.6.21-1ubuntu12.04_i386.deb
(Reading database ... 174341 files and directories currently installed.)
Preparing to unpack mysql-community-server_5.6.21-1ubuntu12.04_i386.deb ...
.
Unpacking mysql-community-server (5.6.21-1ubuntu12.04) over (5.6.21-1ubuntu12.04) ...
dpkg: dependency problems prevent configuration of mysql-community-server:
 mysql-community-server depends on mysql-common (= 5.6.21-1ubuntu12.04); however:
  Package mysql-common is not installed.

dpkg: error processing package mysql-community-server (--install):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Errors were encountered while processing:
 mysql-community-server

今度は、「Package mysql-common is not installed.」といわれたからmysql-commonをインストールする。

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-common_5.6.21-1ubuntu12.04_i386.deb'
 sudo dpkg -i mysql-common_5.6.21-1ubuntu12.04_i386.deb

成功したようだから、mysql-community-serverをインストールする。

$ sudo dpkg -i mysql-community-server_5.6.21-1ubuntu12.04_i386.deb
Selecting previously unselected package mysql-common.
(Reading database ... 174341 files and directories currently installed.)
Preparing to unpack mysql-common_5.6.21-1ubuntu12.04_i386.deb ...
Unpacking mysql-common (5.6.21-1ubuntu12.04) ...
Setting up mysql-common (5.6.21-1ubuntu12.04) ...
rio@ubuntu:~/work/mysql/installer$ sudo dpkg -i mysql-community-server_5.6.21-1ubuntu12.04_i386.deb
(Reading database ... 174428 files and directories currently installed.)
Preparing to unpack mysql-community-server_5.6.21-1ubuntu12.04_i386.deb ...
.
Unpacking mysql-community-server (5.6.21-1ubuntu12.04) over (5.6.21-1ubuntu12.04) ...
Setting up mysql-community-server (5.6.21-1ubuntu12.04) ...
......
 * MySQL Community Server 5.6.21 is started
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...

成功したようだからmysql-serverをインストールする。

$ sudo dpkg -i mysql-server_5.6.21-1ubuntu14.04_i386.deb
(Reading database ... 174428 files and directories currently installed.)
Preparing to unpack mysql-server_5.6.21-1ubuntu14.04_i386.deb ...
Unpacking mysql-server (5.6.21-1ubuntu14.04) over (5.6.21-1ubuntu14.04) ...
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-community-server (= 5.6.21-1ubuntu14.04); however:
  Version of mysql-community-server on system is 5.6.21-1ubuntu12.04.

dpkg: error processing package mysql-server (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 mysql-server

ダウンロードしたserverのバージョンがmysql-community-serverのものと違っていたので、同じものをダウンロードしてインストールする。

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-server_5.6.21-1ubuntu12.04_i386.deb'
$ sudo dpkg -i mysql-server_5.6.21-1ubuntu12.04_i386.deb

8.クライアントツールのインストール

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-client_5.6.21-1ubuntu12.04_i386.deb'
$ sudo dpkg -i mysql-client_5.6.21-1ubuntu12.04_i386.deb
Selecting previously unselected package mysql-client.
(Reading database ... 174428 files and directories currently installed.)
Preparing to unpack mysql-client_5.6.21-1ubuntu12.04_i386.deb ...
Unpacking mysql-client (5.6.21-1ubuntu12.04) ...
dpkg: dependency problems prevent configuration of mysql-client:
 mysql-client depends on mysql-community-client (= 5.6.21-1ubuntu12.04); however:
  Package mysql-community-client is not installed.

community-clientがインストールされていないから先にそちらをインストールする。

$ wget 'http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-community-client_5.6.21-1ubuntu12.04_i386.deb'
$ sudo dpkg -i mysql-community-client_5.6.21-1ubuntu12.04_i386.deb

成功したようだから、clientをインストールする。

$ sudo dpkg -i mysql-client_5.6.21-1ubuntu12.04_i386.deb
(Reading database ... 174478 files and directories currently installed.)
Preparing to unpack mysql-client_5.6.21-1ubuntu12.04_i386.deb ...
Unpacking mysql-client (5.6.21-1ubuntu12.04) over (5.6.21-1ubuntu12.04) ...
Setting up mysql-client (5.6.21-1ubuntu12.04) ...

インストールが成功したかを確認する。

$ mysql --version
mysql  Ver 14.14 Distrib 5.6.21, for Linux (i686) using  EditLine wrapper

成功して、MySQLバージョンも5.6.21にアップデートされている。