0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pleskで管理されたCentOS6のMySQLを5.1から5.6にアップグレードする

Last updated at Posted at 2019-11-27

はじめに

Pleskで管理されたCentOS6.10のMySQL5.1を5.6までアップグレードしたので、その記録になります。

Pleskのサポートでは、以下の2記事がありますので、これを見ながら5.1から5.6へアップグレードしました。

CentOS7の方がMariaDB5.5を更新する場合は、以下を御覧ください。
https://qiita.com/idani/items/fc16cf52d487cacd6fcb

アップグレード手順

OSのバージョン確認

plesk version | grep "OS version"

2019-11-22_09h08_39.png

MySQLのデータをバックアップ

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --all-databases --routines --triggers > /tmp/all-databases-5.1.sql

MySQLを停止

service mysqld stop

DBデータ自体をバックアップ

mkdir /var/lib/mysqlcopy-5.1
cp -aR /var/lib/mysql/* /var/lib/mysqlcopy-5.1/

yumにMySQL5.5を提供しているAtomicリポジトリを追加

wget -q -O - http://www.atomicorp.com/installers/atomic | sh

2019-11-22_09h09_32.png

2019-11-22_09h09_45.png

mysqlをアップグレードする

途中、何度か確認事項がありますが、全て「y」で進み、最後に「Complete!」表示で完了です。

yum upgrade mysql

2019-11-22_09h10_03.png

2019-11-22_09h10_15.png

2019-11-22_09h10_20.png
2019-11-22_09h10_55.png

2019-11-22_09h11_04.png

2019-11-22_09h11_12.png

2019-11-22_09h11_53.png

MySQL5.5を起動

service mysqld start

DBデータをアップグレード

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

2019-11-22_09h12_34.png
2019-11-22_09h12_42.png

MySQL5.5で動作確認

すでにMySQLで稼働中のWebアプリがある場合は、この時点で一旦、動作確認を行ってください。
問題ないようでしたら、MySQL5.6にアップグレードするために、次へ進みます。

MySQL5.5から5.6にアップグレードするのでバックアップを再度、取得します。

MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysqldump -u admin --all-databases --routines --triggers > /tmp/all-databases-5.5.sql

MySQL5.5を停止

service mysqld stop

DBデータを再度、バックアップします。

mkdir /var/lib/mysqlcopy-5.5
cp -aR /var/lib/mysql/* /var/lib/mysqlcopy-5.5/

Atomicリポジトリを無効化

「/etc/yum.repos.d/atomic.repo」の「enabled = 1」を「enabled = 0」に変更します。

vi /etc/yum.repos.d/atomic.repo

# Name: Atomic Rocket Turtle RPM Repository for CentOS / Red Hat Enterprise Linux 6 -
# URL: http://www.atomicrocketturtle.com/
[atomic]
name = CentOS / Red Hat Enterprise Linux $releasever - atomic
mirrorlist = http://updates.atomicorp.com/channels/mirrorlist/atomic/centos-$releasever-$basearch
enabled = 0 <= ここを1から0に変更
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
        file:///etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
gpgcheck = 1

# Almost Stable, release candidates for [atomic]
[atomic-testing]
name = CentOS / Red Hat Enterprise Linux $releasever - atomic - (Testing)
mirrorlist = http://updates.atomicorp.com/channels/mirrorlist/atomic-testing/centos-$releasever-$basearch
enabled = 0
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY.art.txt
        file:///etc/pki/rpm-gpg/RPM-GPG-KEY.atomicorp.txt
gpgcheck = 1
~

2019-11-22_09h13_54.png

MySQLのリポジトリを追加

yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm

2019-11-22_09h14_11.png

2019-11-22_09h14_19.png

2019-11-22_09h14_29.png

MySQL5.7を無効化

「/etc/yum.repos.d/mysql-community.repo」を開いて、[mysql56-community]の「enabled=0」を「enabled=1」に変更し、 [mysql57-community]の「enabled=1」を0に変更します。

2019-11-22_09h15_03.png

MySQLパッケージを更新します。

途中の選択肢は、全て「y」で問題ないです。

yum install mysql

2019-11-22_09h15_35.png

2019-11-22_09h15_42.png

2019-11-22_09h16_15.png

2019-11-22_09h17_02.png

MySQLを再起動

service mysqld start

MySQLのデータをアップグレードします。

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

2019-11-22_09h17_35.png

2019-11-22_09h18_04.png

以上でMySQLの更新が完了です。
Plesk上でも確認ができます。

2019-11-22_09h20_11.png

【補足】/var/lib/php/sessionのパーミション確認

MySQLの更新にともなって、HttpdとPHPが再インストールされる場合があります。
この時に、「/var/lib/php/session」のパーミションが変更となってしまい、PHPをFastCGIで動かしている場合は、セッションが保存ができなくなる障害に直面しました。

このため以下の確認を行ってください。

以下の状態なら変更不要です。

ls -al /var/lib/php/
total 44
drwxr-xr-x  3 root root  4096 Aug 24  2016 .
drwxr-xr-x 39 root root  4096 Nov 27 03:50 ..
drwx-wx-wt  4 root root 36864 Nov 28 01:32 session

この状態だと修正が必要です。

ls -al /var/lib/php/
total 44
drwxr-xr-x  3 root root  4096 Aug 24  2016 .
drwxr-xr-x 39 root root  4096 Nov 27 03:50 ..
drwxrwx---  5 root apache 36864 Nov 20 10:50 session

修正する

cd /var/lib/php
chown root:root session
chmod 733 session/
chmod +t session

この設定だとsessionに書き込んだ情報がRoot以外は削除できなくなります。
Cronで定期的に掃除する必要があるそうです。
https://support.plesk.com/hc/en-us/articles/115004023093

【補足】perfonmance_schemaとtable_definition_cacheの調整

MySQL5.6にアップグレード後、メモリが急増しました。
アップグレード前が60MBぐらいだったのに、570MBまで増加しました(汗)

2019-11-22_09h40_58.png

調査をしてみると、MySQL5.6から「table_definition_cache」の初期値が変更になったことが原因のようです。

「/etc/my.cnf」に以下を追加し、mysqlを再起動しました。

vi /etc/my.cnf

[mysqld]
performance_schema=0
table_definition_cache=400

2019-11-22_10h00_47.png

メモリが激減しました。

2019-11-22_10h40_29.png

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?