Ruby_on_Rails_logo1

Ruby on rails単体でも、DB、Webも含まれているが、以下の構成のシステム構築を行った際のメモ。 ■ OS : CentOS5.5 ■ D […]

mysql_clr

MySQLを使用した高負荷(大量のデータ、トランザクション)なシステム構築時のポイントをざっと纏めてみた。

Ruby_on_Rails_logo1

昨日の記事「【Ruby on Rails入門】30分で構築するWindows開発環境」について補足。

Ruby_on_Rails_logo1

手っ取り早くWindowsにRuby on Railsの開発環境を構築する方法を以下にメモ。 インストールするものは下記の通り。 1. ruby 2. […]

Play! framework 1.2.3 CRUD モジュールを拡張したJQCRUD さて、Play! framework Advent Calendar 2011 jp #play_ja の13日目。さすがに Play 2.0 の話題が多い中、まだ1.xでがんばっています。 Play との出会いは、知人(@d_noguchi)に java で Rails みたいなことができるものってないの? と聞いたところ、「Play framework があるよ、ただ自分は Scala のほうに興味がありますが・・・」、といわれて触り始めました。 もともと生産性の高い(?)Java 言語だけに、堅牢性や冗長性、などが考慮されいるフレームワークはほかにないのではないでしょうか。 今回は標準でサポートされている CRUD モジュールを拡張し、jQuery 対応をした JQCRUD を作ってみました。 Play framework JQCRUD デモサイト(更新OK!) JQCRUD モジュールを作成 Play! framwork の利点の一つとして豊富なモジュール(本家)があげられると思います。 また、このモジュールが結構簡単に作成できてしまいます。 クラスメソッド開発ブログ 「Play frameworkのいろいろなモジュール番外編 –Play Moduleを作成してみるその1」 これだけでモジュールのプロジェクトのテンプレートを作成できます。 play new-module jqcrud その後、build.xml が作成されるので、それをもとに eclipse でプロジェクトをインポートします。 当初は Play アプリケーションで実装を進めていたのですが、リファクタリングとしてモジュール化を行いました。 CRUD.java を継承し、追加(含オーバーライド)したメソッドは4つ。 index(), list(), listTable(), showJson(), createJson() です。 主に JSON 系の処理を追加しています。 処理は CRUD とほぼ一緒で […]

opencsv

大量データのテストを行うために、データの登録を行う必要がある。だいたい、そういうツールを作ってサーバ側でシェルで起動して実行する、というのがこれまでのケース。 これをもっと簡単にできないかと常々考えていたところ、簡単で気軽なライブラリであるOpenCsvがあったので使ってみた。 実は Play! Advent Calendar 12/13 で使うネタの一部です。全部紹介しきれないので、部分的に切り出しました。 環境 ・MacOSX 10.7 ・java 6 ・Play! 1.2.3 ・opencsv 2.3 <download> 処理の流れ 1.モデルの定義 2.データの準備 3.データ取り込み用のプログラム作成 4.実行テスト ではやってみよう。 モデルの定義 大量データは「なんちゃって個人情報」のデータを登録できるようにするため、このモデルを作成する。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package models;   import javax.persistence.Entity; import play.db.jpa.Model;   @Entity public class Customer extends Model { public String name; // 名前 public String kana; // ふりがな public String address; // […]

bitnami-logo

BitNamiをインストール済みのサーバに、パッケージを追加する場合、 MySQLサーバを一つに纏めたいと思い、DBを作成しようとするとmysqlのroot権限が必要になるケースが考えられる。 で、BitNamiのMySQLにrootパスワードを設定した時の手順を以下に記載。 BitNamiではなく、MySQLを単体でパッケージでインストールした場合と、 異なるポイントは、’PATH’の違い。 1. mysqld(bitnamiごと)のシャットダウン su /etc/init.d/bitnami stop 2. mysqlだけを、権限無視のオプションで起動 su mysql -c ‘/opt/bitnami/mysql/bin/mysqld –skip-grant-tables’ ※ここでのポイントが、mysqldの’PATH’。 bitnamiのインストールディレクトリ以下にあるはず。 通常Linux系のパッケージからインストールした場合は、 su mysql -c ‘/usr/libexec/mysqld –skip-grant-tables’ が多い気がする。 3. 別のターミナルを立上げ、先ほど起動したMySQLに接続する。 su mysql mysql すると下記エラー。 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) これもまた、’PATH’の弊害。 mysqlのsocketが作成されるPATHが、bitnamiのインストールディレクトリ によるため、(今回は、/opt/bitnami/mysql/tmp/mysql.sock)ソケットを 指定して接続する必要があるので、下記コマンド(オプション -S で指定)でOK。 su mysql -uroot -S /opt/bitnami/mysql/tmp/mysql.sock mysql 4. rootパスワードを任意のパスワードに更新。 UPDATE user SET Password=PASSWORD(‘[New password]‘) WHERE User=’root’; パスワード設定後、mysqlを抜ける。(exit もしくは、 q) 5. mysqlのプロセスを確認し、killして権限不要モードで起動していたmysqlを シャットダウンする。 ~$ ps aux […]