三流エンジニアの落書き帳

さあ、今日も未知という扉を開けてみよう

MySQL8.0.20がGAになったので早速インストールしてみる

気づいたらMySQL8.0.20がGAになっていました。

いつも通りだと4月中には次のリリースがGAになりそうだとは思っていましたが、こんな状況ですし延期するかもと思ってました。 この状況下でもスケジュール通りに進めた開発陣に感謝ですね!

今回はCentOS8にMySQL8.0.20をインストールします。 インストールはYumリポジトリを使う方法です。

といってもマニュアルを見ながらインストールするだけです。

MySQL :: MySQL 8.0 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository

まずはMySQLリポジトリを追加します。

リポジトリは下記リンクから取得できます。

MySQL :: Download MySQL Yum Repository

[root@centos8-instance3:/home/mysql]# dnf localinstall -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

[root@centos8-instance3:/home/mysql]# dnf repolist all | grep mysql
メタデータの期限切れの最終確認: 0:01:29 時間前の 20200429171702秒 に実施しました。
mysql-cluster-8.0-community        MySQL Cluster 8.0 Community     無効化
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - S 無効化
mysql-connectors-community         MySQL Connectors Community      有効化:    58
mysql-connectors-community-source  MySQL Connectors Community - So 無効化
mysql-tools-community              MySQL Tools Community           有効化:    26
mysql-tools-community-source       MySQL Tools Community - Source  無効化
mysql-tools-preview                MySQL Tools Preview             無効化
mysql-tools-preview-source         MySQL Tools Preview - Source    無効化
mysql80-community                  MySQL 8.0 Community Server      有効化:    41
mysql80-community-source           MySQL 8.0 Community Server - So 無効化

mysql80-communityがちゃんと有効化になっていますね。

CentOS8のようなEL8ベースのシステムではデフォルトでMySQLのモジュールが有効になっているようです。 この状態ではMySQLリポジトリによって提供されるパッケージをマスクしてしまうようなので、無効化します。

[root@centos8-instance3:/home/mysql]# dnf module disable mysql
メタデータの期限切れの最終確認: 0:02:19 時間前の 20200429172316秒 に実施しました。
依存関係が解決しました。
========================================================================================================================================================
 パッケージ                          アーキテクチャー                   バージョン                            リポジトリー                        サイズ
========================================================================================================================================================
モジュールの無効化:
 mysql                                                                                                                                                 

トランザクションの概要
========================================================================================================================================================

これでよろしいですか? [y/N]: y
完了しました!

あとはdnfでmysql-community-serverをインストールするだけです。

[root@centos8-instance3:/home/mysql]# dnf install -y mysql-community-server

[root@centos8-instance3:/home/mysql]# mysql -V
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

しっかり8.0.20でインストールできていますね。

では、MySQLを起動しましょう。

[root@centos8-instance3:/home/mysql]# systemctl start mysqld
[root@centos8-instance3:/home/mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-04-29 18:15:32 JST; 18s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 31754 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 31832 (mysqld)
   Status: "Server is operational"
    Tasks: 39 (limit: 5030)
   Memory: 359.8M
   CGroup: /system.slice/mysqld.service
           └─31832 /usr/sbin/mysqld

 429 18:15:13 centos8-instance3 systemd[1]: Starting MySQL Server...
 429 18:15:32 centos8-instance3 systemd[1]: Started MySQL Server.

初期のrootパスワードはエラーログに記載されます。 またセキュリティ向上のためにmysql_secure_installationを実施します。

[root@centos8-instance3:/home/mysql]# grep "temporary pass" /var/log/mysqld.log 
2020-04-29T09:15:26.111030Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: pg9rkqSd9v,y

[root@centos8-instance3:/home/mysql]# mysql_secure_installation 

そんなわけで無事に最新版のインストールが完了しました。 当たり前ですけど、ビルドするより断然楽ですね。

[root@centos8-instance3:/home/mysql]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql80-root@localhost:[(none)] >

さていろいろとこれで遊んでいきましょう。