2011年9月14日水曜日

". ERROR! Manager of pid-file quit without updating file."でMYSQLが起動しなくなった

表題の通りのエラーが出て動かなくなったんだけど、下記のページを参考に作業してもいっこうに直らない。
ちなみに起動自体は最近までちゃんと出来てて、インストールした方法はMacports。

MySQL が "Manager of pid-file quit without updating file." と表示して起動しなくなった場合の対応 - tomoyamkungの日記

  1. 権限の設定が不適切
  2. MySQL の pid ファイルが残っている
  3. MySQLプロセスが生き残っている
  4. 設定ファイルの記述に誤りがある
1. はMYSQLに関するフォルダの権限のことだと思うんだけど正常。そもそも最近まで起動が出来てたのでおかしい訳がない。
となると、4.も特に書き換えてないので消える。

思い当たる節は「mysqlを起動したままシャットダウン」(おい!)とかしてたから「2.と3.」なんだけど、
3をチェックしようと、「ps ax | grep mysql」をやっても、grep mysqlしか出てこない。いま走らせてるコイツ自身が引っかかってる。
最初勘違いしててこれがMYSQLのプロセスだと思ったんだけど、これはgrep自身のコマンドが引っかかってるだけ。
そのため、killで殺そうとしても、殺そうとした時にはもうすでにプロセスが存在しないからエラーになる。

なので、残るは2なんだけどこいつも「find / -name *.pid」とやっても関係のないファイルしか引っかからない。

で、さまよい歩いて

MacportsでMySQLをインストール - WapBox

を見てて、アンインストールの部分で

sudo port uninstall mysql5 sudo rm -rf /opt/local/var/db/mysql5
とやっているのを見て「sudo rm -rf /opt/local/var/db/mysql5 」の部分は何をやってるのかと。
ようするに普通にアンインストールしただけじゃ、dbデータが消えないんですね。
なので、手動で消してあげている訳と。

そういうわけでこれを疑い、なんとなく怪しげな「ib_logfile0、ib_logfile1、ibdata1」を別フォルダに移動してみる。
そして、「sudo mysql_install_db」としてあげる。

で、再度「sudo mysql.server start」。

SUCCESS!!

というわけで、原因は「MYSQLを起動したままシャットダウンした時にDBファイルが壊れた」っぽい。
みなさんはちゃんとMYSQLをシャットダウンした後に、システムを終わらせましょう。

4時間くらいこれで止まった。。

2011年9月12日月曜日

Sublime Text 2のカスタマイズ

UIがデフォルトでクールなテキストエディタ、「Sublime Text 2」のカスタマイズ情報が日本語ではどこにもなかったのでまとめます。

自分は以下の海外のサイトを参考にカスタマイズしています。

http://rathersplendid.net/home/customise-sublime-text-2

1.Package Controlのインストール

まずは、パッケージ(Package)を便利にいれたり、パッケージのアップデートをチェックしたりしてくれる管理ソフト、「Package Control」のインストールから。
これを入れておくと他のパッケージを入れる時に便利なので入れておきます。

まず、コンソール(View→Show Console)を開いて以下のコマンドを打ち込みます。
import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp) if not os.path.exists(ipp) else None;open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
 すると割とすぐインストールが終わるので、Cmd + Shift + PでCommand Paletteを開きます。(もしかしたらSublime Textの再起動が必要かも?)

で、その出てきたCommand Paletteに「package」と打ち込みます。
そうするとPackage Controlのコマンドが出てくると思います。
このコマンド達でPackageを入れたり、消したりアップデートしたりできる訳です。

2.SublimeCodeIntelのインストール

試しにひとつPackageをインストールしてみましょう。
Sublime Textの自動補完はショートカットキー(ctrl+space)を押さなきゃ出てこないんですが、それを入力している途中に出てくるようにするPackage、「SublimeCodeIntel」です。
 さきほど出したCommand Palletを再度出してもらい、「install」と打ち込んでください。

上のように「Package Control: Install Package」というコマンドが出てくると思います。それを選択したままEnterを押してください。
するとステータスバーでPackageの一覧の検索を始めます。


少し待つと上の画面になると思います。
そうしたら、Command Paletteに「SublimeCodeIntel」とPackageが出てくると思いますのでそれを選択してEnterを押してください。
しばらく待ちますとインストール完了です。
なお、新しくPackageを入れた時はSublime Textの再起動が必須のようです。

再起動したら、好きな言語のコードを開いてタイピングしてみてください。
自動補完がされると思います。

説明は以上なので、便利なPackageを紹介して終わりにします。
ほぼ最初に紹介したページと紹介するPackageは同じ(むしろ少ない)なので、より情報が欲しい人はそちらを見たほうがいいかと思います。
なお、2、3についてはコマンドの「Package Control: Add Repository」でgithubのURL追加が必要です。

1.Zen Coding
みなさんおなじみZen Coding。
#id>.class+span*2とかでHTMLのコードが展開する。
Sublime Textの自動補完と競合したりする、どうすればいいんだろう。

2.HTML5
HTML5の自動補完のBundle。HTML5のコーディングをする方ぜひ。
リンク先の人が作ったものらしいです。

3.jQuery
jQueryの自動補完Bundle。
jQuerist必携。

4.SublimeTagmatcher
HTMLタグの開始タグやら閉じタグを選択すると、開始タグと閉じタグを強調表示してくれる。

5.Increase/Decrease number by delta_value
ショートカットキーで数字をインクリメント、デクリメントしてくれたり、true⇔falseの切り替えをしてくれる。これはPackage Control使えないみたいなので、直接gitからDLしてPackagesフォルダにぶち込んじゃってください。
で、ここに乗っている下のショートカットキーの設定をKey Bindings - Userに入れてあげると使えます。