Monthly Archives: 12月 2008
Commitは命じゃ!!
PhpでMysql(innodb)を利用している場合に、
すごくはずかしい失態をおかしたので、
繰り返さないように、恥を公開しておこう。
autoCommit(false);
としてたわけですよ。
で、id を auto_increment するようなテーブルが複数あり、
それらを、insertとかしてたわけですよ。
でも、なぜかDBが更新されないわけですよ。
mysql_insert_id();
の関数を利用して直前のSQLのauto_incrementのIDを引っ張るわけですが、
これが、ちゃんとに取得できるわけですよ。
id が 100とかなってても、100のIDのレコードがテーブルに存在しないわけです。
もう全然わからないと思っていたところ、
commit()
部分を気持ちよく、綺麗さっぱりコメントアウトしてたわけです。
そりゃー 動くわけないですがな。
中途半端にまともなIDなんて返してくれちゃうから、
余計あせっちまいましたよ。
と、いったところで、自分のinnodbの扱いの認識不足と、
注意力不足が招いた結果ですけどね。。
Sorry, no mailbox here by that name. (#5.1.1)ではまる。
久しぶりというのもあって、初歩的なミスをおかしました。
Qmailをインストールして、ユーザを作成して(/usr/sbin/useradd)、
メール配信のテストをしたわけですが、
エラーになって、リターンメールが来て、配信できないわけです。
届かないわけですよ。
【リターンメールの内容】
failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/
で、.qmailを設置して動作確認しても、.qmailすら動いてないわけです。
ここで、原因と考えられる候補を絞っていったわけですが、
・該当ユーザのホームディレクトリのパーミッション(755)問題なし。
・/etc/rc.d/init.d/qmail の中身問題なし。
・/var/qmail/rc の中身問題なし。
と、ここまでくると、残りは、以下のようなあたりですかね。
・/etc/passwd に入っているアカウント情報に不備がある
・/var/qmail/controlの中にあるファイルに不備がある。
でも、/etc/passwdの中身は問題なさそうに見えました。
最後の砦である/var/qmail/controlに的を絞ります。
/var/qmail/control/defaultdomain : 該当サーバのホスト名
/var/qmail/control/locals : 該当サーバのホスト名
/var/qmail/control/me : 該当サーバのホスト名
/var/qmail/control/rcpthosts : localhost
/var/qmail/control/morercpthosts : 該当サーバのホスト名
/var/qmail/control/virtualdomains : 該当サーバのホスト名:所有者名
ここで、何度かみても気づかなかったんですが、localsがいけてないようです!!
virtualdomainsに記載するドメインは、localsには記載してはいけない!! ようです。
なぜかというと、virtualdomainsよりlocalsの方が優先されるからだそうです。
ブランクとは恐ろしいっす。。。