MySQL 5.5.3-m3, 5.5.4-m3 同時リリース

 米サンタクララで開催中のMySQLカンファレンスに合わせてリリースされました。同時リリースになったのは InnoDB Plugin 1.1 を公開したかったからだと推測しています。
http://www.mysql.gr.jp/frame/modules/news/article.php?storyid=175


 MySQL 5.5.4-m3 は
   ・InnoDB Plugin がそれまでの 1.0.6 から 1.1 に変更された
   ・Linux x86_64 版しか公開されていない


 というくらいの話題に留めておいて、ここでは主に MySQL 5.5.3-m3 について。


MySQL 5.5.3 では非常に多くの変更がなされています。日本語的には以下のものが気になるところですね。
 - キャラクタセットとして、utf16 コードと utf32 追加。
 - キャラクタセットとして念願の 4バイトUTF-8 に対応(名称は utf8mb4)。
  ちなみに UTF-8 の 4バイト領域にはこんな文字があります。文字なんだか部品なんだか分からないようなものも多いですが(笑)。>http://www.mysql.gr.jp/frame/modules/bwiki/index.php?cmd=read&page=utf8_4
 - 日本語文字コード間の変換を高速化


面白そうな機能として、PERFORMANCE_SCHEMA が追加されたというのがあります。デフォルトでは無効になっているので、MySQLサーバ起動時に --performance_schema オプションを指定(というか my.cnf や my.ini に performance_schema を記述するな、私は)する必要があります。
INFORMATION_SCHEMA みたいな感じで、各種パフォーマンスに関する低レベルな実行情報をモニタリングできるもののようです。


あとは mysqlコマンドラインクライアントに追加された、auto-vertical-output オプション。 結果が画面出力幅に収まらない場合に自動的に \G を指定したかのような縦型出力をしてくれるというものです。 たぶん私は使わない。必要に応じて \G 指定するもん(笑)。


その他細かい事では、
 - dtoa ライブラリを使用することになったらしい。数字と文字の変換について LinuxWindows で結果が異なる場合があるとか書いてあって、ちょっとドキドキの変更です(どういうケースで変わるかは、追って調査したいと思います)。
 - SELECT t.* AS 'alias' FROM t という全カラムに対するエイリアスが書けなくなった。っていうかそもそも、こんな書き方ができていたんだ〜(^^;
 - SELECT 時を SQL_CACHE と SQL_NO_CACHE を両方指定してもエラーにならなかったけどエラーになるようになった(ちゃんとチェックするようになった)
 - INFORMATION_SCHEMA.ROUTINES に RETURNS に関する情報を格納するカラムが7つほど追加された



 そして大きいのが、「これまで非推奨とアナウンスされていた構文、変数、オプションなどを一気に削除した」というのが挙げられます。 私も実は MySQL 5.5.3-m3 が起動できずにしばらく悩んだのですが、サーバの "default-character-set" オプションが廃止になっているんですよ。 character-set-server を使用します。 さらに mysql クライアントのオプションとしては character-set-client ではなく default-character-set のままなので注意が必要です。



 後ほどエントリをあらためて、廃止になったものたちについてまとめたいと思います。

MySQL 5.5.3-m3 で廃止になった変数やオプションなどを整理しました

 MySQL 5.5.3-m3 ではたくさんのオプションやコマンドなどが廃止となりました。もともと非推奨(obsolete)されていたものですが手に馴染んでいたものも多く、しばらくは使いながら混乱することでしょう。
 ひとつ前の日記で宣言したとおり、以下に変更点を整理しておきます。情報量としては基本的にリリースノートと同じです(リリースノートの抜き書きです)が、こちらのほうが少しは見やすくなっているかな、、、見やすくなっていたらいいな、、、と思います。


廃止されるシステム変数 代わりに使う変数
log_bin_trust_routine_creators log_bin_trust_function_creators
myisam_max_extra_sort_file_size -
record_buffer read_buffer_size
sql_log_update -
table_type storage_engine
廃止される文など 代わりに使うもの
TIMESTAMPADD() 関数の FRAC_SECOND modifier -
CREATE TABLE 等の際の TYPE 指定(ストレージエンジン指定) ENGINE
SHOW TABLE TYPES 文 SHOW ENGINES
SHOW INNODB STATUS 文と SHOW MUTEX STATUS SQL SHOW ENGINE INNODB STATUS と SHOW ENGINE INNODB MUTEX
SHOW PLUGIN SQL SHOW PLUGINS
LOAD TABLE ... FROM MASTER 文と LOAD DATA FROM MASTER 文 mysqldump や mysqlhotcopy を使用してダンプしてそれをリロードする
BACKUP TABLE 文と RESTORE TABLE 文 同上
TIMESTAMP(N) 型の N の指定部分 表示幅の指定は廃止
廃止されるサーバオプション 代わりに
--default-character-set と --default-collation --character-set-server と --collation-server
--delay-key-write-for-all-tables --delay-key-write=ALL
--enable-locking と --skip-locking --external-locking と --skip-external-locking
--log-bin-trust-routine-creators --log-bin-trust-function-creators
--log-long-format -
--log-update -
レプリケーション設定用の --master-xxx *1 CHANGE MASTER TO 文を使用する
--safe-show-database -
--skip-symlink と --use-symbolic-links --skip-symbolic-links と --symbolic-links
--sql-bin-update-same -
--warnings --log-warnings
クライアント名 廃止されるクライアントオプション 代わりに
mysql --no-named-commands --skip-named-commands
mysql --no-pager --skip-pager
mysql --no-tee use --skip-tee
mysqlbinlog --position --start-position
mysqldump --all --create-options
mysqldump --first-slave --lock-all-tables
mysqld_multi --config-file --defaults-extra-file
- --set-variable=var_name=value や -O var_name=value での汎用オプション指定 --var_name=value

.

*1:--master-host, --master-user, --master-password , --master-port, --master-connect-retry, --master-ssl, --master-ssl-ca, --master-ssl-capath, --master-ssl-cert, --master-ssl-cipher, --master-ssl-key