ひでメモ

プログラムについて勉強したことを書きます。たぶん。

yum で MySQL を最新ではない任意のマイナーバージョンへアップデートする

目的

アップデート作業時の最新は 5.7.41 だったのですが、これを 5.7.40 にしたいです。

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.36, for Linux (x86_64) using  EditLine wrapper

アップデートできる MySQL のバージョン確認

まず yum でアップデートできる最新バージョンの確認をしました。

$ yum search all --showduplicates mysql-community-server

読み込んだプラグイン:fastestmirror, presto, priorities
Loading mirror speeds from cached hostfile
 * epel: d2lzkl7pfhq30w.cloudfront.net
649 packages excluded due to repository priority protections
======================================================= 一致: mysql-community-server =======================================================
mysql-community-server-5.7.9-1.el6.x86_64 : A very fast and reliable SQL database server
mysql-community-server-5.7.10-1.el6.x86_64 : A very fast and reliable SQL database server

<中略> 

mysql-community-server-5.7.39-1.el6.x86_64 : A very fast and reliable SQL database server
mysql-community-server-5.7.40-1.el6.x86_64 : A very fast and reliable SQL database server
mysql-community-server-5.7.41-1.el6.x86_64 : A very fast and reliable SQL database server

末尾に以下のようにあるので 5.7.41 が最新のようです。
数日前に更新されたばかりでした。ぐぬぬ

mysql-community-server-5.7.41-1.el6.x86_64 : A very fast and reliable SQL database server

おそらくこのままバージョン指定をしないでアップデートするとこのバージョンがインストールされそうです。
そこで、ほしいバージョンの rpm をダウンロードして、それを使ってアップデートします。

ほしいバージョンをダウンロード

MySQL :: Download MySQL Community Server (Archived Versions)
上記のリンク先で以下を指定すると、対応したパッケージのダウンロードリンクが表示されます。

  • 目当ての MySQL バージョン
  • OS 種類
  • OS のバージョン

ちなみに OS のバージョンやビット数は以下のコマンドで確認しました。

$ cat /etc/redhat-release
CentOS release 6.10 (Final)

$ arch
x86_64

以下の「RPM Bundle」の「Download」からダウンロードします。

ローカルに落としてからサーバへアップしてもよかったのですが直接ダウンロードしたほうが早そうだったので curl コマンドでダウンロードしました。

curl -OL  <ダウンロードのリンク>

wget コマンドでもいけますが入ってなかった

インストール

現在インストールされているバージョンの確認です。
あれ、なんかバージョン揃ってない…?

$ sudo yum list installed | grep "^mysql"
mysql-community-client.x86_64      5.7.36-1.el6              @mysql57-community
mysql-community-common.x86_64      5.7.36-1.el6              @mysql57-community
mysql-community-libs.x86_64        5.7.36-1.el6              @mysql57-community
mysql-community-libs-compat.x86_64 5.6.43-2.el6              @mysql56-community
mysql-community-server.x86_64      5.7.36-1.el6              @mysql57-community

さきほど落としてきたファイルを指定してインストールします。

$ sudo yum localinstall mysql-community-server-5.7.40-1.el6.x86_64.rpm \
% mysql-community-client-5.7.40-1.el6.x86_64.rpm \
% mysql-community-common-5.7.40-1.el6.x86_64.rpm \
% mysql-community-devel-5.7.40-1.el6.x86_64.rpm \
% mysql-community-libs-5.7.40-1.el6.x86_64.rpm \
% mysql-community-libs-compat-5.7.40-1.el6.x86_64.rpm

インストール後のバージョン確認

$ sudo yum list installed | grep "^mysql"
mysql-community-client.x86_64        5.7.40-1.el6                      @/mysql-community-client-5.7.40-1.el6.x86_64
mysql-community-common.x86_64        5.7.40-1.el6                      @/mysql-community-common-5.7.40-1.el6.x86_64
mysql-community-devel.x86_64         5.7.40-1.el6                      @/mysql-community-devel-5.7.40-1.el6.x86_64
mysql-community-libs.x86_64          5.7.40-1.el6                      @/mysql-community-libs-5.7.40-1.el6.x86_64
mysql-community-libs-compat.x86_64   5.7.40-1.el6                      @/mysql-community-libs-compat-5.7.40-1.el6.x86_64
mysql-community-server.x86_64        5.7.40-1.el6                      @/mysql-community-server-5.7.40-1.el6.x86_64

念の為 MySQL の再起動と upgrade コマンドを流しておきます。

$ sudo service mysqld restart
$ sudo mysql_upgrade

アプリケーション側で動作確認して無事終了!