MySQLリリース年表(3.23~5.1)完全版

 MySQLの各バージョンのリリース年表を作って見た。
MySQL闇歴史」アドベントカレンダーの記事のための調査をしている中で、今以上に入り組んでリリースされていた初期MySQLのリリース順番を改めて確認したくなったことがきっかけだ。

 まずは成果を見てもらいたい。 じゃーん。

MySQL(3.23~5.1)リリース一覧

prodname description ver323 ver40 ver41 ver50 ver51 releasedate
MySQL Alpha 3.23.0 1999/07/05
MySQL Alpha 3.23.1 1999/07/08
MySQL Alpha 3.23.2 1999/08/09
MySQL Alpha 3.23.3 1999/09/13
MySQL Alpha 3.23.4 1999/09/28
MySQL Alpha 3.23.5 1999/10/20
MySQL Alpha 3.23.7 1999/12/10
MySQL Alpha 3.23.6 1999/12/15
MySQL Alpha 3.23.8 2000/01/02
MySQL Alpha 3.23.9 2000/01/29
MySQL Alpha 3.23.10 2000/01/30
MySQL Alpha 3.23.11 2000/02/16
MySQL Alpha 3.23.12 2000/03/07
MySQL Alpha 3.23.13 2000/03/14
MySQL Alpha 3.23.14 2000/04/09
MySQL Alpha 3.23.15 2000/05/08
MySQL Alpha 3.23.16 2000/05/16
MySQL Alpha 3.23.17 2000/06/07
MySQL Alpha 3.23.18 2000/06/11
MySQL Beta 3.23.20 2000/06/28
MySQL Beta 3.23.21 2000/07/04
MySQL Beta 3.23.22 2000/07/31
MySQL Beta 3.23.23 2000/09/01
MySQL Beta 3.23.24 2000/09/08
MySQL Beta 3.23.25 2000/09/29
MySQL Beta 3.23.26 2000/10/18
MySQL Beta 3.23.27 2000/10/24
MySQL Gamma 3.23.28 2000/11/22
MySQL Gamma 3.23.29 2000/12/16
MySQL Gamma 3.23.30 2001/01/04
MySQL Production 3.23.31 2001/01/17
MySQL 3.23.32 2001/01/22
MySQL 3.23.33 2001/02/09
MySQL 3.23.34 2001/03/10
MySQL 3.23.34a 2001/03/11
MySQL 3.23.35 2001/03/15
MySQL 3.23.36 2001/03/27
MySQL 3.23.37 2001/04/17
MySQL 3.23.38 2001/05/09
MySQL 3.23.39 2001/06/12
MySQL 3.23.40 2001/07/18
MySQL 3.23.41 2001/08/11
MySQL 3.23.42 2001/09/08
MySQL Alpha 4.0.0 2001/10/??
MySQL 3.23.43 2001/10/04
MySQL 3.23.44 2001/10/31
MySQL 3.23.45 2001/11/22
MySQL 3.23.46 2001/11/29
MySQL Alpha 4.0.1 2001/12/23
MySQL 3.23.47 2001/12/27
MySQL 3.23.48 2002/02/07
MySQL 3.23.49 2002/02/14
MySQL 3.23.50 2002/04/21
MySQL 3.23.51 2002/05/31
MySQL Alpha 4.0.2 2002/07/01
MySQL 3.23.52 2002/08/14
MySQL Beta 4.0.3 2002/08/26
MySQL Beta 4.0.4 2002/09/29
MySQL 3.23.53 2002/10/09
MySQL Beta 4.0.5 2002/11/13
MySQL 3.23.54 2002/12/05
MySQL Gamma 4.0.6 2002/12/14
MySQL Gamma 4.0.7 2002/12/20
MySQL Gamma 4.0.8 2003/01/07
MySQL Gamma 4.0.9 2003/01/09
MySQL 3.23.55 2003/01/23
MySQL Gamma 4.0.10 2003/01/29
MySQL Gamma 4.0.11 2003/02/20
MySQL 3.23.56 2003/03/13
MySQL Production 4.0.12 2003/03/15
MySQL Alpha 4.1.0 2003/04/03
MySQL 4.0.13 2003/05/16
MySQL 3.23.57 2003/06/06
MySQL 4.0.14 2003/07/18
MySQL 4.0.15 2003/09/03
MySQL 3.23.58 2003/09/11
MySQL 4.0.16 2003/10/17
MySQL Alpha 4.1.1 2003/12/01
MySQL 4.0.17 2003/12/14
MySQL Alpha 5.0.0 2003/12/22
MySQL 4.0.18 2004/02/12
MySQL 4.0.19 2004/05/04
MySQL 4.0.20 2004/05/17
MySQL Alpha 4.1.2 2004/05/28
MySQL Beta 4.1.3 2004/06/28
MySQL Alpha 5.0.1 2004/07/27
MySQL Gamma 4.1.4 2004/08/26
MySQL 4.0.21 2004/09/06
MySQL Gamma 4.1.5 2004/09/16
MySQL Gamma 4.1.6 2004/10/10
MySQL Production 4.1.7 2004/10/23
MySQL 4.0.22 2004/10/27
MySQL Alpha 5.0.2 2004/12/01
MySQL 4.1.8 2004/12/14
MySQL 4.0.23 2004/12/18
MySQL 4.1.9 2005/01/11
MySQL 4.1.10 2005/02/12
MySQL 4.0.24 2005/03/04
MySQL Beta 5.0.3 2005/03/23
MySQL 4.1.11 2005/04/01
MySQL Beta 5.0.4 2005/04/16
MySQL 4.1.12 2005/05/13
MySQL Beta 5.0.6 2005/05/26
MySQL Beta 5.0.7 2005/06/10
MySQL 4.0.25 2005/07/05
MySQL Beta 5.0.9 2005/07/15
MySQL 4.1.13 2005/07/15
MySQL Beta 5.0.10 2005/07/27
MySQL Beta 5.0.11 2005/08/06
MySQL 4.1.14 2005/08/17
MySQL Beta 5.0.12 2005/09/02
MySQL 4.0.26 2005/09/08
MySQL Release Candidate 5.0.13 2005/09/22
MySQL 4.1.15 2005/10/13
MySQL Production 5.0.15 2005/10/19
MySQL 5.0.16 2005/11/10
MySQL 5.1.3 2005/11/29
MySQL 4.1.16 2005/11/29
MySQL 5.0.17 2005/12/14
MySQL 5.1.4 2005/12/21
MySQL 5.0.18 2005/12/21
MySQL 5.1.5 2006/01/10
MySQL 4.1.18 2006/01/27
MySQL 5.1.6 2006/02/01
MySQL 5.1.7 2006/02/27
MySQL 5.0.19 2006/03/04
MySQL 5.0.20 2006/03/31
MySQL 5.1.9 2006/04/12
MySQL 5.0.20a 2006/04/18
MySQL 4.1.19 2006/04/29
MySQL 5.0.21 2006/05/02
MySQL 4.0.27 2006/05/06
MySQL 4.1.20 2006/05/24
MySQL 5.0.22 2006/05/24
MySQL 5.1.11 2006/05/26
MySQL 4.1.21 2006/07/19
MySQL 5.0.24 2006/07/27
MySQL 5.0.24a 2006/08/25
MySQL 5.0.25 2006/09/15
MySQL 5.0.26 2006/10/03
MySQL Community Server 5.0.27 2006/10/21
MySQL Enterprise 5.0.28 2006/10/24
MySQL 5.1.12 2006/10/24
MySQL 4.1.22 2006/11/02
MySQL Enterprise 5.0.30 [MRU] 2006/11/14
MySQL 5.1.14 2006/12/05
MySQL Enterprise 5.0.32 [MRU] 2006/12/20
MySQL Community Server 5.0.33 2007/01/09
MySQL Enterprise 5.0.34 [MRU] 2007/01/17
MySQL Enterprise 5.0.30sp1 [QSP] 2007/01/19
MySQL 5.1.15 2007/01/25
MySQL 4.0.30 2007/02/12
MySQL Enterprise 5.0.36 [MRU] 2007/02/20
MySQL 5.1.16 2007/02/26
MySQL Community Server 5.0.37 2007/02/27
MySQL Enterprise 5.0.38 [MRU] 2007/03/20
MySQL 5.1.17 2007/04/04
MySQL Enterprise 5.0.36sp1 [QSP] 2007/04/12
MySQL Enterprise 5.0.40 [MRU] 2007/04/17
MySQL Community Server 5.0.41 2007/05/01
MySQL 5.1.18 2007/05/08
MySQL Enterprise 5.0.42 [MRU] 2007/05/23
MySQL 5.1.19 2007/05/25
MySQL 4.1.23 2007/06/12
MySQL Enterprise 5.0.44 [MRU] 2007/06/21
MySQL 5.1.20 2007/06/25
MySQL Community Server 5.0.45 2007/07/04
MySQL Enterprise 5.0.46 [MRU] 2007/07/13
MySQL Enterprise 5.0.44sp1 [QSP] 2007/08/01
MySQL 5.1.21 2007/08/16
MySQL Enterprise 5.0.48 [MRU] 2007/08/27
MySQL Release Candidate 5.1.22 2007/09/24
MySQL Enterprise 5.0.50 [MRU] 2007/10/19
MySQL Community Server 5.0.51 2007/11/15
MySQL Enterprise 5.0.52 [MRU] 2007/11/30
MySQL Enterprise 5.0.50sp1 [QSP] 2007/12/12
MySQL Enterprise 5.0.54 [MRU] 2007/12/14
MySQL Enterprise 5.0.54a [MRU] 2008/01/11
MySQL Community Server 5.0.51a 2008/01/11
MySQL Enterprise 5.0.50sp1a [QSP] 2008/01/11
MySQL 5.1.23 2008/01/29
MySQL Enterprise 5.0.56 [MRU] 2008/02/06
MySQL 4.1.24 2008/03/01
MySQL Enterprise 5.0.58 [MRU] 2008/03/05
MySQL Enterprise 5.0.56sp1 [QSP] 2008/03/30
MySQL 5.1.24 2008/04/08
MySQL Community Server 5.0.51b 2008/04/24
MySQL Enterprise 5.0.60 [MRU] 2008/04/28
MySQL Enterprise 5.0.62 [MRU] 2008/05/12
MySQL 5.1.25 2008/05/28
MySQL Enterprise 5.0.64 [MRU] 2008/06/10
MySQL Enterprise 5.0.60sp1 [QSP] 2008/06/27
MySQL 5.1.26 2008/06/30
MySQL Enterprise 5.0.66 [MRU] 2008/07/09
MySQL Enterprise 5.0.66a [MRU] 2008/07/16
MySQL Community Server 5.0.67 2008/08/04
MySQL Enterprise 5.0.68 [MRU] 2008/08/13
MySQL 5.1.28 2008/08/28
MySQL Enterprise 5.0.70 [MRU] 2008/09/27
MySQL 5.1.29 2008/10/11
MySQL Enterprise 5.0.66sp1 [QSP] 2008/10/23
MySQL Enterprise 5.0.72 [MRU] 2008/10/24
MySQL General Availability 5.1.30 2008/11/14
MySQL 4.1.25 2008/12/01
MySQL Enterprise 5.0.74 [MRU] 2008/12/03
MySQL Community Server 5.0.75 2008/12/17
MySQL Enterprise 5.0.76 [MRU] 2009/01/05
MySQL Enterprise 5.0.72sp1 [QSP] 2009/01/13
MySQL 5.1.31 2009/01/19
MySQL Community Server 5.0.77 2009/01/28
MySQL Enterprise 5.0.78 [MRU] 2009/02/06
MySQL 5.1.32 2009/02/14
MySQL Enterprise 5.0.79 [MRU] 2009/03/09
MySQL 5.1.33 2009/03/13
MySQL Enterprise 5.1.31sp1 [QSP] 2009/03/19
MySQL 5.1.34 2009/04/02
MySQL Enterprise 5.0.74sp1 [QSP] 2009/04/30
MySQL Community Server 5.0.81 2009/05/01
MySQL Enterprise 5.0.80 [MRU] 2009/05/01
MySQL 5.1.35 2009/05/13
MySQL 5.0.82 2009/05/20
MySQL 5.0.83 2009/05/29
MySQL 5.1.36 2009/06/16
MySQL Enterprise 5.1.34sp1 [QSP] 2009/06/25
MySQL 5.0.84 2009/07/07
MySQL 5.1.37 2009/07/13
MySQL Enterprise 5.0.82sp1 [QSP] 2009/07/21
MySQL 5.0.85 2009/08/11
MySQL 5.1.38 2009/09/01
MySQL 5.1.39 2009/09/04
MySQL 5.0.86 2009/09/09
MySQL Enterprise 5.0.84sp1 [QSP] 2009/09/30
MySQL 5.1.40 2009/10/06
MySQL Enterprise 5.1.37sp1 [QSP] 2009/10/10
MySQL 5.0.87 2009/10/15
MySQL 5.0.88 2009/11/04
MySQL 5.1.41 2009/11/05
MySQL Enterprise 5.1.40sp1 [QSP] 2009/11/25
MySQL 5.0.89 2009/12/02
MySQL 5.1.42 2009/12/15
MySQL 5.1.43 2010/01/15
MySQL 5.0.90 2010/01/15
MySQL Enterprise 5.0.87sp1 [QSP] 2010/02/03
MySQL 5.1.44 2010/02/04
MySQL 5.1.45 2010/03/01
MySQL Enterprise 5.1.43sp1 [QSP] 2010/03/25
MySQL 5.1.46 2010/04/06
MySQL 5.0.91 2010/05/05
MySQL 5.1.47 2010/05/06
MySQL 5.1.48 2010/06/02
MySQL Enterprise 5.1.46sp1 [QSP] 2010/06/23
MySQL 5.1.49 2010/07/09
MySQL 5.1.50 2010/08/03
MySQL 5.1.51 2010/09/10
MySQL Enterprise 5.1.49sp1 [QSP] 2010/09/28
MySQL 5.1.52 2010/10/11
MySQL 5.1.53 2010/11/03
MySQL 5.1.54 2010/11/26
MySQL 5.0.92 2011/02/07
MySQL 5.1.55 2011/02/07
MySQL Enterprise 5.1.52sp1 [QSP] 2011/02/21
MySQL 5.1.56 2011/03/01
MySQL 5.0.93 2011/05/05
MySQL 5.1.57 2011/05/05
MySQL 5.1.58 2011/07/05
MySQL 5.0.94 2011/07/05
MySQL 5.1.59 2011/09/15
MySQL 5.1.60 2011/11/16
MySQL 5.0.95 2012/01/10
MySQL 5.1.61 2012/01/10
MySQL 5.1.62 2012/03/21
MySQL 5.0.96 2012/03/21
MySQL 5.1.63 2012/05/07
MySQL 5.1.65 2012/08/09
MySQL 5.1.66 2012/09/28
MySQL 5.1.67 2012/12/21
MySQL 5.1.68 2013/02/05
MySQL 5.1.69 2013/04/18
MySQL 5.1.70 2013/06/03
MySQL 5.1.71 2013/08/01
MySQL 5.1.72 2013/09/20
MySQL 5.1.73 2013/12/03

※ Not released なバージョンは掲載していない

どうやったか

 本資料は、以下の手順で作成した。

1. 各バージョンのRelease note より、バージョン番号と日付の一覧を取得し、手作業で泥臭く成形して tsv ファイルを作成
2. MySQLに格納用のテーブルを作成

CREATE TABLE myhist ( prodname varchar(30), ver varchar(20), releasedate 
varchar(10), description varchar(30));

3. tsvファイルのデータをロード

LOAD DATA LOCAL INFILE '/home/sakaik/work/mysql_history.txt'  INTO TABLE myhist FIELDS TERMINATED BY '\t';

 ロードを試みたところ「ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides」というエラーが発生したが、@mita2 さんのブログのおかげで瞬時に解決した。御礼申し上げる。

MySQL 8.0 の LOAD DATA で The used command is not allowed with this MySQL version エラー - mita2 database life


なお、local_infile は GLOBAL で設定すること。セッションでの設定を試みるとエラーとなる。

mysql> SET local_infile=on;
ERROR 1229 (HY000): Variable 'local_infile' is a GLOBAL variable and should be set with SET GLOBAL

4.クエリ実行

mysql> SELECT prodname, description ,
    ->   CASE WHEN ver LIKE '3.23%' THEN ver ELSE '' END ver323,
    ->   CASE WHEN ver LIKE '4.0%' THEN ver ELSE '' END ver40,
    ->   CASE WHEN ver LIKE '4.1%' THEN ver ELSE '' END ver41,
    ->   CASE WHEN ver LIKE '5.0%' THEN ver ELSE '' END ver50,
    ->   CASE WHEN ver LIKE '5.1%' THEN ver ELSE '' END ver51,
    ->   releasedate
    ->  FROM myhist 
    -> WHERE releasedate is not null
    -> ORDER BY releasedate;

 これにより、冒頭で紹介した結果を得た。

もう少しお遊び

 かつてのMySQLは、月に何度もリリースされることもザラにあった。もっとも1ヶ月間でリリースされた回数が多かったのはいつなのだろう、と調べてみた。結果は少々予想していたものと異なり、複数バージョンを同時並行でメンテしていた時期のものが上位に含まれるものとなったが、その中で、 MySQL 3.23 が1ヶ月の間に4度リリースされているのが目に留まる。スピード感と勢いがありましたね、あの頃。
 

mysql> SELECT 
    ->   COUNT(*) OVER (PARTITION BY SUBSTR(releasedate, 1, 7))  cnt,
    ->   SUBSTR(releasedate, 1, 7) ym, 
    ->   releasedate,
    ->   ver, description
    -> FROM myhist
    -> WHERE releasedate IS NOT NULL
    -> ORDER BY cnt DESC, releasedate ASC
    -> LIMIT 22;
+-----+---------+-------------+--------------+-------------+
| cnt | ym      | releasedate | ver          | description |
+-----+---------+-------------+--------------+-------------+
|   5 | 2006/05 | 2006/05/02  | 5.0.21       |             |
|   5 | 2006/05 | 2006/05/06  | 4.0.27       |             |
|   5 | 2006/05 | 2006/05/24  | 4.1.20       |             |
|   5 | 2006/05 | 2006/05/24  | 5.0.22       |             |
|   5 | 2006/05 | 2006/05/26  | 5.1.11       |             |
|   5 | 2009/05 | 2009/05/01  | 5.0.80 [MRU] |             |
|   5 | 2009/05 | 2009/05/01  | 5.0.81       |             |
|   5 | 2009/05 | 2009/05/13  | 5.1.35       |             |
|   5 | 2009/05 | 2009/05/20  | 5.0.82       |             |
|   5 | 2009/05 | 2009/05/29  | 5.0.83       |             |
|   4 | 2001/03 | 2001/03/10  | 3.23.34      |             |
|   4 | 2001/03 | 2001/03/11  | 3.23.34a     |             |
|   4 | 2001/03 | 2001/03/15  | 3.23.35      |             |
|   4 | 2001/03 | 2001/03/27  | 3.23.36      |             |
|   4 | 2003/01 | 2003/01/07  | 4.0.8        | Gamma       |
|   4 | 2003/01 | 2003/01/09  | 4.0.9        | Gamma       |
|   4 | 2003/01 | 2003/01/23  | 3.23.55      |             |
|   4 | 2003/01 | 2003/01/29  | 4.0.10       | Gamma       |
|   4 | 2005/07 | 2005/07/05  | 4.0.25       |             |
|   4 | 2005/07 | 2005/07/15  | 4.1.13       |             |
|   4 | 2005/07 | 2005/07/15  | 5.0.9        | Beta        |
|   4 | 2005/07 | 2005/07/27  | 5.0.10       | Beta        |
+-----+---------+-------------+--------------+-------------+
22 rows in set (0.00 sec)


.

An image by Dall-E