めも。
ルートディレクトリの権限とかを確認したい時とか。
ls -ld
めも。
ルートディレクトリの権限とかを確認したい時とか。
ls -ld
sendmailを起動しようとした際に下記のようなエラーが出てハマった。
... World writable directory
[ファイル名]:World writable directory のような感じ。
これはsendmailが参照するファイルが権限の緩すぎるディレクトリ下、もしくはファイルそのものの権限が緩すぎる場合に出るエラーらしい。
具体的に言うとパーミッションが「777」になっていると怒られる。
この状態だといつまでたってもサービスの起動ができないので、怒られているファイルの権限を全て「755」に変えると起動できるようになる。
ちなみに自分は上記の対応をしても起動するようにならないので更に調査したところ、CentOSのルートディレクトリ「/」の権限が「777」になっているとアウトということが判明した。
なので下記のようにしてルートの権限も755に変えてやる。
chmod 755 /
これで無事起動するようになった。
めも。
=EXACT(A1, B1)
完全一致の場合「true」が返り、異なる場合は「false」が返る。
めも。
httpd.confだけじゃなくてほかの色々なファイルでも使える。
locate httpd.conf
これは便利。
めも。
たとえば特定のカラムの値が10~20のものを取得したいといった場合に便利。
WHERE col_name BETWEEN 10 AND 20
上記のSQLは「以上」、「以下」を指定するための演算子なので10と20は含まれることに注意。
またNOTを付加することで否定の条件も指定可能
WHERE col_name NOT BETWEEN 10 AND 20
調べてみたら普通にオプションで渡すだけだった。
$options = array( 'group' => 'col_name' ); $this->Model->find('all', $options);
意外と今まで知らなかったので戒めも。
GROUP BY句を複数指定する場合は、下記の通りカンマ区切りでカラム名を指定する。
SELECT * FROM table_name GROUP BY col_1, col_2, col3
また下記のようにソート順をそれぞれで指定することも可能。
SELECT * FROM table_name GROUP BY col_1 DESC, col_2 ASC
めも。
SQLを発行する再、文の一番先頭に「EXPLAIN」とつけると、オプティマイザのデバッグ情報を取得することが出来る。
下記例。
EXPLAIN SELECT * FROM table_name WHERE id = 1
上記SQLによって取得出来る情報の「type」の欄が重要。
「type」には下記表のものが多く見られる。
system | テーブルに1レコードしかない状態 |
const | マッチするレコードが1件しかない状態。PRIMARY KEYまたはUNIQUEインデックスを利用して検索される |
eq_ref | JOINにおいてPRIMARY KEYまたはUNIQUEインデックスを利用して1つのレコードを検索している状態。理想的なJOINの形式 |
range | インデックスを用いた範囲検索 |
index | すべてのレコードのインデックスをスキャンする必要がある状態(フルインデックススキャン) |
ALL | すべてのレコードを走査する必要がある状態(フルテーブルスキャン) |
上から順に高速なので、なるべく上に近づくようなSQLを発行してやれば結果的にパフォーマンスは上昇する。