Quantcast
Channel: 日々の覚書
Viewing all articles
Browse latest Browse all 581

MySQL 5.7, MySQL 8.0 でちょっとだけmysqladmin shutdownが変わる

$
0
0
日々の覚書: MySQL 5.7.9でSHUTDOWN *ステートメント* が実装されたよ! (我ながらなんて雑なエントリーなんだ。。)のタイミングで、mysqladmin shutdownの内部動作にも変更が入っていて、

A new SHUTDOWN SQL statement is available. This provides an SQL-level interface to the same functionality previously available using the mysqladmin shutdown command or the mysql_shutdown() C API function. See SHUTDOWN Syntax.
The mysql_shutdown() function and corresponding COM_SHUTDOWN client/server protocol command are deprecated and will be removed in a future version of MySQL. Instead, use mysql_query() to execute a SHUTDOWN statement.

MySQL :: MySQL 5.7 Release Notes :: Changes in MySQL 5.7.9 (2015-10-21, General Availability)


サーバーがMySQL 5.7.9よりも前のバージョンの場合は mysql_shutdown C APIを、5.7.9とそれより後のバージョンの場合は SHUTDOWNステートメント を発行するようになっている。

https://github.com/mysql/mysql-server/blob/mysql-5.7.9/client/mysqladmin.cc#L713-L718


MySQL 5.7.8とそれより前のmysqladmin shutdownはこのmysql_shutdown C APIをずっと使っていたんだけれど、MySQL 8.0.0ではこのmysql_shutdown C APIが削除された。


The deprecated mysql_shutdown() C API function and corresponding COM_SHUTDOWN client/server protocol command have been removed. Instead, use mysql_query() to execute a SHUTDOWN statement.

MySQL :: MySQL 8.0 Release Notes :: Changes in MySQL 8.0.0 (2016-09-12, Development Milestone)


これによって、MySQL 5.7.8とそれ以前の mysqladmin shutdownはMySQL 8.0.0とそれ以降をシャットダウンできなくなっている。そして、MySQL 8.0.0の mysqladmin shutdownもMySQL 5.7.8とそれより前のバージョンのサーバーをシャットダウンできない。

$ /usr/mysql/5.6.34/bin/mysqladmin -S /usr/mysql/8.0.0/data/mysql.sock shutdown
/usr/mysql/5.6.34/bin/mysqladmin: shutdown failed; error: 'Unknown command'

5.6 mysqld5.7 mysqld8.0 mysqld
5.6 mysqladminoox
5.7 mysqladminooo
8.0 mysqladminxoo
こんな感じ。好き好んで違うバージョンのmysqladminでmysqldをシャットダウンするとは思わないけれど、mysqld_multi使ってたらたまたま気が付きました。

Viewing all articles
Browse latest Browse all 581

Trending Articles