先日Oracle Database 12c Release 1がリリースされまして、新機能ガイドを眺めていたところ気になる新機能を見つけました。
Oracle Database 12c Release 1にはliboramysql12という共有ライブラリが同梱されていて、これをlibmysqlclientと差し替えるとMySQL向けに書かれたアプリケーションがそのまま …
[さらに読む]Ideas, releases, practical guides, and perspectives from the people building with MySQL.
MySQLのバグ#20786は、ケーキを取得!http://www.youtube.com/watch?v=oAiVsbXVP6k
最後に笑いは最良の部分です。
MySQL Bug #20786 gets cake ! http://www.youtube.com/watch?v=oAiVsbXVP6k
The laugh at the end is the best part.
http://bugs.mysql.com/bug.php?id=20786
WEBサーバーが増設されて、MySQLのユーザーを追加しなきゃいけなかった時にCREATE USER .. LIKE
...みたいなのが使えたらなぁとか思っていたら、@RKajiyamaさんにmysqlusercloneがあるよ! と教えてもらったので試してみる。
MySQL Utilitiesはだいぶ前にmysqlfailoverを試したくて入れたっきりで、あの時はまだMySQL
Workbenchにしか入っていなかった(いつだったか独立して入れられるようになった)ので、WorkbenchのソースコードからUtilitiesの部分だけインストールしたなぁとか感傷に浸りつつ、お手軽にrpmで突っ込む。
…
MySQL Workbenchの次期バージョンである6.0のベータ版が公開された。例によってMySQLのダウンロードサイトで公開されているので、新機能が気になる人はゲットして試してみて頂きたい。見た目が若干今流行りのフラットデザインっぽくなってシャレオツ(笑)な感じに仕上がってる。
ベータ版が公開されたのを記念して、Workbenchに搭載されているナイスな機能について紹介したい。そう、Visual Explainだ。Visual Explainとは読んで字のごとく、SQLの実行計画を視覚的に表現したものだ。SQLが複雑になると、その実行計画は理解し辛いものとなる。
今日はVisual Explain基本的な使い方と、それがどのように見えるかを紹介しようと思う。
Visual …
[さらに読む]
mysqlコマンドラインクライアントの表示に色をつけたくなった。
イメージとしてはこんな感じ。
$ client/mysql -S/usr/mysql/5.6.12/data/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11532
Server version: 5.6.12-log Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql>
mysql>
mysql> exit
Bye
mysql-5.6.12/client/mysql.ccに手抜きな感じで追加。
$ vim client/mysql.cc[さらに読む]
..
1316 put_info("\033[1;31mWelcome to the MySQL …
何度も忘れるのでいい加減メモ。
SHOW {MASTER|SLAVE} STATUSがSUPERまたはREPLICATION CLIENT、
SHOW SLAVE HOSTS, SHOW {BINLOG|RELAYLOG} EVENTSがREPLICATION
SLAVE。
mysql55> SHOW MASTER STATUS;[さらに読む]
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
mysql55> SHOW SLAVE STATUS;
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation
mysql55> SHOW SLAVE HOSTS;
ERROR 1227 (42000): Access denied; you need (at least one of) the REPLICATION SLAVE privilege(s) for this operation
mysql55> SHOW BINLOG EVENTS IN 'bin.000001';
ERROR 1227 (42000): Access denied; you need (at least one of) the REPLICATION SLAVE privilege(s) for this operation
mysql55> SHOW RELAYLOG EVENTS IN 'relay.000001';
ERROR 1227 (42000): …
MySQLのmanページのライセンスがGPLからプロプライエタリライセンスに変更されたというようなことが騒ぎになっている。既にご存知の方はいらっしゃるだろうが、これはバグであり意図して行ったものではない。何故このようなバグが起きたかということも含め、今日はmanページにまつわる話をしたい。
バグが起きた仕組み結構な人が「バグでそんなことが起きるの?」と考えたようだ。「manページのマニュアルを差し替えるなんて人為的にやらなきゃ起こり得ない」という思考だろう。そう考える前にひとつ事実を知ってほしい。そもそもMySQLのソースコードとmanページはもともと別個に管理されているということを。
どれでもいいので以下のページに記載されてあるリポジトリをコピーしてみてほしい。 MySQL Server in …
[さらに読む]
クエリーキャッシュに載ってるかどうかの判定はSQLがパースされる前に比較されるから、SELECTステートメントは一字一句同じでないとクエリキャッシュ利かないよ、というのは有名な話。
http://dev.mysql.com/doc/refman/5.5/en/query-cache-operation.html
取り敢えず↑に答えが書いてあったがメモ。
MariaDBのinformation_schema.QUERY_CACHE_INFOをいじっていて気が付いたんだけど、クエリーキャッシュってカレントデータベースも区別してクエリキャッシュに登録してる。
(↓の出力は、そのプラグインをMySQL5.5向けに書き直したやつだけど)
…
MySQL Cluster 7.3の正式版がリリースされた。このバージョンで追加された新機能は少ない。だが、これまでにリリースされたMySQL Clusterのバージョンの中で、この7.3こそが最も重要なバージョンである!と私は考えている。新機能は少ないが非常に重要なものが詰まっているからだ。今日はMySQL Cluster 7.3の新機能について見てみよう。
外部キー制約、来たる!何を差し置いてもまず重要なのが、外部キー制約である。長年InnoDBでは使えるが、MySQL Cluster(NDBストレージエンジン)には実装されていなかった。外部キー制約が使えないという理由でMySQL Clusterを採用しなかったという人も多いだろう。
だが、それはこれまでの話だ。MySQL Cluster 7.3なら外部キー制約が使える!!
…
[さらに読む]
マスターでこんな処理をしている時の話。
mysql> CREATE TEMPORARY TABLE this_is_tmp_table (..);
mysql> INSERT INTO this_is_tmp_table SELECT .. FROM this_is_origin_table WHERE ..;
mysql> UPDATE this_is_tmp_table SET ..;
mysql> INSERT INTO this_is_summary_table SELECT .. FROM this_is_tmp_table;
mysql> DROP TEMPORARY TABLE this_is_tmp_table;
テンポラリーテーブルを使ってごにょごにょした後に、
テンポラリーじゃないテーブルにデータを書き出すような処理。
テンポラリーテーブルは
・datadirではなくtmpdirにデータ実体が吐かれる(ibdata1は別として)
・CREATE TEMPORARY TABLEしたスレッド以外からは見えない
・CREATE TEMPORARY TABLEしたスレッドが接続を閉じれば消される
…