明滅するプログラマの思索

WEBエンジニアとして勤務している一介の男が、日々気づいたことをまとめるブログです

MySQL 8.0 GA を CentOS7 にインストールする

2018年4月19日に MySQL 8.0 GA(Generally Available) がリリースされました。
MySQL 5.7 に比べ最大で2倍の速度と謳っていますが、興味を惹かれるのはやはり GIS(地理情報システム)。
これを遊ぶために、CentOS7 にインストールしてみることにします。

MySQL 8.0 インストール

パッケージインストールを行うため、yumリポジトリを登録します。

yum install https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

.repo ファイルを編集してリポジトリを有効にします。

vi /etc/yum.repos.d/mysql-community.repo

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1  # ここを 1 にする
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

MySQL 8.0 をインストールします。

yum install mysql-community-server

すでに MySQL 5.7 などの別バージョンがインストールされていれば、上書きされます。

MySQL 8.0 のインストール自体はこれで終わり。

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

ちなみに root の初期パスワードは /var/log/mysqld.log に追記されますので、それを確認しておきましょう。

grep 'temporary password' /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: XXXXXXXXXX

既存データベースの更新

すでに稼働中のデータベースだった場合、MySQL 8.0 用に更新する必要があります。
とはいえ、コマンド一発です

mysql_upgrade -p
Enter password:    # root のパスワードを入力

root パスワードの変更

root を別のパスワードにしたい場合 mysql_secure_installation を実行すると、そのほかの環境の整理(anonymous ユーザの削除、test テーブルの削除など)も一緒にやってくれて便利です。
もしパスワードの変更のみを行いたい場合は、以下の SQL を発行すればOKです。

set password for root@localhost = 'XXXXXXXX';

(上記SQLMySQL 8.0 以降の記述のようです)

ともあれ、トラブルなくアップグレードができました。
これからいろいろ試してみようと思います。