みんなだいすき(?)、MySQL 4.0以前の古い16桁ハッシュで保存されたパスワードで認証するために必要な --secure-auth が5.7.5でついに非推奨になりました。
http://dev.mysql.com/doc/refman/5.7/en/server-options.html#option_mysqld_secure-auth
が、「非推奨になったよ。そのうち消える。オプションはパースされるけど無視されるようになった!」というマニュアルの記載はアレで、実際はちょっと下に引用文っぽく書かれている「--secure-auth=0
や--skip-secure-auth を指定すると起動しません」の方が正しい。
…
Original post: http://anothermysqldba.blogspot.com/2014/10/rotating-mysql-slow-logs.html
異なるクライアントでの作業中に、私は時々非常に大規模なスローログファイルを渡って実行するために起こる。 が、それらを回転させるべきかについて、いくつかの意見が存在する。 これらの意見の多くは、私も自分のバイナリログをフラッシュすることを好まない、ログローテートとフラッシュlogsコマンドを使用します。 私はロナルドブラッドフォードに同意するのはこのためです …
取り合えず、PerlからCに変わってる。
$ file /usr/mysql/5.6.20/scripts/mysql_install_db
/usr/mysql/5.6.20/scripts/mysql_install_db: a /usr/bin/perl script text executable
$ file /usr/mysql/5.7.5/bin/mysql_install_db
/usr/mysql/5.7.5/bin/mysql_install_db: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
あと、パスが変わってる。今までは./scriptsだったのが./binに(rpmで使ってるぶんには何も変わらないはず)
ソースの位置もclient/mysql_install_db.ccになってる。
増えたオプションがいっぱい。
$ /usr/mysql/5.7.5/bin/mysql_install_db --help[さらに読む]
..
--admin-auth-plugin=name
Plugin to use for the default admin account.
--admin-host=name Hostname part of the default admin …
実際にはLabs版の5.7.4(InnoDB GIS)から必要になってたらしい。5.7.5のリリースノート を"boost"で引っかけると出てきたり、Building MySQL with Boost | MySQL Server
Blog に書いてあったりした内容を試したっていうだけのメモ。
( ´-`).oO(MySQL Server
Blogには1.55が必要って書いてあるけど、リリースノートにはバージョン特に書いてないなぁ。。cmake/boost.cmakeを見る限り、1.55が決め打ちで必要とされてるぽいけど(1.56ではダメ)
CentOS 6.3の公式リポジトリからyumで突っ込んでみるも、バージョンが1.41なのでやっぱりダメっぽい。
$ cmake .[さらに読む]
..
-- …
MySQL 5.7.5では、*UNDOログ領域が共有テーブルスペース上になければ*
使っていない領域をシュリンクさせることが出来るようになったらしい。
まずはUNDOログ領域を共有テーブルスペース上から追い出す設定。これは5.6で既に使える。共有テーブルスペースを作る *前に*
やっておかないといけないので注意。
$ vim my.cnf
..
innodb-undo-tablespaces= 2
..
とりあえずinnodb-undo-tablespacesを2以上にすればOK。暗黙のデフォルトは0(=共有テーブルスペース上にUNDOテーブルスペースを作る)
…
MySQL 5.7ではmysqlスキーマのテーブルがいくつかMyISAM => InnoDB化されている。
5.6ではInnoDB統計情報永続化のヤーツと{master|relay-log}_info_repositoryのヤーツだけだったのが、
mysql56> SELECT @@version;[さらに読む]
+------------+
| @@version |
+------------+
| 5.6.20-log |
+------------+
1 row in set (0.00 sec)
mysql56> SELECT table_name, engine FROM information_schema.tables WHERE table_schema= 'mysql';
+---------------------------+--------+
| table_name | engine |
+---------------------------+--------+
| columns_priv | MyISAM |
| db | MyISAM |
| event | MyISAM |
| func | MyISAM |
| general_log | CSV |
| help_category | MyISAM |
| help_keyword | MyISAM |
| …
MySQL 5.7.5の新機能ネタ。
いままでMySQLでgraceful shutdownぽいことをしようとすると、SET GLOBAL
max_connections= 1
で接続を制限するくらいしか思いつかなかったけれども(LVSとかでやりくりするのは除く)
* 接続を切断するわけではないので、Connector/Jのコネクションプーリング的なものとかと相性が悪い
* クライアントにはError: 1040 (ER_CON_COUNT_ERROR) "Too many connections"
が戻ってしまう
* しかも、Error:
1040は通常運用でも異常系として発生しうるので、区別してハンドルするのはかなり無理ゲー
と、イマイチgraceful shutdownの夢を見切れなかったけれども。
5.7.5で追加されたオフラインモードが多少なりとも夢を見させてくれるかも知れない。
オフラインモードは
* SET GLOBAL …