goo blog サービス終了のお知らせ 

MySQL+DB+OSS

MySQL・Data Base・Open Source Software

ZABBIX と MySQL

2006-08-28 17:50:53 | MySQL
MySQLを使ったネットワーク監視ツール ZABBIX

・OSS
・無料
・日本語版有

MySQL使っています。
バージョンは3.22以降ならどれでも動くそうです。
ZABBIXの最新安定バージョン: 1.1.1です。

海外のOSSツールのDBはMySQLでMYISAMを使うのが大半の様です。

本家サイト
http://www.zabbix.com/
日本語サイト
http://www.zabbix.jp/


ブームに乗り遅れること数か月ですが最近成分分析してみました。
http://seibun.nosv.org/
MySQLの解析結果
MySQLの62%は犠牲で出来ています
MySQLの34%は鉛で出来ています
MySQLの4%はお菓子で出来ています

大変そうです。



ZABBIXのMySQLバージョンをあげたい場合は
MySQLのバージョンアップなどは↓のサイトで色々書かれていますので参考になさってください。
http://blogs.yahoo.co.jp/mysql

MySQL認定試験

2006-08-25 15:13:00 | MySQL
昨日、MySQL 4 Professional Certificationの受験にいきました。
結果はFailです。Failです。。Failです。。。Failです。。。。Failです。。。。ヒロシ風

私の勤めている会社は社員教育に投資してくれていますので受験料をもってくれてます。
さらに合格したら一時金も支給してくれます。
なんて素晴らしいのでしょう!

来週ぐらい再受験いってきます。

MYSQL認定試験についての説明はこちら↓
http://www.s-style.co.jp/about_mysql/mysql_exam.php

扱っているのはピアソンVUE
http://www.vue.com/japan/

MySQL と イルカ

2006-08-24 10:00:00 | MySQL
MySQLのシンボルロゴはイルカ。
これは2001年にフィンランドの広告代理店Priorityがデザインしたそうです。

イルカのイメージは頭がよくて、敏捷で、スリム!
また、データの大海原を楽々と進むという意味も込めてイルカにしたそうです。

↓のサイトはMYSQLのプラチナパートナーです。
ここみたいにサイト内などでイルカのロゴを使うにはMYSQL ABの承認が必要なんです。
http://www.s-style.co.jp/

イルカ号・・・

イルカ号でピンとくる人は同じ趣味です。


MySQL と Pentaho

2006-08-23 17:04:16 | MySQL
MySQL ABのサイト内PARTNER SOLUTIONSにPentaho BI Suiteっていう製品が紹介されています。
Pentahoって聞いたことある人多いでしょうか?
先日掲載したNRIのオープンソース成熟度グラフの一番下の方に出てきています。
つい最近ベンチャキャピタルから200億円の融資を受けたようで金額が半端でないですね。
それだけ注目されているということでしょう。

PentahoはBI製品。
BIってなんや?
ビジネス・インテリジェンスの頭文字とった略語です。
ビジネス・インテリジェンスってなんや?
意思決定支援ツールって事みたいです。
蓄積したデータを有効に加工してよりよい意思決定をさせるためのツールって感じなんでしょうか。

http://solutions.mysql.com/solutions/item.php?id=164

http://www.pentaho.org/

OSSなのでまたいじってみたいと思います。

mixi と MySQL

2006-08-22 09:14:25 | MySQL
MySQLの導入事例として
日本で一番大きなSNSサイトであるmixiが紹介されています。
mixiのユーザ数は300万人以上。
1日のページビューは150億VIEW以上。
世界TOP30に入るトラフィックなんですが、そのバックを支えているのがMySQL!

mixiのMySQLサーバ数は100台以上。
さらに10台/月で増やしていっているそうです。

構成環境は以下のような感じだそうです。

Hardware: Dell PE850
OS: Fedora Core 4
CPU: Intel Pentium
RAM: 4 GB
Hard Disk: 300GB SCSI
Language: Perl
Database: MySQL Server
Database Size: 836 GB
(Diaries) 400 Million Rows per Table

どのように負荷分散させたかというとデータベースを役割毎に分割する方法をとったそうです。
テーブルの種類毎であったり、ユーザーID毎であったり。
5.0以前はDBリンク機能がなかったので、スクリプト側のコードやパーテショニング情報をもっているテーブルにクエリを送らないといけないなど煩雑になってしまったそうです。
MySQL5.0.3からはFEDERATED Storage Engineが導入されました。
これはDBリンク機能のあるテーブルです。
なのでmixiのようなDB分割して負荷分散させたいケースには便利そうです。
今度試してみます。

http://www.mysql.com/why-mysql/case-studies/mysql-cs-mixi.pdf

http://itpro.nikkeibp.co.jp/article/NEWS/20060330/233820/

PHP と SHIFT_JIS と MySQL

2006-08-21 11:23:36 | MySQL
HTMLのmeta内charsetがSHIFT_JISであったり
CGIスクリプトがSHIFT_JISであったり
DBがSHIFT_JISであったりとどこかにSHIFT_JISが絡んでいると必ず5C問題に引っかかります。
MYSQLがUJIS(EUC-JP)でもPHPソースがEUC-JPでもぶち当たります。
SHIFT_JISがどこかに挟まっていたらハマります。
じゃあSHIFT_JISを使わなければいいだけやんという方はそれが一番手っ取り早いです。
なのでUTF8かEUC-JP(UJIS)を使っておくのが一番です。

でも、SHIFT_JISをつかっても問題ない方法に興味があるので調べてみました。


5C問題とはなにか?
SHIFT_JISで文字コードの最後に5Cがつく文字が40種類あるのですが
その文字を内部処理をする時、5Cがエスケープ文字として受け止められます。

PHPの場合、php.ini内に「Magic Quotes GPC」というオプションがあります。
これはデフォルトでONになっています。
こいつが何をするかといえば、自動でエスケープ文字を取り除くんです。
OFFにしておけばPHP内で害はないのですが、i-modeサイトを作りたい場合や、MYSQLに検索かけに行く場合などはまた変換かかってエスケープされますので同じです。
URLのエンコード/デコード時にもこの問題がでるはずです。

たとえば「ソ」は「83 5C」です。
Magic Quotes GPCをONのまま「ソ」で検索しようとしたら5Cが取り除かれて「83」だけで検索にいきます。
もちろん「83」な文字はないのでヒット件数はゼロです。

SHIFT_JISの「ソ」をきちんと「ソ」として認識してもらうには「ソ¥¥」と打てば
一番最後¥のだけがエスケープされるので「ソ」と認識してもらえます。

では、PHPでどうやればいいかというと以下のようにします。

get_magic_quotes_gpc()はget_magic_quotes_gpcの値が何で設定されているかを取得してくれる標準関数です。
「find_word」という名前で画面内のテキストボックスからある値を取得するとします。
addslashes()はエスケープ文字を追加してくれる関数です。

if (!get_magic_quotes_gpc()) {
 $find_word = (($_POST['find_word']));
} else {
 $find_word = (addslashes($_POST['find_word']));
}


addslashesを入れるだけで回避方法は単純な事なのですが、
PHPの理屈がわかっていなかったので非常に難しかったです。


5C文字は「ソ」以外にもあります。以下の40文字です。
SHIFT_JISを使っている場合、一見普通に動いているようにみえても
以下の文字を使ったときに正常な結果が得られないのなら5C問題が解決されていないという事になります。

― ソ Ы 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄
兔 喀 媾 彌 拿 杤 歃 濬 畚 秉 綵 臀 藹 觸 軆 鐔 饅 鷭


以下のサイトが非常に役に立ちました。
http://www.shtml.jp/mojibake/sjis_cgi.html

ニコヤーコさんのところでも5C問題記事発見。
http://blogs.yahoo.co.jp/mysql/13630369.html

MySQL と XML

2006-08-18 10:10:22 | MySQL
MySQLならXML解析してくれます。


XMLってなんや?
XMLはメタ言語だそうです。
メタ言語ってなんや?
言語を設定する言語だそうです。

メタ言語を文字で説明しようとするとややこしいです。
仮に私が「本」というメタ言語を定義しました。
「本」に含まれる情報としては「本のタイトル」があります。
また「著者」情報もあるでしょう。
著者の情報としては「著者名」であったり「イニシャル」であったり、色々あります。
・・ということを定義する言語がメタ言語です。
これをXMLで書くと以下のようになります。

<book>
 <title>A guide to the SQL standard</title>
 <author>
  <initial>CJ</initial>
  <surname>Date</surname>
 </author>
</book>


このXML文をそのままMySQLにインサートできます。
INSERT INTO x VALUES
('
<book>
<title>A guide to the SQL standard</title>
<author>
<initial>CJ</initial>
<surname>Date</surname>
</author>
</book>
');


登録した情報を取得するには

mysql> SELECT EXTRACTVALUE(doc,'/*/*/initial') FROM x;
+----------------------------------+
| EXTRACTVALUE(doc,'/*/*/initial') |
+----------------------------------+
| CJ |
| J |
+----------------------------------+
2 rows in set (0.01 sec)


http://dev.mysql.com/tech-resources/articles/mysql-5.1-xml.html



先日、Web 2.0アプリと呼ばれているOSSの中でeyeOSなるものをDLして使ってみました。
ブラウザ内にデスクトップ環境をつくり、その中でまたウインドウズ操作できる。
ウインドウズの中の一つの窓であるブラウザの中にまたウインドウズがあってさらにまた・・・鏡の中の鏡という感じでした。
ブラウザをMDIとして使おうとしているアイデアは非常に面白いのですがブラウザの制限で使いにくいのが残念でなりません。


業界素人なので、技術的な事はさっぱりわかりませんが、
Webアプリがブラウザで動作制限されている現状はどうにかならんのかと思います。
マイクロソフトのアクティブXドキュメントみたいなEXEをDLしてクライアントで実行とかなるとセキュリティ問題がうるさいですし、DLは面倒ですが使いやすいのは確かです。
ブラウザを使っていても起動しているのは別アプリ的な何か便利なシステムはないものでしょうか。

MySQL ライセンスチャート

2006-08-17 09:20:14 | MySQL
一番初めの記事で書いていたライセンスチャートのURLがリンク切れになっているようです。
WEBはリンク先の構成が変わると表示できなくなるので面倒ですね。
こういうときにグーグルのキャッシュ機能が便利なのですが、
他には大阪の会社でWEB魚拓というサービスをしているところがあります。

http://megalodon.jp/

ですが、WEB記事にも著作権があるものもありますから、
なんでもかんでもキャッシュで残しておけるというのも問題なのかもしれません。
有料サイトなどは商売あがったりです。


ということでライセンスチャートをキャッシュ化してみました。
これでリンク切れが起こることはWEB魚拓の会社がサービスを止めない限りないでしょう。
http://megalodon.jp/?url=http://www.s-style.co.jp/about_mysql/chart2.html&date=20060817090959


URLが長いです。同じ会社のウェブ精米サービスを使って短くしてみます。
http://symy.jp/?vm_mysql


短くていいですね!

MySQL SHOW STATUSの仕様変更

2006-08-16 08:50:04 | MySQL
MySQL 5.0.2からSHOW STATUSにSESSIONとGLOBALのオプションが付きました。
それ以前はSHOW STATUSと打てばデフォルトでGLOBALのSTATUS値を出力してくれていましたが、このオプションが付いたMySQL 5.0.2からデフォルトがSESSION値に変わりました。
ですので、GROBAL値を見たい場合はSHOW GLOBAL STATUSと明記する必要があります。

http://dev.mysql.com/doc/refman/5.0/en/show-status.html

http://blogs.yahoo.co.jp/mysql/16713004.html

MYTOPなどを使われている方はMYTOPのソースも修正する必要があります。
修正は、MYTOP内のSHOW STATUSをSHOW GLOBAL STATUSに変更するだけですので簡単です。

オープンソースマップ

2006-08-11 09:01:43 | MySQL
オープンソースマップ
~オープンソースソフトウェア評価・検証の選別基準に~
ということでNRIさんが公開されています。
http://www.nri.co.jp/news/2006/060808_1.html




成熟度: プロジェクトなどの期間、関連ドキュメントの量・種類、リリース回数、品質など
プレゼンス: ウェブサイトでの関連用語登場回数、検索サイトでのヒット数、採用数、サポートを提供しているベンダー数など



MySQLはといいますと・・・・
成熟度もプレゼンスもほぼ5.0に近く、企業システムで使えるOSSとして高いレベルだそうです。

MySQL 5.0.24

2006-08-07 12:57:35 | MySQL
コミュニティ版+商用版でMySQL 5.0.24 が8/6にリリースされたみたいです

商用版では5.0.23のリリースがすこし前からありましたが
コミュニティ版ではリリースされず
今日現在、商用版でも5.0.23自体が無くなっているそうです。

この間に5.0.23をダウンロードした人は5.0.24に上げておくのがいいのかもしれないです。


日本語のアナウンスはこちら

MySQL August 2006 セミナー

2006-08-03 08:42:29 | MySQL
MySQL August 2006 セミナー

http://www-jp.mysql.com/news-and-events/web-seminars/mysql-japanese.php.ja

またまたMysqlセミナーの情報を発見しました。
東京近郊にお住まいの方は参加してみられたらいかがでしょうか?
無料みたいです。


セミナーのアジェンダ:
13:30-13:40 ご挨拶 H. 岩崎
13:40-14:10 ワールドワイドの MySQL 活用状況 L. Stefonic
14:10-14:40 mixi.jp の事例紹介 B. Kesuma
14:40-15:10 日本 HP のパートナー活動状況 M. 赤井
15:10-15:30 コーヒーブレイク
15:30-16:00 スマートスタイルのパートナー活動状況 K. 小寺
16:00-16:30 MySQL Cluster 最新技術 D. 斉藤
16:30-17:00 MySQL OEM ビジネス J. 竹森
17:00-17:30 Question and Answer

タリーズ

2006-08-01 15:55:44 | MySQL
今朝、非常に残念な出来事がありました


「大変申し訳ございません、スタンプカード制度がなくなりました」


日課となっているタリーズでの朝ごはん(カフェラテショートのホットで&ミルクプレッツエル温めで)でポイントをためては
月一回飲み物を無料で注文できるのを楽しみにしていました。



・・・タリーズに通い始めて一ヵ月目、店長さんと思しき女性より
「いつもご利用ありがとうございます、スタンプカードをつけさせてもらいますね」と突然スタンプカードなるものの存在を知らされてはや数か月・・・


朝の楽しみが一つなくなってしまった。

MySQL Connector/J 5.0.2 β

2006-07-31 13:19:14 | MySQL
MySQL Connector/Jってどうもあやしいところがあります
Connector/Jをつかってjavaから接続にいくとなぜか特定のクエリが遅くなります。

バグFIXを頻繁にしている様なので
面倒でも最新のものを毎回DLして使うのが一番いいと思います

日本語でのアナウンス
最新版の情報はこちら





ニコ・ヤーコ先生のブログが分裂したようです
ニコ・ヤーコのMySQL探検とニコ・ヤーコ本格版。
本格版の方は先生独自理論が展開している非常に濃い内容となっております。
MySQL関係はニコ・ヤーコのMySQL探検ですね。

MySQLのクラスタリングソフト

2006-07-28 09:24:00 | MySQL
クラスタリングソフトとはなんじゃらほい。
複数のDBサーバに仮想IPを持たせて一つのDBサーバとしてアプリ側には認識させ、仮にそのDBサーバ群で1台が次のような事が起こっても(サーバが落ちた、ネットワークに障害が起きた、データがクラッシュした、メンテナンスをしたい)としても残りのDBサーバが起動していれば、アプリ自体は問題なく動作できます。
また1つのDBサーバに対して要求を多く投げても性能には上限があります。
それを分散させ能力をあげる役割も果たします。
そういった事をソフトウエアレベルで実現するのがクラスタリングソフトです。


以下このサイトから引用

「m/cluster」の主な導入メリットは、以下の通りです。
1. 市販のマシンをノードとして使用できるため、費用が低い。(TCOの低減)
2. ノードに異常が発生しても、システムから自動的に切り離されるため、サービスが停止しない。
(高可用性・高速フェールオーバー)
3. 稼働している全てのノードを使用して、自動的に負荷分散を行う(ロードバランス機能)
4. ノードの追加や停止時に、サービスを停止させなくても良い(高可用性)
5. 負荷の増加に応じて、後から必要数のノードを追加できる(スケーラビリティ)
6. リモートからCMC(クラスタ・マネージャ・コンソール)ソフトウェアを使用して、ノードの稼働状態の確認や管理を行える。



高可用性データベースシステムの実現にはクラスタリングは必須だと思います。