41から始めました

文字通り41歳から始めたブログです。DB(MySQL)を使ってお仕事してるので、DB周りの話を中心に最近始めたこととかをTwitterのノリで書いています。なお、本サイトにおいて示されている見解は私個人の見解であり、所属団体や組織を代表するものではありません。

MySQL5.6でsysスキーマを使う方法

MySQL5.6でもsysスキーマ使いたいなと思う人へ

もう新しいバージョンも出ないMySQL5.6

でも、愛着があって(?)まだまだ使いたいという人へささやかなプレゼントです。

sysスキーマMySQL内部の実行内容を把握するのに便利なビューやストアドなどが入っていて便利なのはMySQL5.7や8.0を使っていて知っている人も多いでしょう。

でも、5.7.6以前を使っている人、主に5.6を使っている人はinformation_schemaやperformance_schemaを起動してでなんとかするしか無かったりします。

そんなあなたもsysスキーマが使えるようになります。

インスコの仕方

mysql/mysql-sysから取得

まずはgithubから対象をゲットしましょう。

自分はgit cloneで落としましたが、gitをインストールしてないのであればZIP形式でも落とせます。

$ git clone https://github.com/mysql/mysql-sys.git
Cloning into 'mysql-sys'...
remote: Enumerating objects: 3009, done.
remote: Total 3009 (delta 0), reused 0 (delta 0), pack-reused 3009
Receiving objects: 100% (3009/3009), 1.18 MiB | 4.91 MiB/s, done.
Resolving deltas: 100% (1769/1769), done.

MySQL Server 5.6に接続し、インストール

MySQLに接続し、source ./sys_56.sqlを実行するだけで完了です。

$ cd mysql-sys/
$ mysql -uroot -pxxxxx -h127.0.0.1 -P5650
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.50-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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.

(root@127.0.0.1) [(none)]> source ./sys_56.sql
Query OK, 0 rows affected (0.00 sec)
...
Query OK, 0 rows affected (0.00 sec)

(root@127.0.0.1) [sys]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+
5 rows in set (0.00 sec)

はい、できました。

使い方とか

GitHub - mysql/mysql-sys: The MySQL sys schema を見たり、 MySQL :: MySQL 8.0 リファレンスマニュアル :: 28 MySQL sys スキーマなどが参考になるでしょう。

但し、これで入れたsysスキーマはバージョン的に5.7や8.0のそれと同じというわけではありません。

そのため、一部オブジェクトや情報が取得されていないということもありますが、そのへんはご勘弁を。

(root@127.0.0.1) [sys]> select sys_version from sys.version;
+-------------+
| sys_version |
+-------------+
| 1.5.1       |
+-------------+
1 row in set (0.00 sec)

来年も良いMySQL生活をエンジョイしてください!

ではでは。