# MySQL5.6 から 8 にアップグレード

2022 年 2 月 1 日より AWS から MySQL 5.6 の新規インスタンスは作成できなくなります。2022 年 3 月 1 日から AWS MySQL 5.6 から 5.7 への自動アップグレードが開始され、これからは MySQL 8.0 が勧められています。ウインドウ関数と共通テーブル式が追加された MySQL8 は、MySQL 5.7 より 2 倍高いパフォーマンスで多数の欠陥を修正しています。これからは 8 か〜と思いながら、ローカルマシンの MySQL バージョンをアップしてみました。

MySQL 5.6 へのアップグレードに影響する変更 (opens new window)
MySQL 5.7 へのアップグレードに影響する変更 (opens new window)
MySQL 8.0 へのアップグレードに影響する変更 (opens new window)
Amazon RDS for MySQL バージョン 5.6 のサポート終了のお知らせ (opens new window)

# バージョン 5.7 にアップグレード

MySQL 5.7 使ってるサーバーもあるので、一旦 5.6 から 5.7 にアップしてみます。

cat /etc/redhat-release
# CentOS Linux release 7.9.2009 (Core)

mysql --version
# mysql  Ver 14.14 Distrib 5.6.51, for Linux (x86_64) using  EditLine wrapper

yum info mysql-community-server
# Loaded plugins: fastestmirror, ovl
# Loading mirror speeds from cached hostfile
#  * base: ftp.riken.jp
#  * epel: ftp.riken.jp
#  * extras: ftp.riken.jp
#  * remi-safe: ftp.riken.jp
#  * updates: ftp.riken.jp
# Available Packages
# Name        : mysql-community-server
# Arch        : x86_64
# Version     : 5.6.51
# Release     : 2.el7
# Size        : 67 M
# Repo        : mysql56-community/x86_64
# Summary     : A very fast and reliable SQL database server
# URL         : http://www.mysql.com/
# License     : Copyright (c) 2000, 2021, Oracle and/or its affiliates. All rights reserved. Under GPLv2 license as shown in the # Description field.
# Description : The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
#             : and robust SQL (Structured Query Language) database server. MySQL Server
#             : is intended for mission-critical, heavy-load production systems as well
#             : as for embedding into mass-deployed software. MySQL is a trademark of
#             : Oracle and/or its affiliates
#             :
#             : The MySQL software has Dual Licensing, which means you can use the MySQL
#             : software free of charge under the GNU General Public License
#             : (http://www.gnu.org/licenses/). You can also purchase commercial MySQL
#             : licenses from Oracle and/or its affiliates if you do not wish to be bound by the terms of
#             : the GPL. See the chapter "Licensing and Support" in the manual for
#             : further info.
#             :
#             : The MySQL web site (http://www.mysql.com/) provides the latest news and
#             : information about the MySQL software.  Also please see the documentation
#             : and the manual for more information.
#             :
#             : This package includes the MySQL server binary as well as related utilities
#             : to run and administer a MySQL server.

yum repolist all | grep mysql
# mysql-connectors-community/x86_64   MySQL Connectors Community    enabled:   230
# mysql-connectors-community-source   MySQL Connectors Community -  disabled
# mysql-tools-community/x86_64        MySQL Tools Community         enabled:   138
# mysql-tools-community-source        MySQL Tools Community - Sourc disabled
# mysql-tools-preview/x86_64          MySQL Tools Preview           disabled
# mysql-tools-preview-source          MySQL Tools Preview - Source  disabled
# mysql55-community/x86_64            MySQL 5.5 Community Server    disabled
# mysql55-community-source            MySQL 5.5 Community Server -  disabled
# mysql56-community/x86_64            MySQL 5.6 Community Server    enabled:   581
# mysql56-community-source            MySQL 5.6 Community Server -  disabled
# mysql57-community/x86_64            MySQL 5.7 Community Server    disabled
# mysql57-community-source            MySQL 5.7 Community Server -  disabled
# mysql80-community/x86_64            MySQL 8.0 Community Server    disabled
# mysql80-community-source            MySQL 8.0 Community Server -  disabled

時代遅れの mysql5.6 アンインストール

yum remove mysql*

mysql5.7 をインストール

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum localinstall mysql57-community-release-el7-8.noarch.rpm
yum install -y mysql-community-server

mysql.sock エラー

Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

サービスを再起動

/etc/init.d/mysqld restart

5.7 にバージョンアップ完了 🎉

mysql --version
# mysql  Ver 14.14 Distrib 5.7.37, for Linux (x86_64) using  EditLine wrapper

# 時代の MySQL8 にアップグレード

インストールされている MySQL 確認して rpm インストールしていきます。

yum list installed | grep "^mysql"
# mysql-community-client.x86_64           5.7.37-1.el7                @mysql57-community
# mysql-community-common.x86_64           5.7.37-1.el7                @mysql57-community
# mysql-community-libs.x86_64             5.7.37-1.el7                @mysql57-community
# mysql-community-server.x86_64           5.7.37-1.el7                @mysql57-community
# mysql57-community-release.noarch        el7-8                       installed

rpm -e --nodeps mysql57-community-release

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
# Retrieving https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
# Preparing...                          ################################# [100%]
# Updating / installing...
#    1:mysql80-community-release-el7-2  ################################# [100%]

yum install mysql-community-server

mysql --version
# mysql  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)

# ついでに RPM コマンド

rpm とは

Red Hat 系の Linux で使われているパッケージ管理コマンド、RPM(Red Hat Package Manager)パッケージという意味します。

よく使うオプション

オプション フルオプション 説明
-i --install パッケージをインストール
-U --upgrade パッケージをアップグレード
-F --freshen 以前のバージョンがあるパッケージをアップグレード
-e --erase パッケージをアンインストール
-q --query パッケージ情報の表示
-V --verify パッケージを検査
-v 情報表示増やす
-h インストール経過をハッシュマークで表示
--nodeps パッケージの依存関係を検証しない

よく使うコマンド

# パッケージインストール
rpm -ivh {パッケージ名}

# パッケージアップグレード
rpm -Uvh {パッケージ名}

# パッケージアンインストール
rpm -evh {パッケージ名}

# インストールされているrpmパッケージ一覧表示
rpm -qa {パッケージ名}

# rpmパッケージの情報表示
rpm -qi {パッケージ名}

# インストールされたファイル一覧表示
rpm -ql {パッケージ名}
2022-04-06
  • mysql