WordPressで使っているMySQLのテーブルを修復する方法

先日、WordPressで運営しているブログの管理画面(/wp-admin/)にアクセスしようと思ったら、以下のようなエラーが出た。

利用できないデータベーステーブルがあります。データベースの復元が必要かも知れません。」。。。と。

はい???

で、「復元」を押してみると、以下のようなメッセージが。

“WordPressで使っているMySQLのテーブルを修復する方法” の続きを読む

[MySQL] 大きなファイルをアップロードするときの注意点(max_allowed_packet)

CakePHPでとあるシステムを組んでいたとき、ファイルアップロード時に以下のようなエラーをCakePHPがはき出しました。

Warning (512) : SQL Error: 1153: Got a packet bigger than ‘max_allowed_packet’ bytes [CORE/cake/libs/model/datasources/dbo_source.php, line 527]

ん???

max_allowed_packetという数値より、アップロードしたファイルサイズがオーバーしているようである。

ということで、my.cnfに以下のように設定しました。

“[MySQL] 大きなファイルをアップロードするときの注意点(max_allowed_packet)” の続きを読む

[MySQL] 格納データの文字列一括置換方法

mysql-logo

空目アワーというサービスを作っているのですが、MySQLにデータとして格納されているつぶやきで、「@」がついたものが多数あります。

で、botも作っていて、そのbotでそのつぶやきの中からランダムでTwitterにPOSTしています。なので、「@」が付いたものに関してはそのままPOSTすると、空目アワーbotとその@が付いた人の両方をフォローしていないと見れないということが発生します。

これはまずいんじゃない?

ということで、「@」を「.@」に変換することにしました。

“[MySQL] 格納データの文字列一括置換方法” の続きを読む

[WP] ダッシュボードから簡単に最適化できるプラグイン「WP-Optimize」

WordPress(wp)

WordPressは、使っていけば行くほど、データベースにオーバーヘッド等に余計なデータが残ってしまったりして、サイトのパフォーマンスが落ちてしまう場合があります。

そこで、データベースを最適化したいわけですが、phpMyAdminなどを使って最適化するのは結構面倒だし、なにより、phpMyAdminを普段使ってないと、怖くて使えませんよね。

そこでご紹介するプラグインは、WordPressの管理画面から、データベースの最適化を実行できるものです。

ダウンロードは、以下から。

“[WP] ダッシュボードから簡単に最適化できるプラグイン「WP-Optimize」” の続きを読む

[CakePHP] レコードからランダムに1件取得する方法

cakephp-wall

CakePHPで、レコードからランダムで1件のレコードを取得する必要が出てきたので、メモ。

コントローラーから以下のように、呼び出す。

$data = $this->Post->find(null,null,'rand()');

と、これだけ(^^;)

で、実際のDBへのSQLは以下のようになる。

“[CakePHP] レコードからランダムに1件取得する方法” の続きを読む

[MySQL] 激重の原因はDNS逆引きでした

MySQL

会社で、あるWEBシステムを外注したのだが、あまりに大量なアクセス数にMySQLサービスが止まってしまい、システムの停止を余儀なくされた、というのを以前書きました

それから、いろいろ調べました。

ボトルネックはどこなのか?

外注した先に、どこか原因は考えられないの?と聞いても、「我が社で構築している部分ではデータの輻輳は発生しておりません」と。。。

で、Webサーバ、バックボーンネットワーク、ルータ、NAT、Windows Server OS、MySQL、などをいろいろな角度から調べていった結果。。。。

その会社が作ったシステムのうち、MySQLに原因がありました。orz

“[MySQL] 激重の原因はDNS逆引きでした” の続きを読む

SQLの接続負荷テストに使える「Transaction Generator」

Transaction Generator

先日、会社で外部の業者に作らせたシステムが「Windows Server 2003 + MySQL」というシステムであった。

これでデータベースエンジンはInnoDBで作っているらしいので、当然トランザクションを使う。

まぁ、システムを作る段階で、なぜWindows Serverをチョイス?という疑問があったが、Windowsベースでのアプリケーションしかつけれない会社なので、しょうがないと言えばしょうがない。。。

なお、説明しておくと、このシステムの受注範囲は、CGIスクリプトとデータベースサーバ+クライアント。

うちの会社の主幹システムは強固なものであり、CGIスクリプトはきちんとロードバランサーなどが整備された強靱なシステムで動いているので問題はない。

しかし、そのスクリプトで受けたPOSTデータを流し込むのは、ルーターやNATなどを5つぐらい通った後のネットワークに接続されたWindows ServerのMySQL。

“SQLの接続負荷テストに使える「Transaction Generator」” の続きを読む