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 mysqld | 5.7 mysqld | 8.0 mysqld | |
---|---|---|---|
5.6 mysqladmin | o | o | x |
5.7 mysqladmin | o | o | o |
8.0 mysqladmin | x | o | o |
こんな感じ。好き好んで違うバージョンのmysqladminでmysqldをシャットダウンするとは思わないけれど、mysqld_multi使ってたらたまたま気が付きました。
0 件のコメント :
コメントを投稿