ノウハウ
[エンジニア向け]

Plesk搭載のCentOS6でMysql5.1から5.6へのアップグレード

ノウハウ
テクニカルサポート

2016年4月にリリースしたEX-CLOUDのVPSプランではOSを『CentOS(5,6,7)』または『Ubuntu(12,14,16)』から選択いただけますが、Plesk搭載プランに関してはCentOS6のみとなっております。

インストールされているミドルウェアに関しましても、基本的にはOSベンダーが提供しているものを初期状態としておりますので、構築されるシステムによってはミドルウェアのアップグレードが必要な場合がございます。

ここではお問い合わせや要望として多い、Mysqlのアップグレードについてご案内いたします。
なお、手順はPleskメーカーのナレッジに準じたご案内となります。
( 参考としたメーカーのナレッジ:How to upgrade MySQL 5.5 to 5.6 https://kb.plesk.com/en/127962 )

まず、初期搭載されているバージョンですが、CentOS6ではMysql5.1系がパッケージとして配布されております。
・参考:CentOS6パッケージ
http://mirror.centos.org/centos/6/os/x86_64/Packages/

EX-CLOUDのオンラインガイド:VPSの主なミドルウェアのバージョンを教えてください
https://ex-cloud.jp/support/question/q-751
でも、Plesk搭載版のMysqlのバージョンは5.1.73として紹介しておりますが、今回はMysql5.6にアップグレードしてみます。

手順1.MySQLの停止
アップグレード中にデータベースに書込みが行われないよう、作業前にサービスを停止させます。

# service mysqld status ← 起動中か確認
mysqld (pid  ****) is running... ← mysqld is stopped だった場合は既に停止済です
#service mysqld stop ← 停止コマンド
Stopping mysqld:                                           [  OK  ]
#service mysqld status ← 停止したか確認
mysqld is stopped

手順2.データベースのバックアップ
必須ではありませんが、作業によるデータ破損時に備えバックアップを取ります

# mkdir /var/lib/mysqlcopy ← バックアップファイルを保存するディレクトリの作成
# cp -aR /var/lib/mysql/* /var/lib/mysqlcopy ← 作成したディレクトリにコピー
# du -sh /var/lib/mysql/ /var/lib/mysqlcopy ← コピーの容量が一致しているか確認
52M     /var/lib/mysql/
52M     /var/lib/mysqlcopy

手順3:MySQL公式のyumリポジトリの追加

# yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
Is this ok [y/N]: ← これが表示されたら y を入力し、Enter

手順4(重要):Mysql5.7のインストールを無効化し、5.6を有効化する
そのままの設定だとMysql5.7がインストールされますが、Plesk12.5のリリースノート( https://docs.plesk.com/release-notes/12.5/software-requirements/ )ではMySQL 5.0.x-5.6までがサポートとなっているため、5.6をインストールする設定に変更します

# vi /etc/yum.repos.d/mysql-community.repo
[mysql56-community]
enabled=1 ← 27行目 0から1に書換え
[mysql57-community]
enabled=0 ← 34行目 1から0に書換え

手順5:mysqlのインストール
事前に行った設定に沿って、mysql5.6のインストールが行われます。

# yum install mysql
Is this ok [y/N]: ← これが表示されたら y を入力し、Enter

手順6:アップグレードされたかの確認

# mysql -V
mysql  Ver 14.14 Distrib 5.6.32, for Linux (x86_64) using  EditLine wrapper

手順7:5.6.xxにアップグレードされていたらmysqlの起動

# service mysqld start
Starting mysqld:                                           [  OK  ]

もし「MySQL Daemon failed to start.」というようなメッセージが出た場合の、セーフモードでMysqlを起動後、mysql_upgradを実行するとうまくゆく場合があります。対応の例は、後述の「mysqlが起動しない場合」を参照ください。

手順8:Plesk関連のデータベーステーブルのチェックとアップグレード

# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa
・
・
・
OK

以上で、アップグレードが完了となります。
動作確認を行い、不具合が無ければ手順2:で行ったバックアップファイルは削除します。
(ディスク容量に余裕があれば残しておいても問題はございません)

ご契約者様自身では作業が難しい・不安がある等の場合、有償となりますがサポートセンターでも作業代行をさせていただきますので、詳しくはお問い合わせください。

※【追記】トラブルシュート例:mysqlが起動しない場合

手順7のmysql起動の際、「MySQL Daemon failed to start.」のようなエラーメッセージなどが表示されたり、 mysqlのログ( /var/log/mysqld.log )に
「[ERROR] Fatal error: mysql.** table is damaged.」 が記録され、起動出来なかった場合の対応例を紹介します。

1.mysqlをセーフモードでの起動
2.mysql_upgradeを実行
3.mysqlの再起動
という手順です。

# /usr/bin/mysqld_safe  --skip-grant-tables &
MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql_upgrade -uadmin psa
・
・
・
OK
# service mysqld restart

この記事を書いた人

テクニカルサポート

テクニカルサポートを得意とするエクスクラウドのサポートスタッフ。

この記事のタグ

オススメの記事

ページトップへ