これは「MySQL アドベントカレンダー 2019」と「富士通クラウドテクノロジーズ アドベントカレンダー 2019」の4日目の記事です。
MySQL の各バージョン間のパラメーターの違いを比較できる MySQL Parameter というページを去年公開したんですが、それが何故か割と好評だったみたいで今年の4月に MySQL Community Contributor Award Program 2019 というのにノミネートされたりもしました。
それを独自ドメイン化したり、いろいろ追加したりしたので、それについて書きます。
独自ドメイン化
今まで GitHub Pages のデフォルトのドメイン https://tmtm.github.io/mysql-params で公開していたのですが、手持ちのドメインのサブドメインの https://mysql-params.tmtms.net に変更してみました。 サブドメイン名をリポジトリ名と同じにしてみましたが、別にその必要はありません。
まず mysql-params.tmtms.net レコードを CNAME tmtm.github.io で登録します。
tmtms.net ゾーンはニフクラDNSで管理しているので、ニフクラのコンパネから tmtms.net のゾーン管理で mysql-params レコードを作ります。簡単。
次に GitHub のリポジトリで、「Settings」の下の方に「GitHub Pages」があるので、そこにドメイン名を設定するだけです。お手軽。
今までの https://tmtm.github.io/mysql-params にアクセスすると、ちゃんと https://mysql-params.tmtms.net にリダイレクトされます。 相対パスやクエリパラメータも保ったままリダイレクトされるので便利。
HTTPS もチェックボックスをチェックするだけ。簡単。チェックできるようになるまで時間が掛かりますが。
いろいろ追加
今まで mysqld のパラメーターだけにしか対応していなかったのですが、mysql コマンドにも対応しました。
mysqld https://mysql-params.tmtms.net/mysqld/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
mysql https://mysql-params.tmtms.net/mysql/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
あと、Status, Charset, Collation, Privilege にも対応してみました。 これらは項目の有無がわかるだけですが。
Status https://mysql-params.tmtms.net/status/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
Charset https://mysql-params.tmtms.net/charset/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
Collation https://mysql-params.tmtms.net/collation/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
Privilege https://mysql-params.tmtms.net/privilege/?vers=5.0.96,5.1.72,5.5.62,5.6.46,5.7.28,8.0.18
https://mysql-params.tmtms.net/ にアクセスするとメニューを表示するようになってますが、
過去のURLとの互換のため、https://tmtm.github.io/mysql-params?vers=8.0.11,8.0.18&diff=true のようにクエリパラメータがあったら mysqld のページにリダイレクトするようにしてあります。
mysqld と mysql のパラメータは、/usr/local/mysql にインストールした後に --no-defaults --help -v
オプションで実行した出力から得ています。
Status, Charset, Collation は SHOW GLOBAL STATUS
, SHOW CHARSET
, SHOW COLLATION
の結果です。
Privilege は DESC mysql.user
のカラム名に _priv
がついてるものを取り出して、変換しています(Create_tmp_table
-> CREATE TEMPORARY TABLE
など)。
PROXY
権限は mysql.user
テーブルには載ってないので、mysql.proxies_priv
テーブルの有無を見てるような感じです。
権限は結構増えてるような印象があったのですが、5.0 の頃と比べても意外とそんなに増えてなかったですね。
見た目にはこだわりないのでCSSは最低限でデザインがアレですが、よろしければご利用ください。
[追記] 2020-01-28
MySQL 8.0 で動的パラメータがかなり増えてました。それも反映したので今見たらもっと多いです。
動的パラメータは GRANT ALL
でユーザー作って、それを SHOW GRANTS
した結果から取り出してます。