<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:cc="http://web.resource.org/cc/"
  xmlns="http://purl.org/rss/1.0/">

<channel rdf:about="http://pagerank.cocolog-nifty.com/blog/">
<title>MySQLとApacheのもやもや情報</title>
<link>http://pagerank.cocolog-nifty.com/blog/</link>
<description>システム開発エンジニアの日々のもやもや、おすすめTipsを更新



_uacct = &quot;UA-405396-3&quot;;
urchinTracker();
</description>
<dc:language>ja-JP</dc:language>
<dc:creator></dc:creator>
<dc:date>2008-03-16T13:58:13+09:00</dc:date>
<admin:generatorAgent rdf:resource="http://www.typepad.com/" />


<items>
<rdf:Seq><rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2008/03/mysqllimitsql_c_57f9.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2008/02/re_5ee0.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2008/01/mysql_beb4.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/12/mysqloraclerown_4c4f.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/12/post_5df3.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/12/sqlserver2005.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/12/google_charts_4deb.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/12/utf8.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/11/post_d019.html" />
<rdf:li rdf:resource="http://pagerank.cocolog-nifty.com/blog/2007/11/post_38c2.html" />
</rdf:Seq>
</items>

</channel>

<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2008/03/mysqllimitsql_c_57f9.html">
<title>MySQLでlimitを使用したデータ件数カウント(SQL_CALC_FOUND_ROWS)</title>
<link>http://pagerank.cocolog-nifty.com/blog/2008/03/mysqllimitsql_c_57f9.html</link>
<description>今回はMySQLのTipsです。 Webサイトの検索画面などで、 「５０件／１０...</description>
<content:encoded>&lt;p&gt;今回はMySQLのTipsです。&lt;/p&gt;

&lt;p&gt;Webサイトの検索画面などで、&lt;br /&gt;「５０件／１００００件中ヒットしました。」&lt;br /&gt;という画面を作る場合にとても便利なMySQL関数です。&lt;/p&gt;

&lt;p&gt;例：&lt;/p&gt;
&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;
mysql&amp;gt; SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE id &amp;gt; 100 LIMIT 10;&lt;br /&gt;&lt;br /&gt;
mysql&amp;gt; SELECT FOUND_ROWS();
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;これだけでＯＫ。&lt;/p&gt;

&lt;p&gt;■１回目のＳＱＬでは、LIMITを含むSELECT文の先頭に&lt;br /&gt;
「SQL_CALC_FOUND_ROWS」というオプションをつけて実行します。&lt;/p&gt;

&lt;p&gt;これでいつも通り、特定の条件で絞り込んだ結果の先頭ｎ件のデータが取得できます。 &lt;/p&gt;

&lt;p&gt;データ件数を取得する場合は、PHPならmysql_num_rows()でカウントできます。&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;■２回目は「SELECT FOUND_ROWS();」という関数をコールします。&lt;/p&gt;

&lt;p&gt;これで１回目のSQLでLIMIT指定していない場合の全件数が取得できます。&lt;/p&gt;

&lt;p&gt;通常は別途「SELECT count(*) FROM table_name」なんて再度実行する必要が&lt;br /&gt;あるのですがその必要はありません。&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;よくプログラムでwhere句を変数にもっておいて、&lt;br /&gt;「select a,b,c～」と「select count(*)～」の２種類のSQLにつけて&lt;br /&gt;select文を２回実行するというプログラムを作っていました。&lt;/p&gt;

&lt;p&gt;同じ条件のＳＱＬを実行するなんて無駄だな～。と思っていたのですが&lt;br /&gt;MySQLくんは用意してくれています。すごくいい子です。&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;MySQLのマニュアル&lt;br /&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/ja/information-functions.html&quot;&gt;http://dev.mysql.com/doc/refman/5.1/ja/information-functions.html&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;要するに同じ条件のＳＱＬを２回実行する必要がないため、&lt;br /&gt;超高速です。&lt;/p&gt;

&lt;p&gt;MySQLを使用した検索画面を作っている人は、パフォーマンス改善のためにも&lt;br /&gt;とても有効な関数ですので検討してみてください。&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</content:encoded>


<dc:subject>MySQL</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2008-03-16T13:58:13+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2008/02/re_5ee0.html">
<title>Re:行列のできる店のラーメン 山形</title>
<link>http://pagerank.cocolog-nifty.com/blog/2008/02/re_5ee0.html</link>
<description>売ってた。行列のできる店のラーメン 山形 ずっと探し続けていた訳ではないのだけど...</description>
<content:encoded>&lt;p&gt;売ってた。行列のできる店のラーメン 山形&lt;/p&gt;

&lt;p&gt;ずっと探し続けていた訳ではないのだけど、たまたま行った近くのスーパーに&lt;/p&gt;

&lt;p&gt;あの伝説のラーメンが売ってた。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;日清行列のできる店のラーメン 山形&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;その日は、行列のできる店のラーメン　フェアみたいで&lt;br /&gt;（勝手に思ってます。）&lt;/p&gt;

&lt;p&gt;北から順に&lt;br /&gt;行列のできる店のラーメン 札幌&lt;br /&gt;

行列のできる店のラーメン 山形&lt;br /&gt;

行列のできる店のラーメン 横浜&lt;br /&gt;

行列のできる店のラーメン 和歌山&lt;br /&gt;

行列のできる店のラーメン 京都&lt;br /&gt;行列のできる店のラーメン 博多&lt;br /&gt;
行列のできる店のラーメン 熊本&lt;/p&gt;

&lt;p&gt;がワンコーナー埋め尽くしていました。&lt;/p&gt;

&lt;p&gt;超ラッキー。ありがとうスーパーマーケッツ&lt;/p&gt;

&lt;p&gt;ということで、みそラーメン好きの私としては&lt;br /&gt;札幌と山形をチョイス。&lt;/p&gt;

&lt;p&gt;帰り道の足取りも軽く。スキップしながら家に帰りました。&lt;/p&gt;

&lt;p&gt;山形のおいしさは以前から立証済みだったので、まず札幌から食べてみました。&lt;/p&gt;

&lt;p&gt;感想。。。。。&lt;/p&gt;

&lt;p&gt;おいしいのだけどね。インパクトがもの足りない。&lt;/p&gt;

&lt;p&gt;普通に売っている&lt;br /&gt;
行列のできる店のラーメン こってりみそ&lt;/p&gt;

&lt;p&gt;との違いがあまりなし。せっかくご当地の名称をつけている割には&lt;br /&gt;そこそこおいしい普通のみそラーメンではないか。&lt;/p&gt;

&lt;p&gt;なんとなく不完全燃焼なので、やっぱりここは山形でしめることにしました。&lt;/p&gt;

&lt;p&gt;一口目は辛みそなしでスープを一口。&lt;/p&gt;

&lt;p&gt;おおお。。。これだよ、これ。ぼくが求めていたものは。&lt;/p&gt;

&lt;p&gt;この煮干からとった深い味わいの濃厚みそ。&lt;/p&gt;

&lt;p&gt;二口目。辛みそを溶いて一口。&lt;/p&gt;

&lt;p&gt;うめ～。やっぱりこれだよ。&lt;/p&gt;

&lt;p&gt;この煮干ダシの濃厚みそスープに、ちょっと太目のかんすいがきいた麺が&lt;/p&gt;

&lt;p&gt;とてもいい感じにからみあって。オーケストラのバイオリン４重奏のような&lt;/p&gt;

&lt;p&gt;すばらしいハーモニーが口いっぱいに広がり、&lt;/p&gt;

&lt;p&gt;心もおなかも幸せな気分にいざないでくれます。&lt;/p&gt;

&lt;p&gt;ああ、幸せ。&lt;/p&gt;

&lt;p&gt;会いたかったよ。I miss you&lt;br /&gt;恋におちたよ。Fall in Love&lt;/p&gt;

&lt;p&gt;やっぱり君じゃなきゃだめだ。&lt;br /&gt;これからも君を探し続けるよきっと。&lt;/p&gt;</content:encoded>


<dc:subject>グルメ・クッキング</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2008-02-04T01:56:49+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2008/01/mysql_beb4.html">
<title>MySQLでレプリケーション（前置き）</title>
<link>http://pagerank.cocolog-nifty.com/blog/2008/01/mysql_beb4.html</link>
<description>MySQLの便利な機能はいろいろあるのですが、その中でも特に便利だなと思うのがレ...</description>
<content:encoded>&lt;p&gt;MySQLの便利な機能はいろいろあるのですが、その中でも特に便利だなと思うのがレプリケーションです。&lt;br /&gt;この機能があるからこそMySQLがここまで支持されているのだと私は勝手に思っています。&lt;/p&gt;

&lt;p&gt;もちろん他のＤＢでも同様の機能は存在しますし、ORACLE、SQLserverではもっと高機能なClusterもあります。ただし数千万円というレベルで予算が必要です。&lt;/p&gt;

&lt;p&gt;確かに100%のデータを絶対に守らなくてはいけない場合には必要だとは思いますが、それが99%でよければレプリケーションで充分な場合がほとんどです。&lt;/p&gt;

&lt;p&gt;Webのアプリケーションの場合、サーバ間のネットワークや、クライアントＰＣの状況など、もともとどんなに完璧なサーバを用意しても100%をカバーするシステムを構築することは不可能です。&lt;/p&gt;

&lt;p&gt;もちろんお客様は100%の稼働率を求めてきます、ただし99%でよければのいかに予算を削減できるか、他の機能を増強できるか、しいてはＳＥ、プログラマーがやる気をもって仕事にとりくめるか、どちらがメリットになるか説得してみてください。&lt;/p&gt;

&lt;p&gt;お客様の要望どうりに仕事をこなすのがＳＥではありません、お客様と開発会社の両方をハッピーにするのがＳＥの仕事です。&lt;/p&gt;

&lt;p&gt;話しがいろいろそれましたが、次回以降に何回かに分けてMySQLのレプリケーションについて書いていこうと思っています。&lt;/p&gt;


</content:encoded>


<dc:subject>MySQL</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2008-01-05T01:34:57+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/12/mysqloraclerown_4c4f.html">
<title>MySQLでOracleのrownumやSQLServerのTopを実現する</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/12/mysqloraclerown_4c4f.html</link>
<description>グリッドのページ送りをしたいときや、大量データのテーブルなどで取得データの件数を...</description>
<content:encoded>&lt;p&gt;グリッドのページ送りをしたいときや、大量データのテーブルなどで取得データの件数を制限したい場合ありますよね。&lt;/p&gt;

&lt;p&gt;OracleではROWNUMで、SQLserverではTOPというキーワードがあります。&lt;/p&gt;

&lt;p&gt;もちろんMySQLにもあります。それが「limit」。どちらかというとSQLserverのTOPに近い感じかな。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/4.1/ja/limit-optimisation.html&quot;&gt;MySQLマニュアル&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;[1] 先頭から10件を取りたい場合。&lt;/p&gt;

&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;
select * from test &lt;br /&gt;where aaa = &#39;1&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;order by key01&lt;br /&gt;&amp;nbsp; &amp;nbsp;limit 10
&lt;/p&gt;
&lt;p&gt;[2] 最後から5件を取りたい場合。&lt;/p&gt;

&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;
select * from test &lt;br /&gt;where aaa = &#39;1&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;order by key01 desc&lt;br /&gt;&amp;nbsp; &amp;nbsp;limit 5
&lt;/p&gt;

&lt;p&gt;[3] 先頭から100件目～150件目を取りたい場合。&lt;/p&gt;

&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;
select * from test &lt;br /&gt;where aaa = &#39;1&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;order by key01&lt;br /&gt;&amp;nbsp; &amp;nbsp;limit 100, 150
&lt;/p&gt;

&lt;p&gt;引数が１つでも２つでも勝手に解釈してくれます。さらに応用でこんなこともできます。&lt;/p&gt;

&lt;p&gt;データをランダムに10件取得する。&lt;/p&gt;

&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;
select * from test &lt;br /&gt;where aaa = &#39;1&#39;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;order by rand()&lt;br /&gt;&amp;nbsp; &amp;nbsp;limit 10
&lt;/p&gt;
&lt;p&gt;MySQLの関数「 rand()」でランダムに割り当てて並び変えて先頭を取得でおしまい。&lt;/p&gt;
&lt;p&gt;ほかのデータベースで同じ事を実現しようとすると、なかなか大変です。&lt;/p&gt;
&lt;p&gt;やっぱり便利。MySQL。&lt;/p&gt;
</content:encoded>


<dc:subject>MySQL</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-12-26T02:44:08+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/12/post_5df3.html">
<title>行列のできる店のラーメン 山形</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/12/post_5df3.html</link>
<description>今日は箸休めで、システムとは関係ありません。 たまたま近所のスーパーで売っていた...</description>
<content:encoded>&lt;p&gt;今日は箸休めで、システムとは関係ありません。&lt;/p&gt;

&lt;p&gt;たまたま近所のスーパーで売っていたので、購入。&lt;/p&gt;
&lt;p&gt;日清　行列のできる店のラーメン　山形　からみそ味&lt;/p&gt;

&lt;p&gt;結果。予想以上にかなりうまい。&lt;/p&gt;
&lt;p&gt;かなり山形の「龍上海」を意識している感じで、&lt;br /&gt;にぼしのダシがきいている濃厚みそスープ。これだけでもそこそこうまいみそラーメンなのに、付け合せの辛みそが、さらに辛さとうまみを向上させていてうまかった。&lt;/p&gt;

&lt;p&gt;
山形の「龍上海」思い出した。&lt;/p&gt;

&lt;p&gt;「辛みそラーメン」好きの人は絶対おすすめ。&lt;br /&gt;個人的には辛みそを増量してほしいくらいかな。&lt;/p&gt;

&lt;p&gt;でも気になることが。&lt;/p&gt;

&lt;p&gt;スーパには残り１個だけだったし、パッケージには期間限定と書いてあるし、&lt;a href=&quot;http://www.nissinfoods.co.jp/product/list/index.html?bl_cd=10&quot;&gt;日清のホームページ&lt;/a&gt;にも乗ってないし売り切れたら食べれないよ。&lt;/p&gt;

&lt;p&gt;なんとかなりませんか日清さん。 &lt;/p&gt;

&lt;p&gt;近くのセブンイレブンでも半年前くらいから山形「龍上海」の&lt;br /&gt;
お店のカップラーメンが売っていて、あの商品の入れ替えが激しい&lt;br /&gt;
コンビニで半年以上も並んでいるなんて人気がある証拠&lt;/p&gt;
&lt;p&gt;2008年は「辛みそラーメン」ブームが来るなと勝手に思い込んでいます。&lt;/p&gt;</content:encoded>


<dc:subject>グルメ・クッキング</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-12-17T05:43:09+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/12/sqlserver2005.html">
<title>SQLserver2005をWindows2000 Proにインストール</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/12/sqlserver2005.html</link>
<description>SQLserver2005の案件がありインストールしてわかったこと。 Windo...</description>
<content:encoded>&lt;p&gt;SQLserver2005の案件がありインストールしてわかったこと。&lt;/p&gt;

&lt;p&gt;Windows2000 Professional のサーバが空いていたので、試しにインストールしました。&lt;/p&gt;

&lt;p&gt;とりあえず最新のWindows Updateをあてて、 IISもインストール。&lt;/p&gt;

&lt;p&gt;CDからインストーラーを起動。&lt;/p&gt;

&lt;p&gt;インストール準備画面が起動してMicrosoft Windows .NET Framework 2.0をインストール。&lt;/p&gt;

&lt;p&gt;インストールチェックも全てOK。&lt;/p&gt;

&lt;p&gt;まあここまでは順調。&lt;/p&gt;

&lt;p&gt;その後、インストールするツール等を選んで、実行ボタンを押すとエラー発生。&lt;/p&gt;

&lt;p&gt;.NET Frameworkを再度インストールし直してください。&lt;/p&gt;

&lt;p&gt;え。。さっき入れたじゃん。&lt;/p&gt;

&lt;p&gt;仕方ないので、Microsoft Windows .NET Framework 2.0 SP1にUPDATEした。&lt;/p&gt;

&lt;p&gt;また、CDから起動し直して、先ほどのエラーが出たところまでゆく。&lt;/p&gt;

&lt;p&gt;今度は、インストールが始まる。（よかった）&lt;/p&gt;

&lt;p&gt;小一時間ほどしてインストールが完了。&lt;/p&gt;

&lt;p&gt;やっと終わったので、接続用のユーザを作成しようと思い、管理画面からユーザ作成をおこなう。&lt;/p&gt;

&lt;p&gt;ところがここで、このバージョンのWindowsではサポートされていませんというエラーメッセージでユーザが作れない。&lt;/p&gt;

&lt;p&gt;ひどい。ひどいよ。インストールできたじゃん。&lt;/p&gt;

&lt;p&gt;多少いろいろ調査しましたが、エラーがあまりに多く、Windows2000 Professionalでインストールするのはあきらめました。&lt;/p&gt;

&lt;p&gt;せっかくインストール時のチェックやっているのだから、その時点でだめならだめと教えてくれよ。まる１日無駄にしてしまった一日でした。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://msdn2.microsoft.com/ja-jp/library/ms143506.aspx&quot;&gt;microsoftインストール要件&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</content:encoded>


<dc:subject>もろもろ</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-12-14T02:43:46+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/12/google_charts_4deb.html">
<title>Google Chartsでグラフ</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/12/google_charts_4deb.html</link>
<description>Google Charts やっぱりでたな～。 はてなグラフでた頃にもう少し高機...</description>
<content:encoded>&lt;h2&gt;Google Charts&lt;/h2&gt;

&lt;p&gt;
やっぱりでたな～。&lt;br /&gt; はてなグラフでた頃にもう少し高機能なもの作ったら面白いだろうなと思いながら約１年。完成できなかったけど。googleさんが作ってくれた。&lt;/p&gt;

&lt;p&gt;機能も豊富で、レスポンスも文句なし。さすがです。&lt;/p&gt;

&lt;p&gt;日本語も感じは”??”になってしまうが「ひらがな」「カタカナ」は表示できた。&lt;/p&gt;

&lt;p&gt;方法は&lt;/p&gt;

&lt;p&gt;１．「ひらがな」「カタカナ」をUTF-8でURLエンコードする。&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.tagindex.com/tool/url.html&quot;&gt;「Web便利ツール&lt;/a&gt; 」こちらのサイトで変換できます。&lt;/p&gt;

&lt;p&gt;２．APIのパラメータにエンコードされた文字列を渡す。&lt;/p&gt;

&lt;p&gt;これでＯＫ。そのうち漢字も対応されるでしょう。&lt;/p&gt;

&lt;p&gt;サンプル&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;
http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:90,49&amp;amp;chs=350x150&amp;amp;chl=%e3%81%b2%e3%82%89%e3%81%8c%e3%81%aa|%e3%82%ab%e3%82%bf%e3%82%ab%e3%83%8a&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;


&lt;p&gt;&lt;img src=&quot;http://chart.apis.google.com/chart?cht=p3&amp;amp;chd=t:90,49&amp;amp;chs=350x150&amp;amp;chl=%e3%81%b2%e3%82%89%e3%81%8c%e3%81%aa|%e3%82%ab%e3%82%bf%e3%82%ab%e3%83%8a&quot; /&gt;

&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://code.google.com/apis/chart/&quot;&gt;Google Charts はこちら&lt;/a&gt; &lt;/p&gt;</content:encoded>



<dc:creator>もやもや</dc:creator>
<dc:date>2007-12-11T01:24:59+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/12/utf8.html">
<title>MySQLでUTF-8の設定方法</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/12/utf8.html</link>
<description>Red Hat Enterprise Linux 4 mysql 5.0.27で...</description>
<content:encoded>&lt;p&gt;Red Hat Enterprise Linux 4&lt;br /&gt;mysql 5.0.27での設定&lt;/p&gt;

&lt;p&gt;RPMでインストールした場合、デフォルトのキャラクターセットはlatin1となる、UTF-8にしたい場合は下のように設定ファイルに追加する必要がある。
&lt;/p&gt;

&lt;p&gt;/etc/my.cnf&lt;/p&gt;


&lt;p style=&quot;padding: 12px 20px; color: rgb(255, 255, 255); background-color: rgb(0, 0, 0);&quot;&gt;

[mysqld]&lt;br /&gt;default-character-set=utf8&lt;br /&gt;skip-character-set-client-handshake&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;「default-character-set=utf8」だけでいけるとおもったら、クライアントのキャラクターセットが「latin1」になってる。 &lt;br /&gt;そこで調べたら「skip-character-set-client-handshake」という設定が必要なんだとわかった。
&lt;/p&gt;

&lt;p&gt;「skip-character-set-client-handshake」はクライアントから接続したときにクライアント側の文字コードを「default-character-set」で指定されたものに自動設定するオプションなんだって。これは知らなかった。&lt;/p&gt;</content:encoded>


<dc:subject>MySQL</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-12-02T19:51:11+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/11/post_d019.html">
<title>Apacheアクセス制限はじめました</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/11/post_d019.html</link>
<description>某Webサイトの抽選ページを作成しているのですが、 最近不正アクセスが増えてきて...</description>
<content:encoded>&lt;p&gt;某Webサイトの抽選ページを作成しているのですが、&lt;br /&gt;最近不正アクセスが増えてきてサーバの負荷が上がって困っています。&lt;br /&gt;そこで不正ユーザのアクセス制限をかけようと調査したTips。&lt;br /&gt;とりあえず、特定のIPアドレスだけをApacheで制限をかけることにしました。&lt;/p&gt;

&lt;p&gt;googleで調べていたのですが、「特定のIPアドレスだけ許可する」というページはよく見かけたのですが今回は「特定のIPアドレスのみ許可しない」ということがやりたかったのです。&lt;/p&gt;

&lt;p style=&quot;padding: 12px 20px; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);&quot;&gt;&amp;lt;&lt;code&gt;Directory&lt;/code&gt; /&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;Location /abcdefg&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ErrorDocument 403 /error/403.html&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; order allow,deny&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; allow from all&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; deny from 192.168.0.100&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/Location&amp;gt;&lt;br /&gt;&amp;lt;&lt;code&gt;/Directory&lt;/code&gt;&amp;gt;&lt;/p&gt;

&lt;p&gt;こうすれば特定のディレクトリのみの制限ができるし、エラー用のHTMLも隠蔽できる。
mod_rewrite使うのと比べて圧倒的に軽いしね。&lt;/p&gt;

&lt;br /&gt;

&lt;p&gt;不正アクセスは自動テストツールなどで、１日２０万回以上もアクセスが来ている。今はツールなのにブラウザ経由でアクセスできる高機能のものもフリーでダウンロードできる世の中。イタチごっごになるのだろうな。&lt;/p&gt;

&lt;br /&gt;

&lt;p&gt;不正アクセスしているユーザさん。単なるランダムで当選するような、しょぼい抽選ページ作ってないよ。不正アクセスしても無駄なのに。&lt;br /&gt;
もちろん当選者は平等の抽選をしています。不正や偽装はしていません。&lt;/p&gt;</content:encoded>


<dc:subject>Apache</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-11-23T21:35:13+09:00</dc:date>
</item>
<item rdf:about="http://pagerank.cocolog-nifty.com/blog/2007/11/post_38c2.html">
<title>はじめました</title>
<link>http://pagerank.cocolog-nifty.com/blog/2007/11/post_38c2.html</link>
<description>始めました。 日ごろのもやもや含め、システム開発のちょっとした情報などを書いてゆ...</description>
<content:encoded>&lt;p&gt;始めました。&lt;br /&gt;日ごろのもやもや含め、システム開発のちょっとした情報などを書いてゆこうと思ってます。&lt;/p&gt;</content:encoded>


<dc:subject>もろもろ</dc:subject>

<dc:creator>もやもや</dc:creator>
<dc:date>2007-11-20T03:11:00+09:00</dc:date>
</item>


</rdf:RDF>
