ファイル破壊されまくり…
●テーブルが壊れた
ログインして,
mysql> check table 壊れたテーブル名
で原因が分かる
mysql> repair table 壊れたテーブル名
で直る
…らしいけどこれだと直らないことが多い気がする(^^;)
なので私の場合全部のデータが入っているフォルダ( /usr/local/mysql/var/データベース名 )
のバックアップを取っておいて,
壊れたテーブルの分だけデータを上書きしてやって無理矢理修復しました.
●ログインできなくなった(ユーザテーブルが壊れてた)
とりあえず kill でサーバを一度落として,
--skip-grant-tables オプションを指定して mysqld を再起動.
すると,どんなユーザでもログインできるようになるため,中に入ってから
mysql> select host,user,password from mysql.user;
でログインできるユーザを確認.
すると,ユーザテーブルが壊れてることが発覚したため,上記の repair で修復.
なんだかがっつりユーザが削除されてしまったので,
mysql> GRANT ALL PRIVILEGES ON *.* TO ユーザ名 IDENTIFIED BY 'パスワード' WITH GRANT OPTION;
で権限を持つユーザの追加.
2010年11月9日火曜日
2010年10月20日水曜日
OProfile コールグラフの使い方
# opcontrol --start && [filepath]
# opcontrol --stop
# opreport -c [filepath] or # opreport -c | grep [filename]
gcc -g でコンパイルしておけば,opannotate が使えて,プロファイリング後に
# opannotate -s [filepath]
とするとソースコード内で何行目が何回呼ばれたかが分かるっていう優れもの.
こりゃ便利.
しかし全体プロファイリングするんじゃなくてとあるアプリケーションのコールグラフだけ欲しいんだよなー.
とあるアプリケーションだけのプロファイル方法を調べなきゃ.
# opcontrol --stop
# opreport -c [filepath] or # opreport -c | grep [filename]
gcc -g でコンパイルしておけば,opannotate が使えて,プロファイリング後に
# opannotate -s [filepath]
とするとソースコード内で何行目が何回呼ばれたかが分かるっていう優れもの.
こりゃ便利.
しかし全体プロファイリングするんじゃなくてとあるアプリケーションのコールグラフだけ欲しいんだよなー.
とあるアプリケーションだけのプロファイル方法を調べなきゃ.
2010年10月19日火曜日
OProfileインストール
gprof だとマルチスレッドのアプリケーションのプロファイルがとれないという噂だったので,
OProf を使うことになりました.
OProf は gprof 同様,コールグラフもとれるし,マルチスレッドにも対応している優れものらしい.
インストール時のメモ.
まずはDownload OProfileから最新版のソースをダウンロード.
./configure をしたところ,ライブラリがいくつかないと言われた.
①configure: error: popt library not found
なので単純に yum install popt* で,poptライブラリをゲット.
(popt-devel.i386 : Development files for the popt library
popt-static.i386 : Static library for parsing command line parameters)
②configure: error: liberty library not found
yum で liberty を探しても見つからない.
ぐぐってみたら,Installing Oprofile | KernelTrapにいきついた.
そこで,yum install binutils-devel で,libertyライブラリをゲット.
(binutils-devel.i386 : BFD and opcodes static libraries and header files)
これで無事に ./congfigure → make → make install と,インストールを終えられた.
あとは
# opcontrol --start でプロファイル開始
# opcontrol --shutdown でプロファイル終了
# opreport でプロファイル結果の表示
/var/lib/oprofile/samples 内にデータが保存されていくようです.
これを変えたい場合は,--session-dir=で指定すればOK
取り急ぎここまで.
OProf を使うことになりました.
OProf は gprof 同様,コールグラフもとれるし,マルチスレッドにも対応している優れものらしい.
インストール時のメモ.
まずはDownload OProfileから最新版のソースをダウンロード.
./configure をしたところ,ライブラリがいくつかないと言われた.
①configure: error: popt library not found
なので単純に yum install popt* で,poptライブラリをゲット.
(popt-devel.i386 : Development files for the popt library
popt-static.i386 : Static library for parsing command line parameters)
②configure: error: liberty library not found
yum で liberty を探しても見つからない.
ぐぐってみたら,Installing Oprofile | KernelTrapにいきついた.
そこで,yum install binutils-devel で,libertyライブラリをゲット.
(binutils-devel.i386 : BFD and opcodes static libraries and header files)
これで無事に ./congfigure → make → make install と,インストールを終えられた.
あとは
# opcontrol --start でプロファイル開始
# opcontrol --shutdown でプロファイル終了
# opreport でプロファイル結果の表示
/var/lib/oprofile/samples 内にデータが保存されていくようです.
これを変えたい場合は,--session-dir=で指定すればOK
取り急ぎここまで.
2010年8月31日火曜日
2010年8月25日水曜日
iPhoneアプリ開発の際お世話になっているサイト達
・開発を複数台で行う方法
[Mac][iPhone][develop] 1アカウントのみで出来る、iPhoneアプリの開発を複数台のMacで行う方法 - Ni chicha, ni limona -平均から抜けられない僕-
・「設定」の項目でアプリの設定を行う方法
iPhoneアプリ開発、その(44) 過去は捨てたとは言わせない|テン*シー*シー
iPhoneアプリ開発、その(45) シンクロニシティ? |テン*シー*シー
NSUserDefaultsはどこまで保存できるかチェック(1) - iPhoneアプリ開発まっしぐら★ - iPhoneアプリ開発グループ
・アプリの公開方法
目指せ!iPhoneアプリ開発エキスパート:第10回 App Storeでアプリを公開|gihyo.jp … 技術評論社
やっぱりGUIのあるプログラミングは楽しい。
大した物作ってないし、Objective-Cはまだまだ使い慣れないけど大分楽しんで出来てるな〜
それにしても周囲に恵まれているのに自分はまだまだ子供でウンザリです。
精神弱すぎ…( -_-)
[Mac][iPhone][develop] 1アカウントのみで出来る、iPhoneアプリの開発を複数台のMacで行う方法 - Ni chicha, ni limona -平均から抜けられない僕-
・「設定」の項目でアプリの設定を行う方法
iPhoneアプリ開発、その(44) 過去は捨てたとは言わせない|テン*シー*シー
iPhoneアプリ開発、その(45) シンクロニシティ? |テン*シー*シー
NSUserDefaultsはどこまで保存できるかチェック(1) - iPhoneアプリ開発まっしぐら★ - iPhoneアプリ開発グループ
・アプリの公開方法
目指せ!iPhoneアプリ開発エキスパート:第10回 App Storeでアプリを公開|gihyo.jp … 技術評論社
やっぱりGUIのあるプログラミングは楽しい。
大した物作ってないし、Objective-Cはまだまだ使い慣れないけど大分楽しんで出来てるな〜
それにしても周囲に恵まれているのに自分はまだまだ子供でウンザリです。
精神弱すぎ…( -_-)
2010年7月13日火曜日
カーネル内で一定時間ごとの動作を行う
カーネル内ってnanosleepとか使えないんですね(Linux-2.6.25)
関数の定義なかった(*_*)
なので、カーネルタイマーを使って一定時間ごとに動作を行うのが良さそうです。
下のページが詳しく書いてあってすごくわかりやすかった!!
のでとりあえずメモメモ。
カーネルタイマーを使う
jiffiesが単位になるから精度は10msってことかな。(HZによるけど)
関数の定義なかった(*_*)
なので、カーネルタイマーを使って一定時間ごとに動作を行うのが良さそうです。
下のページが詳しく書いてあってすごくわかりやすかった!!
のでとりあえずメモメモ。
カーネルタイマーを使う
jiffiesが単位になるから精度は10msってことかな。(HZによるけど)
2010年7月8日木曜日
MySQLをソースからインストール
めちゃ久々の投稿.
MySQLのインストールでこけたのでメモ.
ソースDLして,./configure をした後の make で2度こけました.
1)../depcomp: line 512: exec: g++: not found
→ yum install gcc-c++ で解決
2)./include/my_global.h:988: error: redeclaration of C++ built-in type ‘bool’
→ make clean
make distclean
した後はじめからやり直して無事 make 通りました.
ソースからインストールした場合ってアンインストールするのってどうするんだろう.
Makefileに特に記述ないぽいから,ディレクトリをがしがし消すのであっているのかな.
相変わらず謎なことだらけだな…
努力しないと.
そして make install したら
/usr/bin/install: memory exhausted
と言われた.
めっちゃメモリ残ってるのに何このエラー!
同じような状況の人が数人いたようなのですが,解決されてないのかな…困ったナ.
http://forums.mysql.com/read.php?11,224710
**7/9 追記**
configureの時にオプションで --with-low-memory をつけると解決するとありましたが,
私の場合ではそれでもだめでした.
selinuxに関するログをはいた後にこのエラーが出たので selinux を止めちゃうという対処法でとりあえずはインストールしてしまいました.
MySQLのインストールでこけたのでメモ.
ソースDLして,./configure をした後の make で2度こけました.
1)../depcomp: line 512: exec: g++: not found
→ yum install gcc-c++ で解決
2)./include/my_global.h:988: error: redeclaration of C++ built-in type ‘bool’
→ make clean
make distclean
した後はじめからやり直して無事 make 通りました.
ソースからインストールした場合ってアンインストールするのってどうするんだろう.
Makefileに特に記述ないぽいから,ディレクトリをがしがし消すのであっているのかな.
相変わらず謎なことだらけだな…
努力しないと.
そして make install したら
/usr/bin/install: memory exhausted
と言われた.
めっちゃメモリ残ってるのに何このエラー!
同じような状況の人が数人いたようなのですが,解決されてないのかな…困ったナ.
http://forums.mysql.com/read.php?11,224710
**7/9 追記**
configureの時にオプションで --with-low-memory をつけると解決するとありましたが,
私の場合ではそれでもだめでした.
selinuxに関するログをはいた後にこのエラーが出たので selinux を止めちゃうという対処法でとりあえずはインストールしてしまいました.
2010年5月13日木曜日
Ruby + R
統計にはRが便利!ということなので、使ってみようと思います。
最近Rubyでスクリプト書いているので、せっかくならそこで使えちゃえば楽かなと。
ということで、Ruby + R | アクトインディ技術部隊報告書を参考に。
・Rインストール
・RSRubyインストール
−RubyからRを呼び出すため
・使い方
require 'rubygems'
require 'rsruby'
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
# 実行したいコマンド
RCOMMANDS
ちなみにRの使い方に関してはR による統計処理が便利そう。
最近Rubyでスクリプト書いているので、せっかくならそこで使えちゃえば楽かなと。
ということで、Ruby + R | アクトインディ技術部隊報告書を参考に。
・Rインストール
・RSRubyインストール
−RubyからRを呼び出すため
・使い方
require 'rubygems'
require 'rsruby'
r = RSRuby::instance
r.eval_R(<<-RCOMMAND)
# 実行したいコマンド
RCOMMANDS
ちなみにRの使い方に関してはR による統計処理が便利そう。
2010年1月7日木曜日
メモリ関連のメモ
カーネル内でメモリを動的に確保するために使う kmalloc と vmalloc.
あれ,これの違いはなんだろう?と思い調べる.
●kmalloc:確保するメモリをスラブから取得している
-割り当てられたアドレス空間には物理ページがマッピング済みなのでページフォルトは起きない
-アドレス空間にマッピングされているページは連続
●vmalloc:vmalloc用の領域からアドレス空間を割り当て(kmallocの拡張版)
-割り当てられたアドレス空間には物理ページがマッピングされていない場合がある
-アドレス空間にマッピングされるページは非連続
という違いがあるよう.
kmalloc により確保した領域(というかスラブが確保した領域)は /proc/slabinfo で見られるようです.
vmallocの仕組みが未だにしっくりこない…(@_@)
ということで参考ページは以下.メモメモ.
スラブアロケータ - Linuxカーネルメモ
kmalloc,vmalloc - Linuxカーネルメモ
Omicron Linux/vmalloc
あれ,これの違いはなんだろう?と思い調べる.
●kmalloc:確保するメモリをスラブから取得している
-割り当てられたアドレス空間には物理ページがマッピング済みなのでページフォルトは起きない
-アドレス空間にマッピングされているページは連続
●vmalloc:vmalloc用の領域からアドレス空間を割り当て(kmallocの拡張版)
-割り当てられたアドレス空間には物理ページがマッピングされていない場合がある
-アドレス空間にマッピングされるページは非連続
という違いがあるよう.
kmalloc により確保した領域(というかスラブが確保した領域)は /proc/slabinfo で見られるようです.
vmallocの仕組みが未だにしっくりこない…(@_@)
ということで参考ページは以下.メモメモ.
スラブアロケータ - Linuxカーネルメモ
kmalloc,vmalloc - Linuxカーネルメモ
Omicron Linux/vmalloc
2010年1月6日水曜日
メモリの扱いで行き詰まり..
DATA型のbufのメモリを確保し,初期化し,ごにゃごにゃし,解放するという流れを作りたいのですが…
なんかかたまってしまう…(@_@)
#define MAXNUM 10
typedef struct
{
int now_pid;
u64 now_pmc0;
u64 now_tsc;
} DATA;
static DATA *buf;
…
buf = (DATA *)vmalloc(sizeof(DATA) * MAXNUM);
memset(buf, 0, sizeof(DATA) * MAXNUM);
…
vfree(buf);
きっと何かこのへんがおかしいんだろう….
WHERE?!?!
早く抜け出したい(>_<;)
1/7***
ちなみに
memset(buf, 0, sizeof(DATA) * MAXNUM);
の直前に
printk("buf add is 0x%08x\n",(ulong)buf);
をいれると動くっていう…(@_@)
1/8***
vmalloc ではなく kmalloc を用いれば printk を挟まなくてもうまく動きました..
vmalloc 領域の変なとこをさわっていたのかな?原因不明です..
が,とりあえず vmalloc 使うのはこわいんでやめておきます.
なんかかたまってしまう…(@_@)
#define MAXNUM 10
typedef struct
{
int now_pid;
u64 now_pmc0;
u64 now_tsc;
} DATA;
static DATA *buf;
…
buf = (DATA *)vmalloc(sizeof(DATA) * MAXNUM);
memset(buf, 0, sizeof(DATA) * MAXNUM);
…
vfree(buf);
きっと何かこのへんがおかしいんだろう….
WHERE?!?!
早く抜け出したい(>_<;)
1/7***
ちなみに
memset(buf, 0, sizeof(DATA) * MAXNUM);
の直前に
printk("buf add is 0x%08x\n",(ulong)buf);
をいれると動くっていう…(@_@)
1/8***
vmalloc ではなく kmalloc を用いれば printk を挟まなくてもうまく動きました..
vmalloc 領域の変なとこをさわっていたのかな?原因不明です..
が,とりあえず vmalloc 使うのはこわいんでやめておきます.
登録:
投稿 (Atom)