この記事は Groonga Advent Calendar 2014 の12日目の記事です。
最初は「Mroonga with MySQL Fabric(仮)」というタイトルを考えていたんですが、MySQL
FabricはフツーのMySQLサーバーの上でマスター昇格とかよしなにやってくれるためのミドル(?)ウェアなので、Mroongaも動いて当たり前だと思ってやめました。
じゃあ別のMySQLのHA実装のXtraDB
Clusterでもやろうかなと思いましたが、よく考えたらそれはもう1年半前にやっていて ( mroongaをXtraDB Clusterで冗長化できそうなメモ )
当時はまだ"m"が小文字だったんだなーとか感慨深いですね。
…
本エントリはMySQL Casual Advent Calendarの第11日目です。
MySQLの地理情報システム(GIS:Geographic Information
System)拡張は4.1の時代から存在します。
以前4.1/5.0のMBR*について以下のブログを書きました。
MySQLのGIS拡張
そして、5.1のBetaについて以下のブログを書きました。
MySQLのGIS拡張(2) 5.1の拡張
しかし、残念ながら5.1でのGIS拡張は本体にはマージされませんでした。
MySQL …
この記事は JPOUG Advent Calendar 2014 の10日目の記事です。
MariaDB 10.0には CONNECTストレージエンジン という MS
Accessでいうところのリンクテーブルなストレージエンジンが搭載されていて、リンクの方法にCSVとかXMLとかODBCとか色々あるようです。MySQLに昔から入っているFEDERATEDストレージエンジンはMySQLプロトコルしかしゃべれないのでリンク先は必ずMySQLサーバーでないといけないという制約がありますが、ODBCなら色々できるわけですよね。
というわけでさっくり試してみました。
unixODBC-develと …
この記事は MySQL Casual Advent Calendar 2014
の10日目の記事で、7日目の記事 grcでMySQLのクエリ結果に色を付ける へのアンサーエントリーです :)
MySQL 5.6.12
から、mysqlコマンドラインクライアントが使うデフォルトのreadlineが、フツーの(?)
readlineからMySQLにバンドルされているreadlineに変わっています。そのため、MYSQL_PS1(や--prompt)にecho
-eの出力結果を食わせてやろうとすると
$ export MYSQL_PS1=$(echo -e "\e[1;33mmysql[\d]\e[0m\n> ")[さらに読む]
$ client/mysql -S /usr/mysql/5.6.22/data/mysql.sock
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL …
この記事は Perl Advent Calendar 2014 の4日目の記事です。
最近 MySQL Fabric という "MySQLにお手軽HA &
シャーディング、しかもプロキシ不要!" なんてことを謳っているミドルウェアで遊んでいるわけですが、このMySQL
Fabric、プロキシ不要な代わりに対応しているコネクターが必要になっています(ある意味、コネクターがプロキシ機能を持っている感じ)
さてこのMySQL Fabric対応コネクター、今のところの選択肢は
* Oracle公式
* GA版
* Connector/J
* …
昨日パケットキャプチャを取って調べてたときに気付いた
、mysql_select_dbが効かない件をぴゃーっと雑に調べてみた。
sql-common/client.cのmysql_select_dbを見ると、
4493 int STDCALL
4494 mysql_select_db(MYSQL *mysql, const char *db)
4495 {
4496 int error;
4497 DBUG_ENTER("mysql_select_db");
4498 DBUG_PRINT("enter",("db: '%s'",db));
4499 DISABLE_FOR_FABRIC(1);
4500
4501 if ((error=simple_command(mysql,COM_INIT_DB, (const uchar*)
db,
4502 (ulong) strlen(db),0)))
4503 DBUG_RETURN(error);
4504 my_free(mysql->db);
4505 mysql->db=my_strdup(key_memory_MYSQL,
4506 db,MYF(MY_WME));
4507 DBUG_RETURN(0);
4508 }
…
この記事は MySQL Casual Advent Calendar 2014 の3日目の記事です。
クソクエリーについての名言
がつい先週生まれたばかりですが、みなさま如何お過ごしでしょうか。そういえば今年は Kuso-query As A Code みたいな話もさせてもらいました。
過去、現在、未来、全宇宙に存在する全てのクソクエリーを、生まれる前に自分の手でカジュアルに消し去るため(仮)に、MySQL 5.7.5-labsのQuery Rewrite Plugin …
tcpdump&Wiresharkでさくっと。
お手製MySQL Fabric対応mysqlコマンドラインクライアント からMySQL
FabricのMySQLプロトコルをしゃべる口に接続して、ちょこちょことステートメントを叩いてみる。
$ client/mysql -P 32275 -uadmin -pxxxx --protocol=tcp -h 127.0.0.1 --fabric-group=my_second_fabric --fabric-real-user=msandbox --fabric-real-password=msandbox[さらに読む]
mysql> \F
Current FABRIC_OPT_DEFAULT_MODE is ro
mysql> show tables;
ERROR 1046 (3D000): No database selected
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| tpcc |
+--------------------+
5 rows in …
ハマったのでメモ。
サンドボックスな環境でMySQLのポートを64055にしていたら、pt-query-digest --type
tcpdumpでそのまま食ってくれなかった。
結論、--portとかじゃなく、--watch-serverで指定するんだった。
$ sudo tcpdump -i any -p /tmp/test.cap -c 100
$ tcpdump -r /tmp/test.cap -n -x -q -tttt | pt-query-digest --type tcpdump
reading from file /tmp/test.cap, link-type LINUX_SLL (Linux cooked)
# No events processed.
あっれぇ。。
取り敢えずまずはPTDEBUG=1にして様子を見てみる。
$ tcpdump -r /tmp/test.cap -n -x -q -tttt | PTDEBUG=1 pt-query-digest --type tcpdump[さらに読む]
reading from file /tmp/test.cap, link-type LINUX_SLL (Linux cooked)
# /usr/bin/perl 5.010001
# Linux dev-personal-04 2.6.32-279.19.1.el6.x86_64 #1 SMP Wed Dec 19 07:05:20 …