Scribble at 2023-05-26 13:04:59 Last modified: 2023-05-27 07:48:25

添付画像

MySQL version [recommended_mysql] or greater OR MariaDB version [recommended_mariadb] or greater.

Requirements

或る交通企業系の会社が運営する介護施設のサイトについて、DBMS がアップデートされるらしい。僕は制作や運営には関わっていないのだが、担当しているディレクターから今後の作業について相談を受けた。具体的には WordPress なりサイトのコンテンツを制作している側で何か対応すべきことがあるかどうかだ。話している途中で、WordPress が対応している MySQL のバージョンを確認しようとして wordpress.org の公式ドキュメントを開くと、困ったことに、まずそもそもメニューが分かり難い。requirements や prerequisite がどこに書いてあるのか、エンジニアのセンスとして直感的に判断しにくいメニュー項目の表記になっている。そもそも僕らはエンジニアであるから "Learn" と書かれているようなメニューは自動的に「素人向け」と見做してスルーする傾向があるため、ここに公式の documentation が全て格納されていると困ってしまう。

そして、documentation に辿り着いても、"About WordPress" だの "Installation" だのと、どうとでも取れる曖昧な表記しかないので、順番にしらみつぶしにアクセスするか、検索せざるを得なくなる。検索するくらいなら、wordpress.org にアクセスしてメニューを辿るなんて面倒臭いことをするか。Google でホット・リンクに飛ぶ方が楽に決まっている。そうして、幾つかページを眺めていると、上記のようなものが出てきたりする。肝心の DBMS のバージョンについて、テンプレートの処理ミスだろうと思うが、[recommended_mysql] なんていうマクロしか表示されていない。これは非常に恥ずかしいことだし、場合によってはサーバが正しく動いていないか、情報セキュリティの問題として付け込まれる余地があるというヒントにもなってしまう。

このほかに、

https://wordpress.org/documentation/article/before-you-install/

というページには "MySQL 5.6 or MariaDB 10.1 or greater" と書かれている。

ちなみに、現行の WordPress は PHP 8.x 系統と MySQL 8.x 系統で問題なく運用できる。これが、PHP 7.x 系統だと、MySQL 8 が登場した2018年には DBMS への接続に使う認証方式を PHP 7.x がサポートしていなかったために接続エラーが起きたりしたわけだが、PHP 8 を使っていれば、それも心配するようなことではない。

ちなみに、MySQL は既に述べたとおり2018年にいきなりバージョンが 5.7 から 8 となった。他のソフトウェアでもヴァージョンのカウントが急に大きくなる事情はあるが、Oracle においても他のプロダクトのヴァージョン番号と間違えるからとかいった、かなり下らない理由でこうなったらしい。コンピュータ・サイエンス的には何の意味もない、単なる前後関係だけの問題だから、あまり深く考えるのは止めよう。ただ、全く gradual な変更かというと、かなり大きな変更はある。たとえば、主なエンジンとして InnoDB と MyISAM という二つがあるのはご承知だと思うが、MyISAM は旧式でトランザクションに対応しないという耐障害性の低いエンジンであったため(なんでこれをずっとサポートしていたのか、逆に僕は不思議なのだが)、8.0 からシステム・テーブルを InnoDB に置き換えている。よって、MyISAM は「てめーのエンジンとして使いたい奴は使ってろ」的な位置に後退したわけである。あと、これまでユーザの特権を組み合わせた「ロール」はユーザがデザインしていたわけだが、8.0 には role という概念が組み込まれたので、role を定義しておけば、あとはユーザを紐づけるだけでよくなる。ユーザごとに SELECT できる、SHOW できる、CREATE できる、DROP できない・・・などとやる必要はなくなった。

そんなこんなで、MySQL に関する情報なり書籍も、2018年以前のものは原則として推奨できない。したがって、洋書でも MySQL 8 Query Performance Tuning 以降の本しかお勧めできない。一般的な解説としては CRC Press から出ている Mastering MySQL for Web: a Beginner's Guide がいいだろう。既に概要を掴んでいる方には、1,400ページを超える大著だが、O'Reilly Media から出ている MySQL Cookbook が便利だ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook