2011-09-11
MySQLが突然落ちたときの復旧方法メモ
色々あると思いますが、今回は結構ログをみたりとえぐかったので、
その調査ログもかいておこうと思います。
問題
/etc/rc.d/init.d/mysqld start
ログ解析
[root@XX]# id
uid=0(root) gid=0(root) 所属グループ=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
[root@XX]# tail /var/log/mysqld.log
InnoDB: the log sequence number in the ib_logfiles!
110904 20:49:52 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110904 20:49:52 InnoDB: Started; log sequence number 0 43665
110904 20:49:52 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110904 20:49:52 mysqld ended
ib_logfile0 1 をけしてみる
でも消してもだめっだった。。。
合計 20536
drwx------ 2 mysql mysql 4096 3月 26 01:43 XXX
- rw-rw---- 1 mysql mysql 5242880 9月 11 16:43 ib_logfile0
- rw-rw---- 1 mysql mysql 5242880 11月 8 2010 ib_logfile1
- rw-rw---- 1 mysql mysql 10485760 2月 21 2011 XXX
drwx------ 2 mysql mysql 4096 3月 26 01:58 XXXr
drwx------ 2 mysql mysql 4096 3月 26 01:20 mysql
drwx------ 2 mysql mysql 4096 7月 9 19:11 XXX
[root@XX]# cd ib
一応、tmpにMYSQL以下のデータは全部バックアップをとっておく
tmpフォルダに保存しておく
myconfの設定を見直してみる
[root@XX]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set = utf8
skip-character-set-client-handshake
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
default-character-set = utf8
mysqldログをみてみる
未コミットなトランザクションなどのリカバリに失敗しているらしい
二重書き込みでなんかやっちゃてるらしい
110215 4:29:19 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.0.77' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution
110817 11:03:33 [Note] /usr/libexec/mysqld: Normal shutdown
110817 11:12:57 mysqld started
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
110817 11:13:24 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
110817 11:13:30 InnoDB: Started; log sequence number 0 43665
110817 11:13:32 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
110817 11:13:32 mysqld ended
MYSQLをもう一度立て直す
MySQL データを初期化
うまいぐあいにシステムテーブルだけ、初期化されて、InnoDBのデータは消えなかったので、
そのままパスワードをチョコチョコ設定していったら、普通につかえちゃったという何というラッキー具合!
http://dev.mysql.com/doc/refman/5.1/ja/error-creating-innodb.html
http://www.ark-web.jp/sandbox/wiki/228.html
[root@XX]# mysql_install_db
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h XX password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script!
The latest information about MySQL is available on the web at
Support MySQL by buying support/licenses at http://shop.mysql.com
[root@XXX]# cd /usr ; /usr/bin/mysqld_safe
MYSQLを再起動
権限追加
mysql> SET PASSWORD FOR root@XXX=PASSWORD('XXXXX');
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,password from mysql.user;
+------+------------------------+------------------+
user host password +------+------------------------+------------------+
root localhost XXXXXXXXXXXXXXXX root XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX root 127.0.0.1 XXXXXXXXXXXXXXXX XXXX localhost XXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX +------+------------------------+------------------+
5 rows in set (0.00 sec)
そのほか気づいたこと
もしかしたらやらないといけないこと
MYSQLユーザ作るか、作らないか
再構築後は、最初はクエリーキャッシュがのるまで結構時間がかかる。しょうがない。ちょっとおもい。
<
2011-08-07
はじめての献血とその値段@新橋
生まれてはじめて、献血をしてきたが、痛みはなかった。
約400mlをぬきとられる。その値段が気になったので、少しだけしらべてみた。メモ。
儲けるわけではなく、儲かるわけでもなく、世の中には手術のために、輸血をほしている人が
たくさんいると思うので、今後も定期的に行っていこうと思った本日。
献血制度が整備される以前は売血によって血液の需要を充たしていたが金銭を得る目的で過度に売血をする者が多数現れ、これらから得られる血液は血液としての質(「黄色い血液」)および供血者の健康の面で問題があることが多かったため、2010年現在は日本では輸血用血液は専ら献血によりまかなわれている。
上記wikikepediaの引用より、昔は売血によって日銭を稼いでいたものがあったが、通常の生活をしていれば売血などする必要はないのに、それであっても行うということはよほどの何かを背負ってきた人たちが多く、そうなると生活自体が困窮しており、当時は覚せい剤も横行しており、注射針の共有などにより、肝炎であったにもかかわらず知らずして献血をした結果、輸血者が感染してしまうということもあったそうだ。
BBC News - Lower price for donated blood saves NHS hospitals £50mの記事によると、
ちなみに血は人が生きている限り流れ続けるので、価値がよくわからないので、
献血後の値段を海外のニュースで調べてみたところ、以下であった。
0.25リットルが、125ポンド→1万5千円程度で、イギリスでは取引されているそうだが、(ただしこれは、ドナーからの提供によるものを医学的にやりとりする場合の相場だと思われるので売血の値段ではない。テストや正しい管理をされたうえで、病院に届けた場合の必要経費を足した金額くらいだろう)
The price of a quarter of a litre of blood has gone down from £140 to £125.
1英ポンド = 128.387603 円
2011-08-01
想田和弘監督作品 Peaceが見せてくれる偶然かつ意図的な日本の日常風景 そしてストーリーについて
「選挙」「精神」と毎回期待以上の映像を見せてくれている想田監督の最新作が渋谷のシアターフォーラムで上映されていってきた。
映画をまったく観ない人に「猫と平和の映画だよw」と完全なる欺瞞をもとに観てきたわけだが、
横でぐっすりとお休みになっていたので、人によって刺さる刺さらないがあると想いました。
ネタバレも何もないけれど、今回のPeaceの舞台は岡山県北区、30万人が住む地方の中では政令指定都市の大きな町と考えられる。原研哉がうまれたところでもあるところのようだ。自分の母親や、同居人が岡山出身であったりで、
何かと縁のある場所でもある。
そんな地方都市で、ギリギリの収入でなんとかやっていく70歳に手が届くような老人が
実施している訪問介護事業所の周辺の日常を監督の観点で映している。
雑誌「真夜中」での想田監督の寄稿では
「ドキュメンタリーはフィクションであるが、予想できない現実が起きるというのも魅力である」
というようなことが書いてあったと思うが、一度この監督がレンズをむけると予想外の出来事が色々おきるし、
出てくる人々の日常の中の、非日常というものが、レンズをむけられる客体の恍惚感からなのか、増幅装置にかけられたかのように、クローズアップされ、細切れな場面にコンテクストがつくられていく。もしくはコンテクストの中に、
選ばれたパーツたちが置かれているだけなのかもしれない。
猫をとるはずが、人間を、人間をとるはずが、職場を、職場をとるはずが世間を、世間をとるはずが、戦争を
とまるで何かに引き寄せられていくかのように、物事は核心にむかって。。
となっていくと思わせて、核心は何もない。だから最後をむかえたときも、え?ここ?というところでおわる。
予定調和でなく、勧善懲悪でもなく、ゆるりとした日常に失われていく日常と、新たにうまれるもの、残されるものの生活を覗く中で自分らで答えを作れよ ってそういう意味なのかなぁと勝手に解釈をしてみる。
なぜ、岡山?なぜ猫?なぜ戦争?疑問に思うところはたくさんある。
けれど、映像のパズルの組み合わせ、また東京に住んでいては体験できない、今の年では、もしくは都市wでは体験できない日常を自分には見せてくれた。プライド、やさしさ、生きること、自分ができること、そんなことを答えもなくふわふわと今後考えていかなくてはいけないと思わせた映画だったことは間違いないだろう。
変に恐怖感を持ったのもあり、今日からまともに勉強をしはじめた8/2。
ドキュメンタリーはだから面白い。答えを勝手に考えられる。答えがわからないから、
ひたすら考える。でもわからないんだけれどね。地方都市の生活、日常。都会と都市の違い。
お金が循環しているところ、していないところ。でも最低限必要なお金は循環している。
僕らはどこでうまれ、どこで生活し、どこで死ぬべきなのか、なんて考えるいいきっかけになるかもしれない。
- 参考
- 喫茶去(きっさこ)の意味 これは意味深い
- 共助グループ喫茶去訪問介護事業所
共助グループ喫茶去訪問介護事業所 - WAM NET介護事業者検索
ずぶの素人を政治家にしていく映画
2011-07-30
cakephp, facebookのwebtechnick pluginでユーザ情報がとれなかった場合の対応方法
cakephp, facebook connect webtechnick plugin problem - Stack Overflow
ここに参照のとおりだけれど、cakephp facebook用のpluginを使ってた際にいきなり、
以下のメソッドでユーザ情報がとれなくなったので、調べたところ
Terms of Service URLに何も入っていなかったのが、問題だったようだ。
上記URLでもサブドメインが間違っていたそうで、ここを正しいのにする必要あり。
サブドメインが何個にもまたがる場合にはどうするんだろう?ログインは一個からにしとけってことだと思うけれど。
$this->Connect->user();
2011-07-23
画像サイズをCSS変更なしで、jqueryのみで伸縮ができるjquery.MyThumbnail.jsの設定の仕方[注意事項]
通常画像を切り抜く場合はCSSでclip rectでサイズを変えるものだとおもっていたのだが、
jqueryでサイズ変更をするのがトレンドらしい。これは簡単。
スタイルシート[CSS]/イメージ/画像を切り抜く - TAG index Webサイト
img { position: absolute; clip: rect(50px 500px 300px 100px); }
- 参考リンク
Official Demo page for MyThumbnail jquery plugin
異なるサイズの画像を並べて瞬時にサイズを揃えられるjQueryプラグイン「MyThumbnail」:phpspot開発日誌
いくつかのサンプルから拝借する、
wordpressのコーディング規約にも書いてあるが、タグはダブルクォートで囲っておいてほしいが、、それは別として
WordPress コーディング基準 - WordPress Codex 日本語版
ここで大切なことは、MyThumbnailが後に書かれていること。
これを決して前に書いてはいけない。HTMLは上から読まれる以上、
1.必要なjs読み込み
2.画像をレンダリング
3.その後jqueryでHTMLを解析して、マッチした部分だけ画像を変形
という流れだと思われるので、ひとまず画像変換系は後に書いておいたほうがこのライブラリについてはいいのではないか?と
思われる(構文があってたのに変更がされない涙とずっとないてた人がいたので)。
中身を読んでみると、引数で渡した数値をもとにwidth,lengthなど、
background-position:center;background-size:などをかませながら、すごいhtmlをつくっていく
自力で書こうと思えばかけるかもしれないが、ちょこっとした設定でここまでハードなhtmlをブラウザ側で解釈して
つくってくれるなら、とても便利だと思う。サーバ側の負荷もいくらか減りそうだし。その分ブラウザは重くなるわけですが。
<div class="myThumbDivAutoAdd myPic" style="float: left; width: 100px; height: 100px; overflow: hidden; background-color: rgb(204, 204, 204); background-image: url("http://a5.sphotos.ak.fbcdn.net/hphotos-ak-snc6/DEMODEMO.jpg"); background-repeat: no-repeat; background-attachment: scroll; background-clip: border-box; background-origin: padding-box; background-position: center center; background-size: 138.235px 100px;"></div>
- sample
<div id="thumbnailList1'> <a href="http://www.google.com"><img src="images/1.jpg"></a> <a href="http://www.yahoo.com"><img src="images/2.jpg"></a> <a href="http://www.kfsoft.info"><img src="images/3.jpg"></a> </div> $("#thumbnailList1 img").MyThumbnail({ thumbWidth:120, thumbHeight:100, backgroundColor:"#ccc", imageDivClass:"myPic" });


