MySQL徹底入門第4版からの差分

2020年7月に出た「MySQL徹底入門 第4版」という本は MySQL 8.0.20 をベースとしてたんですが、ご存知の通り MySQL 8.0 はパッチリリースでどんどん機能が追加されてったりするんで、同じ 8.0 でも最新版とは機能の差分が出てしまってます。

ということで、自分が執筆した分について、8.0.23 までで変わった分についてまとめてみます。

5.1 アカウントの作成と権限の付与

8.0.21 から CREATE USERALTER USER 時に COMMENTATTRIBUTE でコメントや属性を付与できるようになりました。

5.2 アカウント識別

クライアントから接続した場合は、ワイルドカードを含まない接続元が一致するもの、その後ワイルドカードを含むもの、そして最後に空文字のアカウントの順に検索されます。つまり 192.168.1.0/255.255.255.0 が 192.168.% よりも優先されます。なお、 192.168.1.1 と 192.168.1.0/255.255.255.0 は優先度に違いはありません。

と書いたんですが、8.0.23 で変わりました。

  1. IPアドレスまたはホスト名
  2. CIDR 形式のIPアドレス (例: 192.168.1.0/24)
  3. サブネット形式のIPアドレス (例: 192.168.1.0/255.255.255.0)
  4. ワイルドカードを含むもの
  5. 空文字列

この変更によって実害を受けることはおそらくあまりないと思いますが、パッチレベルでこんな変更を入れてくるところがさすが MySQL。

5.5 権限

INNODB_REDO_LOG_ENABLE

8.0.21 で追加されました。

ALTER INSTANCE {ENABLE|DISABLE} INNODB REDO_LOG 文の実行権です。

FLUSH_OPTIMIZER_COSTS
FLUSH_STATUS
FLUSH_TABLES
FLUSH_USER_RESOURCES

8.0.23 で追加されました。

それぞれ、FLUSH OPTIMIZER_COSTS, FLUSH STATUS, FLUSH TABLES, FLUSH USER_RESOURCES 文の実行権です。

今まで RELOAD 権に含まれていたのが個別に指定できるようになりました。