カテゴリー別アーカイブ: MySQL

CentOS6にMySQL5.6×Mroonga環境を作るCookbookを作ったちょっと嬉しかった話(とお礼)

最近、

が降ってきまして、

「なるべく初期費用抑えたい(スモールスタート)」っていう要望で、

カジュアルに全文検索やるとしたら何かなーって思ったら、

MySQLにプラグインで追加できるMroongaが良いんじゃないかって思いました。

 

…で、とりあえず検証してみようと思ってインストール方法を見てみたら、

CentOS 6用のパッケージはCentOS 5用のパッケージと違い、ディストリビューション由来のMySQLパッケージ(MySQL 5.1系)を利用します。

ってなってて、

なんてTwitterで呟いてたら、やさしい方々が助けてくれました。

 

なかなか周りにはこういう時に頼れる人って身近にいなくって、

自分でひたすらGoogle先生に聞いて試してみてっていうのが主だったので、

まず単純に嬉しかったのと、

実際に会ったことがない人とTwitterで繋がって助けてもらえるっていうのが、

なんかちょっと感動でした。

 

そして、その結果、こんなものを作りました。

Amazon Linuxでも使えるようにしたいけど、

まだちゃんと動かなかったりと完成はしておりませんが、

近いうちに修正したいと思います。

 

何をどう助けてもらったかの細かい内容については、

勝手に載せるのもアレなんで差し控えさせていただきますが、

この場を借りてお礼だけさせてください。

@yoku0825さん、@kazeburoさん、@ktouさん (順不同)

ありがとうございます!

 

 


MySQL5.6インストール

先日リリースされたMySQL5.6の導入方法のメモです。

 

環境はCentOS5.8(64bit)になります。

 

まず、RPMが用意されているので、落とします。

ココからダウンロード

 

とりあえず、MySQL Server本体と、接続するためのClientがあれば基本操作はこなせるので、

その二つを落とします。

  • MySQL Server本体
    Linux – Generic (glibc 2.5) (x86, 64-bit), RPM Package
    MySQL Server
    (MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm)
  • Client
    Linux – Generic (glibc 2.5) (x86, 64-bit), RPM Package
    Client Utilities
    (MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm)

 

落としたRPMをサーバまでもっていきます。

※サーバ上で直接落とす場合は、

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm/from/http://cdn.mysql.com/

そして、インストール・・・しようとすると、

「公開鍵がインポートされていないために信頼できる提供元かどうかわからない」旨の警告が出ます。

無視するコマンドオプションもあった気がしますが、

このページに取得方法が載っています。

上記ページに書いてある方法が面倒であれば、

書いてあるキーの部分をコピペしてキーファイルを作ってしまうという手もありますw

そして、公開鍵をインポートした上で、

 # rpm --import mysql_pubkey.asc
 # yum localinstall MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm
 # yum localinstall MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm

以上で、インストールは完了です。

 

 

インストール後、いざ接続してみようとすると接続できませんでした・・・

原因は、5.6はRPMで入れると初期パスワードがランダムで設定されるからでした。

こちらの記事のおかげですぐに解決しました。

 


MySQL5.6の気になる機能

MySQL5.6のGA(Generally Available)版が近日リリースされるとの噂を聞きました。

リリースされたらすぐに使うかもしれない(少なくとも検証はするはず)ので、

以前から気になっていた魅力的な新機能や改善点をピックアップしておきたいと思います。

 

  1. レプリケーションの自動フェイルオーバー

    MySQL Utilities(に含まれるmysqlfailover)と組み合わせることで、
    レプリケーションマスタの障害時に自動フェイルオーバーができるようになった。
    今までも、MHAというDeNA社が社内開発したものをOSSで公開したツールを利用することで可能でしたが、
    調べてみたところMySQL Utilitiesの方が導入・設定が簡単そうなことと、
    正式サポートの安心感があるので嬉しい機能です。

  2. サブクエリの高速化

    Semi Joinが利用できるクエリ(基本的にはOR条件ではないEXISTS句やIN句)が最適化されて高速化された。
    これは、よく遅くて困るところなので、どれほどのものかかなり気になります。

  3. InnoDBのFULLTEXTインデックスサポート

    マルチバイトUTF-8にどこまで対応しているのかが不明ですが、本当に正しく使用できるのであれば気になる機能です。

 

あとは、オプティマイザとCPU効率がかなり良くなったとのことなので、 単純に性能向上がどれほどのものか気になります。

 

この間のチューニンガソンでは、「5.6にしたら遅くなった・・・」と言っていた方がいたので、

単発のクエリはあまり期待できない気がしますが、

オラクルの公式ブログのグラフでは単位時間あたりのトランザクション数が倍くらいに向上している図があったので、

並列処理の効率アップは期待できそうです。