MySQLのサーバーのファイル容量がいっぱいになる件
今のところ、MySQLサーバーが機能しなくなる原因には主に2つある。
1、テーブルの容量制限いっぱにデータが入っているため、それ以上PUTできない。
2、単純にHDDがいっぱい。
1に関してはログ用のテーブルなので、truncateで片付けてる。
2にはその都度、いらないファイルとかを削除して間に合わせてきたけど、あきらかにMySQLの仕業ということが分かり、調べてみた。
http://wiki.bit-hive.com/tomizoo/pg/MySQL%20%A5%D0%A5%A4%A5%CA%A5%EA%A5%ED%A5%B0%A4%CE%BA%EF%BD%FC
バイナリログというのが溜まってこうなるらしい。
単体で使用するならただのログだが、slaveなどを使っている場合はslaveサーバーがそれを見て情報更新をするため、必要なログらしい。
Linuxの時間をタイムサーバーと同期させる
シェルコマンドから同期設定をする方法。Debianバージョン
http://www2.i-e-c.co.jp/common4.html
今までFedoraばっかりだったからapt-getなんて初めて使ったよ。
バリデーションでエラーが出たとき、入力欄が改行されないようにする方法
http://d.hatena.ne.jp/shunsuk/20080517/1211024214
まだ試していませんが。。。
苗字と名前、郵便番号など、常に横に並んでいて欲しい項目がある場合にいい。
今回、id:shunsukさんのタイトルをそのままお借りしたんですが、なんとも整理されたタイトルですね。勉強になります。
毎日Mongrelが止まる
ここのところで最大の難問。具体的な解決すらしていない。
朝、出社してrailsアプリにアクセスしてみると、何にも反応がない。
SSHにもアクセスできるし、メモリも大して使っていないので、フリーズではない。
で、やっと記事を見つけた。
http://rryu.sakura.ne.jp/nisenise-fuhito/2008/04/
http://d.hatena.ne.jp/koseki2/20070130/railslockup
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/43356
で、何が一番簡単かってlinuxのcronジョブでrailsアプリにリクエストを送って、MySQLに10時間以内に必ずアクセスさせる方法。
んなアホな。。。
DateTimeによる日本時間取得
Rails2.1でenviromentファイルにタイムゾーン指定が出来るようになったと聞き、ウハウハしていたのですが、
なんとTime関数にしかきかないじゃないですか。もうコードはすっかりDateTime関数で書いちゃってますよ。
だって日付ベースで計算できるんだもん。いちいち秒数で計算したくないっすよ。
これじゃ海外サーバーでちゃんと動かない。
で、どうすりゃ無理やり日本時間に出来るか。
time = DateTime.now utc = time.new_offset(0) j_time = utc + Rational(3,8)
時間取得→UTC(時差0)に→24時間の3/8(9時間)をプラス
スマートじゃない。。。
レンタルサーバーでrails*
日本でrailsをやろうとすると自分でサーバーを建てるか、月1万円とかでサーバーを借りないといけないので、
海外のサーバーを使おう。と、思い、bluehostを借りてみた。
大容量でruby on rails も PHP5もSSHもつかえる。すごい。
しかし。しかしだ。rails 2.1が全く動かない。問い合わせをしても全然返事が返ってこない。
結局サーバーで不具合が起きていて、もうすぐ直るんだそうだ。2週間くらい待ったよ。
その間、嫌気がさして別のサーバーを借りる事にした。
hostingrails
ここは対応も早いし、rails向けの環境がしっかり整ってる。サーバータイプまで選べるというありがたい環境。
bluehostはapache+FastCGIだけなので、開発環境がmongrelだと不安も多い。
ちょっと割高だけど。
hostingrailsで面倒なのが、アプリケーションとドメインを関連付けるvisualhostの設定をメールでお願いしないといけない。
英語が出来ないとかなりハードルが高い。
Mongrelの自動起動
今までずっとVNCでLinuxサーバーにつなげてシェルからscript/serverしてたんだけど、リブートしたら手動でまたやらなきゃならないので、起動時にMongrelが自動で起動するようにした。
Mongrelの起動・停止コマンド
参考
http://mongrel.rubyforge.org/
これでshellでモニターすることなく、サーバーをバックグラウンドで立ち上げておく事が出来る。